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 == '
'