summaryrefslogtreecommitdiffstats
path: root/third_party/markdown/extensions/extra.py
diff options
context:
space:
mode:
authorhukun@chromium.org <hukun@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-13 12:10:46 +0000
committerhukun@chromium.org <hukun@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-13 12:10:46 +0000
commit96b2b52eb5d6d3a2cb8034057c4ac987902d4689 (patch)
treeb7fc2090f5e47603b3c1506700808ee4eb5e8a84 /third_party/markdown/extensions/extra.py
parent480116e7c1412b3aa58e92dc8d1d888f4fe19712 (diff)
downloadchromium_src-96b2b52eb5d6d3a2cb8034057c4ac987902d4689.zip
chromium_src-96b2b52eb5d6d3a2cb8034057c4ac987902d4689.tar.gz
chromium_src-96b2b52eb5d6d3a2cb8034057c4ac987902d4689.tar.bz2
Docserver: Support markdown for HTML content. Request thirdparty submission review.
R=kalman@chromium.org BUG=293681 Review URL: https://codereview.chromium.org/133433002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244490 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'third_party/markdown/extensions/extra.py')
-rw-r--r--third_party/markdown/extensions/extra.py86
1 files changed, 86 insertions, 0 deletions
diff --git a/third_party/markdown/extensions/extra.py b/third_party/markdown/extensions/extra.py
new file mode 100644
index 0000000..b368551
--- /dev/null
+++ b/third_party/markdown/extensions/extra.py
@@ -0,0 +1,86 @@
+# markdown is released under the BSD license
+# Copyright 2007, 2008 The Python Markdown Project (v. 1.7 and later)
+# Copyright 2004, 2005, 2006 Yuri Takhteyev (v. 0.2-1.6b)
+# Copyright 2004 Manfred Stienstra (the original version)
+#
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# * Neither the name of the <organization> nor the
+# names of its contributors may be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE PYTHON MARKDOWN PROJECT ''AS IS'' AND ANY
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL ANY CONTRIBUTORS TO THE PYTHON MARKDOWN PROJECT
+# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+
+"""
+Python-Markdown Extra Extension
+===============================
+
+A compilation of various Python-Markdown extensions that imitates
+[PHP Markdown Extra](http://michelf.com/projects/php-markdown/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 issue a warning and simply continue
+without that extension.
+
+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.
+
+"""
+
+from __future__ import absolute_import
+from __future__ import unicode_literals
+from . import Extension
+
+extensions = ['smart_strong',
+ 'fenced_code',
+ 'footnotes',
+ 'attr_list',
+ 'def_list',
+ 'tables',
+ 'abbr',
+ ]
+
+
+class ExtraExtension(Extension):
+ """ Add various extensions to Markdown class."""
+
+ def extendMarkdown(self, md, md_globals):
+ """ Register extension instances. """
+ md.registerExtensions(extensions, self.config)
+ if not md.safeMode:
+ # Turn on processing of markdown text within raw html
+ md.preprocessors['html_block'].markdown_in_raw = True
+
+def makeExtension(configs={}):
+ return ExtraExtension(configs=dict(configs))