annotate piecrust/formatting/smartypantsformatter.py @ 852:4850f8c21b6e

core: Start of the big refactor for PieCrust 3.0. * Everything is a `ContentSource`, including assets directories. * Most content sources are subclasses of the base file-system source. * A source is processed by a "pipeline", and there are 2 built-in pipelines, one for assets and one for pages. The asset pipeline is vaguely functional, but the page pipeline is completely broken right now. * Rewrite the baking process as just running appropriate pipelines on each content item. This should allow for better parallelization.
author Ludovic Chabant <ludovic@chabant.com>
date Wed, 17 May 2017 00:11:48 -0700
parents 370e74941d32
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
76
fdb08d986384 Add SmartyPants formatting.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1 from piecrust.formatting.base import Formatter, PRIORITY_LAST
fdb08d986384 Add SmartyPants formatting.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2
fdb08d986384 Add SmartyPants formatting.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
3
fdb08d986384 Add SmartyPants formatting.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
4 class SmartyPantsFormatter(Formatter):
fdb08d986384 Add SmartyPants formatting.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
5 FORMAT_NAMES = ['html']
fdb08d986384 Add SmartyPants formatting.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
6 OUTPUT_FORMAT = 'html'
fdb08d986384 Add SmartyPants formatting.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
7
fdb08d986384 Add SmartyPants formatting.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
8 def __init__(self):
fdb08d986384 Add SmartyPants formatting.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
9 super(SmartyPantsFormatter, self).__init__()
fdb08d986384 Add SmartyPants formatting.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
10 self.priority = PRIORITY_LAST
fdb08d986384 Add SmartyPants formatting.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
11
850
370e74941d32 optimize: Only load some 3rd party packages when needed.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
12 import smartypants
370e74941d32 optimize: Only load some 3rd party packages when needed.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
13 self._sp = smartypants.smartypants
370e74941d32 optimize: Only load some 3rd party packages when needed.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
14
76
fdb08d986384 Add SmartyPants formatting.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
15 def initialize(self, app):
fdb08d986384 Add SmartyPants formatting.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
16 super(SmartyPantsFormatter, self).initialize(app)
fdb08d986384 Add SmartyPants formatting.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
17 self.enabled = (
850
370e74941d32 optimize: Only load some 3rd party packages when needed.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
18 app.config.get('smartypants/enable') or
370e74941d32 optimize: Only load some 3rd party packages when needed.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
19 app.config.get('smartypants/enabled'))
76
fdb08d986384 Add SmartyPants formatting.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
20
fdb08d986384 Add SmartyPants formatting.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
21 def render(self, format_name, txt):
fdb08d986384 Add SmartyPants formatting.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
22 assert format_name == 'html'
850
370e74941d32 optimize: Only load some 3rd party packages when needed.
Ludovic Chabant <ludovic@chabant.com>
parents: 76
diff changeset
23 return self._sp(txt)