Andreas Müller Andreas Müller - 11 months ago 85
Markdown Question

Mardown fails combining fenced_code and attr_list

I'm trying to write markdown files for mkdocs and want an id attribute with the pre tag, generated be fenced_code. If i use both extensions in combination there is no pre-tag but a p(aragraph tag):

import markdown

text = """# Welcome

This is *true* markdown text.

print "Hello World"
````{: #hello }

html = markdown.markdown(text, extensions= ['markdown.extensions.fenced_code', 'markdown.extensions.attr_list'])
print html

print returns

<p>This is <em>true</em> markdown text.</p>
<p><code id="hello">python
print "Hello World"</code></p>

but i expected

<pre id="hello"><code>...

it's the same under mkdocs, which i use actually. I need with id to access it through javascript and run the embedded python code wit skulpt.
Is there a solution to achieve this?

Answer Source

I posted an issue to mkdocs on github and they say it is not possible at the moment. So i tried something else. Because i needed the id of the pre-element in a javascript-function which reacts to an onclick, i figured out, how to access the pre content from there. I was lucky to find that parentNode.previousElementSibling does what in want. The event's target is the element with the onclick event.

elem =

hope, anyone in a comparable situation understands what i mean :-)