Mercurial > piecrust2
annotate piecrust/formatting/markdownformatter.py @ 49:fce061f8c2ed
Fix cache validation issue with rendered segments, limit disk access.
| author | Ludovic Chabant <ludovic@chabant.com> |
|---|---|
| date | Fri, 22 Aug 2014 20:26:05 -0700 |
| parents | c95c90c82263 |
| children | 95590732e4c9 |
| 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 |
|
20
c95c90c82263
Add support for Markdown extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
21 extensions = self.app.config.get('markdown/extensions') |
|
c95c90c82263
Add support for Markdown extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
22 if extensions is None: |
|
c95c90c82263
Add support for Markdown extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
23 extensions = [] |
|
c95c90c82263
Add support for Markdown extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
24 # Compatibility with PieCrust 1.x |
|
c95c90c82263
Add support for Markdown extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
25 if self.app.config.get('markdown/use_markdown_extra'): |
|
c95c90c82263
Add support for Markdown extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
26 extensions.append('extra') |
|
c95c90c82263
Add support for Markdown extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
27 self._extensions = extensions |
|
c95c90c82263
Add support for Markdown extensions.
Ludovic Chabant <ludovic@chabant.com>
parents:
3
diff
changeset
|
28 |
