From 55ec9b745a98be8a4339efaa4c408be00a8c8261 Mon Sep 17 00:00:00 2001 From: Luke Hatcher Date: Wed, 18 Jul 2012 19:20:51 -0400 Subject: [PATCH] add our more liberal markdown parser to symposion --- symposion/markdown_parser.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 symposion/markdown_parser.py diff --git a/symposion/markdown_parser.py b/symposion/markdown_parser.py new file mode 100644 index 00000000..07216c2a --- /dev/null +++ b/symposion/markdown_parser.py @@ -0,0 +1,17 @@ +import html5lib +from html5lib import html5parser, sanitizer + +import markdown + + +def parse(text): + + # First run through the Markdown parser + text = markdown.markdown(text, extensions=["extra"], safe_mode=False) + + # Sanitize using html5lib + bits = [] + parser = html5parser.HTMLParser(tokenizer=sanitizer.HTMLSanitizer) + for token in parser.parseFragment(text).childNodes: + bits.append(token.toxml()) + return "".join(bits)