diff options
author | Waylan Limberg <waylan@gmail.com> | 2008-08-06 14:34:58 -0400 |
---|---|---|
committer | Waylan Limberg <waylan@gmail.com> | 2008-08-06 14:34:58 -0400 |
commit | 90c2963e01e4475aba53d27d8518f0c6cb219cfe (patch) | |
tree | 9f2d768068a04fe46f882cc7b2cb59bcdc5cac9e /mdx_extra.py | |
parent | 25348ebcf956d7982ecc57dab23b3f7b0f7c1b62 (diff) | |
download | markdown-90c2963e01e4475aba53d27d8518f0c6cb219cfe.tar.gz markdown-90c2963e01e4475aba53d27d8518f0c6cb219cfe.tar.bz2 markdown-90c2963e01e4475aba53d27d8518f0c6cb219cfe.zip |
Adding mdx_extra. This is a first try and, while it works, does not
nessecarily pass configs through to the individual extensions properly.
Not sure if it's a bug in markdown.py or should be addressed in the
extension, or both (internal extensions are getting `configs=[]` instead of
`configs={}`). A quick hack in this extension (`configs=dict(configs)`)
avoids any errors but may munge any configs it passes on. Needs more testing.
Note I have not added it to the distribution (via setup.py of MANIFEST)
as its not quite ready for prime-time yet.
Diffstat (limited to 'mdx_extra.py')
-rw-r--r-- | mdx_extra.py | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/mdx_extra.py b/mdx_extra.py new file mode 100644 index 0000000..e99bec4 --- /dev/null +++ b/mdx_extra.py @@ -0,0 +1,52 @@ +#!/usr/bin/env python +""" +Python-Markdown Extra Extension +=============================== + +A compilation of various Python-Markdown extensions that imitates +[PHP Markdown Extra](http://michelf.com/projects/php-markdown/extra/). + +As no-one has yet written a Definition List extension for Python- +Markdown, definition lists are not yet supported by Extra. + +Note that each of the individual extensions still need to be available +on your PYTHONPATH. This extension simply wraps them all up as a +convenience so that only one extension needs to be listed when +initiating Markdown. See the documentation for each individual +extension for specifics about that extension. + +In the event that one or more of the supported extensions are not +available for import, Markdown will simply continue without that +extension. If you would like to be notified of such failures, +you may set Python-Markdown's logger level to "WARN". + +There may be additional extensions that are distributed with +Python-Markdown that are not included here in Extra. Those extensions +are not part of PHP Markdown Extra, and therefore, not part of +Python-Markdown Extra. If you really would like Extra to include +additional extensions, we suggest creating your own clone of Extra +under a differant name. You could also edit the `extensions` global +variable defined below, but be aware that such changes may be lost +when you upgrade to any future version of Python-Markdown. + +""" + +import markdown + +extensions = ['fenced_code', + 'footnotes', + 'headerid', + 'tables', + 'abbr', + ] + + +class ExtraExtension(markdown.Extension): + """ Add various extensions to Markdown class.""" + + def extendMarkdown(self, md, md_globals): + """ Register extension instances. """ + md.registerExtensions(extensions, self.config) + +def makeExtension(configs={}): + return ExtraExtension(configs=dict(configs)) |