From 7458cc2df95679f4358597babb49f642f1aa6f90 Mon Sep 17 00:00:00 2001 From: Oliver Marks Date: Mon, 12 Nov 2018 07:33:01 +0000 Subject: [PATCH] Start of bullet list support --- eorg/generate.py | 22 ++++++++++++++++++---- tests/test_html.py | 21 +++++++++++++++++++++ 2 files changed, 39 insertions(+), 4 deletions(-) diff --git a/eorg/generate.py b/eorg/generate.py index 3010bcb..4a47540 100644 --- a/eorg/generate.py +++ b/eorg/generate.py @@ -41,13 +41,24 @@ def parse_list_html(doc, token, cls="", root=True): return response.read() +def parse_bullets_html(doc, token, cls="", root=True): + response = StringIO() + response.write(f"") + for row in item.value.split("\n"): + response.write(f"
  • {row}
  • ") + response.write(f"") + response.seek(0) + return response.read() + + def parse_text_html(doc, token, cls="", root=True): return f"{token.value}" def blockquote(doc, token, cls="", root=True): return "%s\n" % ( - cls, escape(token.value).replace("\n", "
    ") + cls, + escape(token.value).replace("\n", "
    "), ) @@ -66,9 +77,11 @@ def table(doc, item, cls="", root=True): for row in item.value.split("\n"): if newrow: if row.startswith("|-"): - tblhead += "" + "".join( - newrow - ) + "\n" + tblhead += ( + "" + + "".join(newrow) + + "\n" + ) else: tbl += f"" + "".join(newrow) + "\n" newrow = filter(None, row.split("|")) @@ -89,6 +102,7 @@ builddoc = { tokens.VERBATIM: ("code", None), tokens.LIST: (parse_list_html, "flow-text"), tokens.TEXT: (parse_text_html, "flow-text"), + tokens.BULLET: (parse_bullets_html, ""), tokens.SOURCE: (src, None), tokens.EXAMPLE: (blockquote, None), tokens.RESULTS: (blockquote, None), diff --git a/tests/test_html.py b/tests/test_html.py index 34a5588..1fae865 100644 --- a/tests/test_html.py +++ b/tests/test_html.py @@ -103,3 +103,24 @@ head -n 5 examples/html-plain/example.py assert result[0].value == expected[0].value assert result[1].attrs.get('language') == 'sh' assert result[1].value == expected[1].value + + +@pytest.mark.skip +def test_src_block(): + text = StringIO( + """ + + Bullet 1 + + Bullet 2 +""" + ) + + expected = [ + Token(tokens.BLANK, ""), + Token(tokens.BULLET, """ Bullet 1\nBullet 2"""), + ] + result = parse(text).doc + assert result[0].token == tokens.BLANK + assert result[0].value == expected[0].value + assert result[1].token == tokens.BULLET + + assert result[1].value == expected[1].value