Start of bullet list support
This commit is contained in:
parent
7f9d60c748
commit
7458cc2df9
|
@ -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),
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue