From 90c2963e01e4475aba53d27d8518f0c6cb219cfe Mon Sep 17 00:00:00 2001 From: Waylan Limberg Date: Wed, 6 Aug 2008 14:34:58 -0400 Subject: 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. --- mdx_extra.py | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 mdx_extra.py 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)) -- cgit v1.2.3