diff --git a/eorg/generate.py b/eorg/generate.py index c55c2fa..52482b5 100644 --- a/eorg/generate.py +++ b/eorg/generate.py @@ -17,7 +17,6 @@ def src(doc, code, cls="", root=True): def img(doc, item, cls="", root=True): - caption = doc.previous(tokens.CAPTION) text = "" if item.attrs: caption = item.attrs.get('caption') @@ -68,17 +67,17 @@ def parse_text_html(doc, token, cls="", root=True): return f"{token.value}" -def results(doc, token, cls="", root=True): - if token.value.startswith('[[file:'): - return "\n" % ( - cls, - escape(token.value.strip()[7:-2]), - ) - - return "%s\n" % ( - cls, - escape(token.value).replace("\n", "
"), - ) +def results(doc, results, cls="", root=True): + result = "" + for token in results.value: + if token.token is tokens.IMAGE: + result += img(doc, token, cls, root=root) + return result + result += "%s\n" % ( + cls, + escape(token.value).replace("\n", "
"), + ) + return result def blockquote(doc, token, cls="", root=True): diff --git a/eorg/helper.py b/eorg/helper.py index 8ef0fa9..77c42de 100644 --- a/eorg/helper.py +++ b/eorg/helper.py @@ -39,6 +39,8 @@ def parse_img_or_link(char, step): char = next(step, None) char = next(step, None) + if path.startswith('file:'): + path = path[5:] if path.endswith(image_extensions): return False, Token(tokens.IMAGE, [path, alt]) diff --git a/eorg/parser.py b/eorg/parser.py index d92df67..05423ec 100644 --- a/eorg/parser.py +++ b/eorg/parser.py @@ -75,7 +75,7 @@ class Document: yield item continue - if item.token != tokens.LIST: + if item.token != tokens.LIST and item.token != tokens.RESULTS: continue if isinstance(item.value, list): diff --git a/tests/test_html.py b/tests/test_html.py index 85cd9a4..038afc7 100644 --- a/tests/test_html.py +++ b/tests/test_html.py @@ -20,16 +20,17 @@ def test_render_results(): """ ) expected = [ - Token(tokens.IMAGE, "['file:test.png', '']", attrs=None), + Token(tokens.IMAGE, ['test.png', ''], attrs=None), Token(tokens.TEXT, "\n"), ] - doc = parse(text).doc - assert doc[0].token == tokens.BLANK - assert len(doc[1].value) == len(expected) - assert doc[1].token == tokens.RESULTS + doc = parse(text) + tags = doc.doc + assert tags[0].token == tokens.BLANK + assert len(tags[1].value) == len(expected) + assert tags[1].token == tokens.RESULTS - assert doc[1].value[0] == expected[0] - assert doc[1].value[1] == expected[1] + assert tags[1].value[0].value == expected[0].value + assert tags[1].value[1].value == expected[1].value - htmlbody = html(doc).read() - assert htmlbody == '\n' + htmlbody = html(tags).read() + assert htmlbody == ''