nbviewer
nbviewer copied to clipboard
FAQ failing with 500
Rendering the FAQ page is currently failing with 500:
File "/Users/benjaminrk/dev/jpy/nbviewer/nbviewer/templates/faq.md", line 1, in top-level template code
{% extends "layout.html" %}
File "/Users/benjaminrk/dev/jpy/nbviewer/nbviewer/templates/layout.html", line 113, in top-level template code
</div>
File "/Users/benjaminrk/dev/jpy/nbviewer/nbviewer/templates/layout.html", line 114, in block "container"
</nav>
File "/Users/benjaminrk/dev/jpy/nbviewer/nbviewer/templates/faq.md", line 7, in block "body"
{% filter markdown(extensions=['toc'], extension_configs= {'toc' : [('anchorlink', True)]}) %}
File "/Users/benjaminrk/conda/lib/python3.7/site-packages/markdown/core.py", line 388, in markdown
return md.convert(text)
File "/Users/benjaminrk/conda/lib/python3.7/site-packages/markdown/core.py", line 269, in convert
newRoot = treeprocessor.run(root)
File "/Users/benjaminrk/conda/lib/python3.7/site-packages/markdown/extensions/toc.py", line 277, in run
self.add_anchor(el, el.attrib["id"])
File "/Users/benjaminrk/conda/lib/python3.7/site-packages/markdown/extensions/toc.py", line 200, in add_anchor
c.append(anchor)
TypeError: append() argument must be xml.etree.ElementTree.Element, not Element
I've tracked it down to isinstance(c, xml.etree.ElementTree.Element)
being False, even though c.__class__
is xml.etree.ElementTree.Element
, which I assume means that the xml.etree.ElementTree
module is getting reloaded at some point. I don't know what's responsible for this, maybe jinja, maybe tornado, maybe something we are doing. Quickest fix might be to switch to commonmark or another markdown implementation instead of figuring out why this markdown implementation is getting confused.
FYI this is caused by a bug in defusedxml: tiran/defusedxml/issues/54 (which is imported in nbconvert.filters.strings
).