diff 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
line wrap: on
line diff
--- 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
+