SmartyPants¶
Summary¶
The SmartyPants extension converts ASCII dashes, quotes and ellipses to their HTML entity equivalents.
ASCII symbol | Replacements | HTML Entities | Substitution Keys |
---|---|---|---|
' |
‘ ’ | ‘ ’ |
'left-single-quote' , 'right-single-quote' |
" |
“ ” | “ ” |
'left-double-quote' , 'right-double-quote' |
<< >> |
« » | « » |
'left-angle-quote' , 'right-angle-quote' |
... |
… | … |
'ellipsis' |
-- |
– | – |
'ndash' |
--- |
— | — |
'mdash' |
Using the configuration option ‘substitutions’ you can overwrite the default substitutions. Just pass a dict mapping (a subset of) the keys to the substitution strings.
For example, one might use the following configuration to get correct quotes for the German language:
extension_configs = {
'smarty': {
'substitutions': {
'left-single-quote': '‚', # sb is not a typo!
'right-single-quote': '‘',
'left-double-quote': '„',
'right-double-quote': '“'
}
}
}
Note
This extension re-implements the Python SmartyPants library by integrating it into the markdown parser. While this does not provide any additional features, it does offer a few advantages. Notably, it will not try to work on highlighted code blocks (using the CodeHilite Extension) like the third party library has been known to do.
Usage¶
See Extensions for general extension usage. Use smarty
as the
name of the extension.
See the Library Reference for information about configuring extensions.
The following options are provided to configure the output:
Option | Default value | Description |
---|---|---|
smart_dashes |
True |
whether to convert dashes |
smart_quotes |
True |
whether to convert straight quotes |
smart_angled_quotes |
False |
whether to convert angled quotes |
smart_ellipses |
True |
whether to convert ellipses |
substitutions |
{} |
overwrite default substitutions |
A trivial example:
markdown.markdown(some_text, extensions=['smarty'])
Further reading¶
SmartyPants extension is based on the original SmartyPants implementation by John Gruber. Please read its documentation for details.