Encode characters in blocks as html entities

This commit is contained in:
Oly 2018-11-05 08:50:59 +00:00
parent 003a592319
commit 76cc5f78c5
2 changed files with 13 additions and 5 deletions

View File

@ -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 "<blockquote%s>%s</blockquote>\n" % (
cls,
token.value.replace("\n", "<br />"),
escape(token.value).replace("\n", "<br />"),
)

View File

@ -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: <link rel="stylesheet" type="text/css" href="view-source:https://edwardtufte.github.io/tufte-css/tufte.css" />
#+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