Ñò éíÑXc@s²dZddkZddkZeideieiBƒZdZdZdei fd„ƒYZ dei i fd „ƒYZ dd „Zed joddkZeiƒndS( s½ Fenced Code Extension for Python Markdown ========================================= This extension adds Fenced Code Blocks to Python-Markdown. >>> import markdown >>> text = ''' ... A paragraph before a fenced code block: ... ... ~~~ ... Fenced code block ... ~~~ ... ''' >>> html = markdown.markdown(text, extensions=['fenced_code']) >>> html u'

A paragraph before a fenced code block:

\n
Fenced code block\n
' Works with safe_mode also (we check this because we are using the HtmlStash): >>> markdown.markdown(text, extensions=['fenced_code'], safe_mode='replace') u'

A paragraph before a fenced code block:

\n
Fenced code block\n
' Include tilde's in a code block and wrap with blank lines: >>> text = ''' ... ~~~~~~~~ ... ... ~~~~ ... ... ~~~~~~~~''' >>> markdown.markdown(text, extensions=['fenced_code']) u'
\n~~~~\n\n
' Multiple blocks and language tags: >>> text = ''' ... ~~~~{.python} ... block one ... ~~~~ ... ... ~~~~.html ...

block two

... ~~~~''' >>> markdown.markdown(text, extensions=['fenced_code']) u'
block one\n
\n\n
<p>block two</p>\n
' Copyright 2007-2008 [Waylan Limberg](http://achinghead.com/). Project website: Contact: markdown@freewisdom.org License: BSD (see ../docs/LICENSE for details) Dependencies: * [Python 2.3+](http://python.org) * [Markdown 2.0+](http://www.freewisdom.org/projects/python-markdown/) iÿÿÿÿNsZ(?P^~{3,})[ ]*(\{?\.(?P[a-zA-Z0-9_-]*)\}?)?[ ]*\n(?P.*?)(?P=fence)[ ]*$s
%s
s class="%s"tFencedCodeExtensioncBseZd„ZRS(cCs |iidt|ƒdƒdS(s7 Add FencedBlockPreprocessor to the Markdown instance. tfenced_code_blockt_beginN(t preprocessorstaddtFencedBlockPreprocessor(tselftmdt md_globals((sC/usr/lib/python2.6/site-packages/markdown/extensions/fenced_code.pytextendMarkdownKs  (t__name__t __module__R (((sC/usr/lib/python2.6/site-packages/markdown/extensions/fenced_code.pyRIsRcBseZd„Zd„ZRS(cCsÎdi|ƒ}x¯ti|ƒ}|o•d}|idƒot|idƒ}nt||i|idƒƒf}|iii |dt ƒ}d||i ƒ |||i ƒf}qPq|i dƒS(s6 Match and store Fenced Code Blocks in the HtmlStash. s ttlangtcodetsafes%s %s %s(tjointFENCED_BLOCK_REtsearchtgrouptLANG_TAGt CODE_WRAPt_escapetmarkdownt htmlStashtstoretTruetstarttendtsplit(RtlinesttexttmR Rt placeholder((sC/usr/lib/python2.6/site-packages/markdown/extensions/fenced_code.pytrunUs"+cCsL|iddƒ}|iddƒ}|iddƒ}|iddƒ}|S( s basic html escaping t&s&ts>t"s"(treplace(Rttxt((sC/usr/lib/python2.6/site-packages/markdown/extensions/fenced_code.pyRes (R R R"R(((sC/usr/lib/python2.6/site-packages/markdown/extensions/fenced_code.pyRSs cCstƒS(N(R(tconfigs((sC/usr/lib/python2.6/site-packages/markdown/extensions/fenced_code.pyt makeExtensionnst__main__(t__doc__Rtretcompilet MULTILINEtDOTALLRRRt ExtensionRRt PreprocessorRtNoneR*R tdoctestttestmod(((sC/usr/lib/python2.6/site-packages/markdown/extensions/fenced_code.pyt<s