Mercurial > piecrust2
view piecrust/formatting/markdownformatter.py @ 711:ab5c6a8ae90a
bake: Replace hard-coded taxonomy support with "generator" system.
* Taxonomies are now implemented one or more `TaxonomyGenerator`s.
* A `BlogArchivesGenerator` stub is there but non-functional.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Thu, 26 May 2016 19:52:47 -0700 |
parents | 79f03b5c1b8f |
children | 370e74941d32 |
line wrap: on
line source
from markdown import Markdown from piecrust.formatting.base import Formatter class MarkdownFormatter(Formatter): FORMAT_NAMES = ['markdown', 'mdown', 'md'] OUTPUT_FORMAT = 'html' def __init__(self): super(MarkdownFormatter, self).__init__() self._formatter = None def render(self, format_name, txt): assert format_name in self.FORMAT_NAMES self._ensureInitialized() return self._formatter.reset().convert(txt) def _ensureInitialized(self): if self._formatter is not None: return config = self.app.config.get('markdown') if config is None: config = {} elif not isinstance(config, dict): raise Exception("The `markdown` configuration setting must be " "a dictionary.") extensions = config.get('extensions', []) if isinstance(extensions, str): extensions = [e.strip() for e in extensions.split(',')] # Compatibility with PieCrust 1.x if config.get('use_markdown_extra'): extensions.append('extra') extension_configs = config.get('extension_configs', {}) self._formatter = Markdown(extensions=extensions, extension_configs=extension_configs)