diff --git a/eorg/generate.py b/eorg/generate.py index 6a14376..4b94313 100644 --- a/eorg/generate.py +++ b/eorg/generate.py @@ -1,3 +1,4 @@ +from html import escape from io import StringIO from eorg.const import Token, ESCAPE from eorg import tokens @@ -14,7 +15,7 @@ def src(doc, code, cls="", root=True): except pygments.util.ClassNotFound as e: lexer = get_lexer_by_name(code.attrs.get("language", "text")) - return highlight(code.value, lexer, HtmlFormatter(linenos=True)) + return highlight(escape(code.value), lexer, HtmlFormatter(linenos=True)) def img(doc, item, cls="", root=True): @@ -47,7 +48,7 @@ def parse_text_html(doc, token, cls="", root=True): def blockquote(doc, token, cls="", root=True): return "%s\n" % ( cls, - token.value.replace("\n", "
"), + escape(token.value).replace("\n", "
"), ) diff --git a/tests/test_token_types.py b/tests/test_token_types.py index 67b19f8..50d6dab 100644 --- a/tests/test_token_types.py +++ b/tests/test_token_types.py @@ -6,7 +6,7 @@ from eorg.parser import parse from eorg.generate import html -def test_basic(): +def test_table(): document = """| Header 1 | Header 2 | | row 1 | row 2 | """ @@ -14,8 +14,15 @@ def test_basic(): assert doc.doc[0].token == tokens.TABLE r1 = doc.doc[0].value.strip() r2 = document.strip() - print(r1) - print(r2) assert r1 == r2 +def test_example(): + document = """#+BEGIN_EXAMPLE +#+HTML_HEAD: +#+END_EXAMPLE""" + doc = parse(StringIO(document)) + assert doc.doc[0].token == tokens.EXAMPLE + r1 = doc.doc[0].value.strip() + r2 = document.strip() + assert r1 == r2