Fenced Code Blocks
==================
Summary
-------
This extension adds a secondary way to define code blocks which overcomes a few
limitations of the indented code blocks.
This extension is included in the standard Markdown library.
Syntax
------
Fenced Code Blocks are defined using the syntax established in
[PHP Markdown Extra][php].
[php]: http://www.michelf.com/projects/php-markdown/extra/#fenced-code-blocks
Thus, the following text (taken from the above referenced PHP documentation):
This is a paragraph introducing:
~~~~~~~~~~~~~~~~~~~~
a one-line code block
~~~~~~~~~~~~~~~~~~~~
Fenced code blocks can have a blank line as the first and/or last line of a
code block and they can also come immediately after a list item without becoming
part of the list.
In addition to PHP Extra's syntax, you can define the language of the code
block for use by syntax highlighters etc. The language will be assigned as a
class attribute of the ``<code>`` element in the output. Therefore, you should
define the language as you would a css class - ``.language``. For consistency
with other markdown syntax, the language can *optionally* be wrapped in curly
brackets:
~~~~{.python}
# python code
~~~~
~~~~.html
<p>HTML Document</p>
~~~~
The above will output:
<pre><code class="python"># python code
</code></pre>
<pre><code class="html"><p>HTML Document</p>
</code></pre>
Usage
-----
From the Python interpreter:
>>> html = markdown.markdown(text, ['fenced_code'])