comparison piecrust/formatting/markdownformatter.py @ 20:c95c90c82263

Add support for Markdown extensions.
author Ludovic Chabant <ludovic@chabant.com>
date Mon, 18 Aug 2014 16:54:00 -0700
parents f485ba500df3
children 95590732e4c9
comparison
equal deleted inserted replaced
19:dc72a288921f 20:c95c90c82263
4 4
5 class MarkdownFormatter(Formatter): 5 class MarkdownFormatter(Formatter):
6 FORMAT_NAMES = ['markdown', 'mdown', 'md'] 6 FORMAT_NAMES = ['markdown', 'mdown', 'md']
7 OUTPUT_FORMAT = 'html' 7 OUTPUT_FORMAT = 'html'
8 8
9 def __init__(self):
10 super(MarkdownFormatter, self).__init__()
11 self._extensions = None
12
9 def render(self, format_name, txt): 13 def render(self, format_name, txt):
10 return markdown(txt) 14 self._ensureInitialized()
15 return markdown(txt, extensions=self._extensions)
11 16
17 def _ensureInitialized(self):
18 if self._extensions is not None:
19 return
20
21 extensions = self.app.config.get('markdown/extensions')
22 if extensions is None:
23 extensions = []
24 # Compatibility with PieCrust 1.x
25 if self.app.config.get('markdown/use_markdown_extra'):
26 extensions.append('extra')
27 self._extensions = extensions
28