Mercurial > piecrust2
view piecrust/formatting/markdownformatter.py @ 142:0bdd938d6b9f
Better date/time handling for pages:
- Date can be specified in the page config.
- Fall back to timestamp 0 (which is fixed) instead of the timestamp of
the file (which could vary).
Sources can return additional config values to merge with the page's
YAML front matter.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Sat, 29 Nov 2014 18:33:29 -0800 |
parents | fdb08d986384 |
children | cd049786c008 |
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._extensions = None def render(self, format_name, txt): assert format_name in self.FORMAT_NAMES self._ensureInitialized() return markdown(txt, extensions=self._extensions) def _ensureInitialized(self): if self._extensions 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 extensions is None: extensions = [] # Compatibility with PieCrust 1.x if config.get('use_markdown_extra'): extensions.append('extra') self._extensions = extensions