pinax / symposion

a Django project for conference websites
BSD 3-Clause "New" or "Revised" License
299 stars 146 forks source link

html5lib 0.999 pinning causes a markdown parser error #71

Open daaray opened 9 years ago

daaray commented 9 years ago

The pinned requirement causes the markdown parser to throw errors:

  File "/home/daaray/.virtualenvs/conf_site/local/lib/python2.7/site-packages/sy
mposion/markdown_parser.py", line 15, in parse
    for token in parser.parseFragment(text).childNodes:
AttributeError: childNodes

This is due to https://github.com/html5lib/html5lib-python/pull/45.

We need to either revert the pin to 0.95 or modify the parser by specifying the tree builder:

from html5lib import html5parser, sanitizer, getTreeBuilder

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, tree=getTreeBuilder("dom"))
    for token in parser.parseFragment(text).childNodes:
        bits.append(token.toxml())
    return "".join(bits)
miurahr commented 9 years ago

@daaray Could you send PR for this issue?

miurahr commented 9 years ago

fixed by 11f697d13757be5505898ae2f5444c394ab3b5ae

ossanna16 commented 8 years ago

Can this issue be closed? It seems to be fixed.