Start of bullet list support

This commit is contained in:
Oliver Marks 2018-11-12 07:33:01 +00:00
parent 7f9d60c748
commit 7458cc2df9
2 changed files with 39 additions and 4 deletions

View File

@ -41,13 +41,24 @@ def parse_list_html(doc, token, cls="", root=True):
return response.read() return response.read()
def parse_bullets_html(doc, token, cls="", root=True):
response = StringIO()
response.write(f"<ul{cls}>")
for row in item.value.split("\n"):
response.write(f"<li>{row}</li>")
response.write(f"</ul>")
response.seek(0)
return response.read()
def parse_text_html(doc, token, cls="", root=True): def parse_text_html(doc, token, cls="", root=True):
return f"{token.value}" return f"{token.value}"
def blockquote(doc, token, cls="", root=True): def blockquote(doc, token, cls="", root=True):
return "<blockquote%s>%s</blockquote>\n" % ( return "<blockquote%s>%s</blockquote>\n" % (
cls, escape(token.value).replace("\n", "<br />") cls,
escape(token.value).replace("\n", "<br />"),
) )
@ -66,9 +77,11 @@ def table(doc, item, cls="", root=True):
for row in item.value.split("\n"): for row in item.value.split("\n"):
if newrow: if newrow:
if row.startswith("|-"): if row.startswith("|-"):
tblhead += "<thead><th>" + "</th><th>".join( tblhead += (
newrow "<thead><th>"
) + "</th></thead>\n" + "</th><th>".join(newrow)
+ "</th></thead>\n"
)
else: else:
tbl += f"<tr><td>" + "</td><td>".join(newrow) + "</td></tr>\n" tbl += f"<tr><td>" + "</td><td>".join(newrow) + "</td></tr>\n"
newrow = filter(None, row.split("|")) newrow = filter(None, row.split("|"))
@ -89,6 +102,7 @@ builddoc = {
tokens.VERBATIM: ("code", None), tokens.VERBATIM: ("code", None),
tokens.LIST: (parse_list_html, "flow-text"), tokens.LIST: (parse_list_html, "flow-text"),
tokens.TEXT: (parse_text_html, "flow-text"), tokens.TEXT: (parse_text_html, "flow-text"),
tokens.BULLET: (parse_bullets_html, ""),
tokens.SOURCE: (src, None), tokens.SOURCE: (src, None),
tokens.EXAMPLE: (blockquote, None), tokens.EXAMPLE: (blockquote, None),
tokens.RESULTS: (blockquote, None), tokens.RESULTS: (blockquote, None),

View File

@ -103,3 +103,24 @@ head -n 5 examples/html-plain/example.py
assert result[0].value == expected[0].value assert result[0].value == expected[0].value
assert result[1].attrs.get('language') == 'sh' assert result[1].attrs.get('language') == 'sh'
assert result[1].value == expected[1].value 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