aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWaylan Limberg <waylan@gmail.com>2008-08-06 14:34:58 -0400
committerWaylan Limberg <waylan@gmail.com>2008-08-06 14:34:58 -0400
commit90c2963e01e4475aba53d27d8518f0c6cb219cfe (patch)
tree9f2d768068a04fe46f882cc7b2cb59bcdc5cac9e
parent25348ebcf956d7982ecc57dab23b3f7b0f7c1b62 (diff)
downloadmarkdown-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.
-rw-r--r--mdx_extra.py52
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))