Mercurial > piecrust2
annotate piecrust/formatting/markdownformatter.py @ 74:8f988aa54433 2.0.0-alpha1
Fix package name case.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Sat, 30 Aug 2014 10:00:45 -0700 |
parents | 95590732e4c9 |
children | fdb08d986384 |
rev | line source |
---|---|
3
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
1 from markdown import markdown |
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
2 from piecrust.formatting.base import Formatter |
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
3 |
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
4 |
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
5 class MarkdownFormatter(Formatter): |
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
6 FORMAT_NAMES = ['markdown', 'mdown', 'md'] |
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
7 OUTPUT_FORMAT = 'html' |
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
8 |
20
c95c90c82263
Add support for Markdown extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
9 def __init__(self): |
c95c90c82263
Add support for Markdown extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
10 super(MarkdownFormatter, self).__init__() |
c95c90c82263
Add support for Markdown extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
11 self._extensions = None |
c95c90c82263
Add support for Markdown extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
12 |
3
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
13 def render(self, format_name, txt): |
20
c95c90c82263
Add support for Markdown extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
14 self._ensureInitialized() |
c95c90c82263
Add support for Markdown extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
15 return markdown(txt, extensions=self._extensions) |
c95c90c82263
Add support for Markdown extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
16 |
c95c90c82263
Add support for Markdown extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
17 def _ensureInitialized(self): |
c95c90c82263
Add support for Markdown extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
18 if self._extensions is not None: |
c95c90c82263
Add support for Markdown extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
19 return |
3
f485ba500df3
Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
20 |
58
95590732e4c9
More robust Markdown configuration handling.
Ludovic Chabant <ludovic@chabant.com>
parents:
20
diff
changeset
|
21 config = self.app.config.get('markdown') |
95590732e4c9
More robust Markdown configuration handling.
Ludovic Chabant <ludovic@chabant.com>
parents:
20
diff
changeset
|
22 if config is None: |
95590732e4c9
More robust Markdown configuration handling.
Ludovic Chabant <ludovic@chabant.com>
parents:
20
diff
changeset
|
23 config = {} |
95590732e4c9
More robust Markdown configuration handling.
Ludovic Chabant <ludovic@chabant.com>
parents:
20
diff
changeset
|
24 elif not isinstance(config, dict): |
95590732e4c9
More robust Markdown configuration handling.
Ludovic Chabant <ludovic@chabant.com>
parents:
20
diff
changeset
|
25 raise Exception("The `markdown` configuration setting must be " |
95590732e4c9
More robust Markdown configuration handling.
Ludovic Chabant <ludovic@chabant.com>
parents:
20
diff
changeset
|
26 "a dictionary.") |
95590732e4c9
More robust Markdown configuration handling.
Ludovic Chabant <ludovic@chabant.com>
parents:
20
diff
changeset
|
27 |
95590732e4c9
More robust Markdown configuration handling.
Ludovic Chabant <ludovic@chabant.com>
parents:
20
diff
changeset
|
28 extensions = config.get('extensions') |
20
c95c90c82263
Add support for Markdown extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
29 if extensions is None: |
c95c90c82263
Add support for Markdown extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
30 extensions = [] |
c95c90c82263
Add support for Markdown extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
31 # Compatibility with PieCrust 1.x |
58
95590732e4c9
More robust Markdown configuration handling.
Ludovic Chabant <ludovic@chabant.com>
parents:
20
diff
changeset
|
32 if config.get('use_markdown_extra'): |
20
c95c90c82263
Add support for Markdown extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
33 extensions.append('extra') |
c95c90c82263
Add support for Markdown extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
34 self._extensions = extensions |
c95c90c82263
Add support for Markdown extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
35 |