annotate piecrust/formatting/smartypantsformatter.py @ 975:a0a62d0da723

internal: Check that the `Assetor` has an asset URL format to work with.
author Ludovic Chabant <ludovic@chabant.com>
date Tue, 17 Oct 2017 01:08:56 -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)