changeset 410:d1a472464e57

markdown: Cache the formatter once.
author Ludovic Chabant <ludovic@chabant.com>
date Sat, 30 May 2015 15:41:52 -0700
parents 2bb5327c4c1f
children e7b865f8f335
files piecrust/formatting/markdownformatter.py
diffstat 1 files changed, 6 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/piecrust/formatting/markdownformatter.py	Mon May 25 18:38:05 2015 -0700
+++ b/piecrust/formatting/markdownformatter.py	Sat May 30 15:41:52 2015 -0700
@@ -1,4 +1,4 @@
-from markdown import markdown
+from markdown import Markdown
 from piecrust.formatting.base import Formatter
 
 
@@ -8,15 +8,15 @@
 
     def __init__(self):
         super(MarkdownFormatter, self).__init__()
-        self._extensions = None
+        self._formatter = None
 
     def render(self, format_name, txt):
         assert format_name in self.FORMAT_NAMES
         self._ensureInitialized()
-        return markdown(txt, extensions=self._extensions)
+        return self._formatter.convert(txt)
 
     def _ensureInitialized(self):
-        if self._extensions is not None:
+        if self._formatter is not None:
             return
 
         config = self.app.config.get('markdown')
@@ -34,5 +34,6 @@
         # Compatibility with PieCrust 1.x
         if config.get('use_markdown_extra'):
             extensions.append('extra')
-        self._extensions = extensions
 
+        self._formatter = Markdown(extensions=extensions)
+