# HG changeset patch # User Ludovic Chabant # Date 1408406040 25200 # Node ID c95c90c8226368ce47f9db1aabac4d1639a04ec1 # Parent dc72a288921fbd04b8662450668c8aca48289f18 Add support for Markdown extensions. diff -r dc72a288921f -r c95c90c82263 piecrust/formatting/markdownformatter.py --- a/piecrust/formatting/markdownformatter.py Mon Aug 18 16:53:47 2014 -0700 +++ b/piecrust/formatting/markdownformatter.py Mon Aug 18 16:54:00 2014 -0700 @@ -6,6 +6,23 @@ FORMAT_NAMES = ['markdown', 'mdown', 'md'] OUTPUT_FORMAT = 'html' + def __init__(self): + super(MarkdownFormatter, self).__init__() + self._extensions = None + def render(self, format_name, txt): - return markdown(txt) + self._ensureInitialized() + return markdown(txt, extensions=self._extensions) + + def _ensureInitialized(self): + if self._extensions is not None: + return + extensions = self.app.config.get('markdown/extensions') + if extensions is None: + extensions = [] + # Compatibility with PieCrust 1.x + if self.app.config.get('markdown/use_markdown_extra'): + extensions.append('extra') + self._extensions = extensions +