diff options
Diffstat (limited to 'markdown/extensions')
-rw-r--r-- | markdown/extensions/__init__.py | 7 | ||||
-rw-r--r-- | markdown/extensions/abbr.py | 20 | ||||
-rw-r--r-- | markdown/extensions/admonition.py | 15 | ||||
-rw-r--r-- | markdown/extensions/attr_list.py | 15 | ||||
-rw-r--r-- | markdown/extensions/codehilite.py | 13 | ||||
-rw-r--r-- | markdown/extensions/def_list.py | 14 | ||||
-rw-r--r-- | markdown/extensions/extra.py | 7 | ||||
-rw-r--r-- | markdown/extensions/fenced_code.py | 20 | ||||
-rw-r--r-- | markdown/extensions/footnotes.py | 27 | ||||
-rw-r--r-- | markdown/extensions/headerid.py | 22 | ||||
-rw-r--r-- | markdown/extensions/html_tidy.py | 14 | ||||
-rw-r--r-- | markdown/extensions/meta.py | 17 | ||||
-rw-r--r-- | markdown/extensions/nl2br.py | 10 | ||||
-rw-r--r-- | markdown/extensions/sane_lists.py | 12 | ||||
-rw-r--r-- | markdown/extensions/smart_strong.py | 12 | ||||
-rw-r--r-- | markdown/extensions/tables.py | 12 | ||||
-rw-r--r-- | markdown/extensions/toc.py | 13 | ||||
-rw-r--r-- | markdown/extensions/wikilinks.py | 28 |
18 files changed, 144 insertions, 134 deletions
diff --git a/markdown/extensions/__init__.py b/markdown/extensions/__init__.py index 0222c91..960d8f9 100644 --- a/markdown/extensions/__init__.py +++ b/markdown/extensions/__init__.py @@ -1,9 +1,10 @@ +from __future__ import unicode_literals """ Extensions ----------------------------------------------------------------------------- """ -class Extension: +class Extension(object): """ Base class for extensions to subclass. """ def __init__(self, configs = {}): """Create an instance of an Extention. @@ -46,6 +47,6 @@ class Extension: * md_globals: Global variables in the markdown module namespace. """ - raise NotImplementedError, 'Extension "%s.%s" must define an "extendMarkdown"' \ - 'method.' % (self.__class__.__module__, self.__class__.__name__) + raise NotImplementedError('Extension "%s.%s" must define an "extendMarkdown"' \ + 'method.' % (self.__class__.__module__, self.__class__.__name__)) diff --git a/markdown/extensions/abbr.py b/markdown/extensions/abbr.py index 45663c0..76a08cd 100644 --- a/markdown/extensions/abbr.py +++ b/markdown/extensions/abbr.py @@ -1,3 +1,4 @@ +from __future__ import unicode_literals ''' Abbreviation Extension for Python-Markdown ========================================== @@ -23,14 +24,17 @@ Copyright 2007-2008 ''' +from __future__ import absolute_import +from . import Extension +from ..preprocessors import Preprocessor +from ..inlinepatterns import Pattern +from ..util import etree import re -import markdown -from markdown.util import etree # Global Vars ABBR_REF_RE = re.compile(r'[*]\[(?P<abbr>[^\]]*)\][ ]?:\s*(?P<title>.*)') -class AbbrExtension(markdown.Extension): +class AbbrExtension(Extension): """ Abbreviation Extension for Python-Markdown. """ def extendMarkdown(self, md, md_globals): @@ -38,7 +42,7 @@ class AbbrExtension(markdown.Extension): md.preprocessors.add('abbr', AbbrPreprocessor(md), '<reference') -class AbbrPreprocessor(markdown.preprocessors.Preprocessor): +class AbbrPreprocessor(Preprocessor): """ Abbreviation Preprocessor - parse text for abbr references. """ def run(self, lines): @@ -75,11 +79,11 @@ class AbbrPreprocessor(markdown.preprocessors.Preprocessor): return r'(?P<abbr>\b%s\b)' % (r''.join(chars)) -class AbbrPattern(markdown.inlinepatterns.Pattern): +class AbbrPattern(Pattern): """ Abbreviation inline pattern. """ def __init__(self, pattern, title): - markdown.inlinepatterns.Pattern.__init__(self, pattern) + super(AbbrPattern, self).__init__(pattern) self.title = title def handleMatch(self, m): @@ -90,7 +94,3 @@ class AbbrPattern(markdown.inlinepatterns.Pattern): def makeExtension(configs=None): return AbbrExtension(configs=configs) - -if __name__ == "__main__": - import doctest - doctest.testmod() diff --git a/markdown/extensions/admonition.py b/markdown/extensions/admonition.py index 122eb87..98dcb3a 100644 --- a/markdown/extensions/admonition.py +++ b/markdown/extensions/admonition.py @@ -1,5 +1,4 @@ -#!/usr/bin/env python - +from __future__ import unicode_literals """ Admonition extension for Python-Markdown ======================================== @@ -42,12 +41,14 @@ By [Tiago Serafim](http://www.tiagoserafim.com/). """ +from __future__ import absolute_import +from . import Extension +from ..blockprocessors import BlockProcessor +from ..util import etree import re -import markdown -from markdown.util import etree -class AdmonitionExtension(markdown.Extension): +class AdmonitionExtension(Extension): """ Admonition extension for Python-Markdown. """ def extendMarkdown(self, md, md_globals): @@ -59,7 +60,7 @@ class AdmonitionExtension(markdown.Extension): '_begin') -class AdmonitionProcessor(markdown.blockprocessors.BlockProcessor): +class AdmonitionProcessor(BlockProcessor): CLASSNAME = 'admonition' CLASSNAME_TITLE = 'admonition-title' @@ -84,7 +85,7 @@ class AdmonitionProcessor(markdown.blockprocessors.BlockProcessor): if m: klass, title = self.get_class_and_title(m) div = etree.SubElement(parent, 'div') - div.set('class', u'%s %s' % (self.CLASSNAME, klass)) + div.set('class', '%s %s' % (self.CLASSNAME, klass)) if title: p = etree.SubElement(div, 'p') p.text = title diff --git a/markdown/extensions/attr_list.py b/markdown/extensions/attr_list.py index 3a79d85..d0d4873 100644 --- a/markdown/extensions/attr_list.py +++ b/markdown/extensions/attr_list.py @@ -1,3 +1,4 @@ +from __future__ import unicode_literals """ Attribute List Extension for Python-Markdown ============================================ @@ -18,9 +19,11 @@ Dependencies: """ -import markdown +from __future__ import absolute_import +from . import Extension +from ..treeprocessors import Treeprocessor +from ..util import isBlockLevel import re -from markdown.util import isBlockLevel try: Scanner = re.Scanner @@ -41,9 +44,9 @@ def _handle_key_value(s, t): def _handle_word(s, t): if t.startswith('.'): - return u'.', t[1:] + return '.', t[1:] if t.startswith('#'): - return u'id', t[1:] + return 'id', t[1:] return t, t _scanner = Scanner([ @@ -61,7 +64,7 @@ def get_attrs(str): def isheader(elem): return elem.tag in ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'] -class AttrListTreeprocessor(markdown.treeprocessors.Treeprocessor): +class AttrListTreeprocessor(Treeprocessor): BASE_RE = r'\{\:?([^\}]*)\}' HEADER_RE = re.compile(r'[ ]*%s[ ]*$' % BASE_RE) @@ -128,7 +131,7 @@ class AttrListTreeprocessor(markdown.treeprocessors.Treeprocessor): return self.NAME_RE.sub('_', name) -class AttrListExtension(markdown.extensions.Extension): +class AttrListExtension(Extension): def extendMarkdown(self, md, md_globals): md.treeprocessors.add('attr_list', AttrListTreeprocessor(md), '>prettify') diff --git a/markdown/extensions/codehilite.py b/markdown/extensions/codehilite.py index fd8e2f4..89c0251 100644 --- a/markdown/extensions/codehilite.py +++ b/markdown/extensions/codehilite.py @@ -1,5 +1,4 @@ -#!/usr/bin/python - +from __future__ import unicode_literals """ CodeHilite Extension for Python-Markdown ======================================== @@ -20,7 +19,9 @@ Dependencies: """ -import markdown +from __future__ import absolute_import +from . import Extension +from ..treeprocessors import Treeprocessor import warnings try: from pygments import highlight @@ -31,7 +32,7 @@ except ImportError: pygments = False # ------------------ The Main CodeHilite Class ---------------------- -class CodeHilite: +class CodeHilite(object): """ Determine language of source code, and pass it into the pygments hilighter. @@ -167,7 +168,7 @@ class CodeHilite: # ------------------ The Markdown Extension ------------------------------- -class HiliteTreeprocessor(markdown.treeprocessors.Treeprocessor): +class HiliteTreeprocessor(Treeprocessor): """ Hilight source code in code blocks. """ def run(self, root): @@ -193,7 +194,7 @@ class HiliteTreeprocessor(markdown.treeprocessors.Treeprocessor): block.text = placeholder -class CodeHiliteExtension(markdown.Extension): +class CodeHiliteExtension(Extension): """ Add source code hilighting to markdown codeblocks. """ def __init__(self, configs): diff --git a/markdown/extensions/def_list.py b/markdown/extensions/def_list.py index 382445c..cd9dc9c 100644 --- a/markdown/extensions/def_list.py +++ b/markdown/extensions/def_list.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +from __future__ import unicode_literals """ Definition List Extension for Python-Markdown ============================================= @@ -19,12 +19,14 @@ Copyright 2008 - [Waylan Limberg](http://achinghead.com) """ +from __future__ import absolute_import +from . import Extension +from ..blockprocessors import BlockProcessor, ListIndentProcessor +from ..util import etree import re -import markdown -from markdown.util import etree -class DefListProcessor(markdown.blockprocessors.BlockProcessor): +class DefListProcessor(BlockProcessor): """ Process Definition Lists. """ RE = re.compile(r'(^|\n)[ ]{0,3}:[ ]{1,3}(.*?)(\n|$)') @@ -85,7 +87,7 @@ class DefListProcessor(markdown.blockprocessors.BlockProcessor): if theRest: blocks.insert(0, theRest) -class DefListIndentProcessor(markdown.blockprocessors.ListIndentProcessor): +class DefListIndentProcessor(ListIndentProcessor): """ Process indented children of definition list items. """ ITEM_TYPES = ['dd'] @@ -98,7 +100,7 @@ class DefListIndentProcessor(markdown.blockprocessors.ListIndentProcessor): -class DefListExtension(markdown.Extension): +class DefListExtension(Extension): """ Add definition lists to Markdown. """ def extendMarkdown(self, md, md_globals): diff --git a/markdown/extensions/extra.py b/markdown/extensions/extra.py index ba646f5..5b8876c 100644 --- a/markdown/extensions/extra.py +++ b/markdown/extensions/extra.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +from __future__ import unicode_literals """ Python-Markdown Extra Extension =============================== @@ -27,7 +27,8 @@ when you upgrade to any future version of Python-Markdown. """ -import markdown +from __future__ import absolute_import +from . import Extension extensions = ['smart_strong', 'fenced_code', @@ -39,7 +40,7 @@ extensions = ['smart_strong', ] -class ExtraExtension(markdown.Extension): +class ExtraExtension(Extension): """ Add various extensions to Markdown class.""" def extendMarkdown(self, md, md_globals): diff --git a/markdown/extensions/fenced_code.py b/markdown/extensions/fenced_code.py index 76d644f..91c59ee 100644 --- a/markdown/extensions/fenced_code.py +++ b/markdown/extensions/fenced_code.py @@ -1,5 +1,4 @@ -#!/usr/bin/env python - +from __future__ import unicode_literals """ Fenced Code Extension for Python Markdown ========================================= @@ -75,9 +74,11 @@ Dependencies: """ +from __future__ import absolute_import +from . import Extension +from ..preprocessors import Preprocessor +from .codehilite import CodeHilite, CodeHiliteExtension import re -import markdown -from markdown.extensions.codehilite import CodeHilite, CodeHiliteExtension # Global vars FENCED_BLOCK_RE = re.compile( \ @@ -87,7 +88,7 @@ FENCED_BLOCK_RE = re.compile( \ CODE_WRAP = '<pre><code%s>%s</code></pre>' LANG_TAG = ' class="%s"' -class FencedCodeExtension(markdown.Extension): +class FencedCodeExtension(Extension): def extendMarkdown(self, md, md_globals): """ Add FencedBlockPreprocessor to the Markdown instance. """ @@ -98,10 +99,10 @@ class FencedCodeExtension(markdown.Extension): ">normalize_whitespace") -class FencedBlockPreprocessor(markdown.preprocessors.Preprocessor): +class FencedBlockPreprocessor(Preprocessor): def __init__(self, md): - markdown.preprocessors.Preprocessor.__init__(self, md) + super(FencedBlockPreprocessor, self).__init__(md) self.checked_for_codehilite = False self.codehilite_conf = {} @@ -158,8 +159,3 @@ class FencedBlockPreprocessor(markdown.preprocessors.Preprocessor): def makeExtension(configs=None): return FencedCodeExtension(configs=configs) - - -if __name__ == "__main__": - import doctest - doctest.testmod() diff --git a/markdown/extensions/footnotes.py b/markdown/extensions/footnotes.py index 0a0ddea..b7ebc35 100644 --- a/markdown/extensions/footnotes.py +++ b/markdown/extensions/footnotes.py @@ -1,3 +1,4 @@ +from __future__ import unicode_literals """ ========================= FOOTNOTES ================================= @@ -23,16 +24,22 @@ Example: """ +from __future__ import absolute_import +from . import Extension +from ..preprocessors import Preprocessor +from ..inlinepatterns import Pattern +from ..treeprocessors import Treeprocessor +from ..postprocessors import Postprocessor +from ..util import etree, text_type +from ..odict import OrderedDict import re -import markdown -from markdown.util import etree FN_BACKLINK_TEXT = "zz1337820767766393qq" NBSP_PLACEHOLDER = "qq3936677670287331zz" DEF_RE = re.compile(r'[ ]{0,3}\[\^([^\]]*)\]:\s*(.*)') TABBED_RE = re.compile(r'((\t)|( ))(.*)') -class FootnoteExtension(markdown.Extension): +class FootnoteExtension(Extension): """ Footnote Extension. """ def __init__ (self, configs): @@ -83,7 +90,7 @@ class FootnoteExtension(markdown.Extension): def reset(self): """ Clear the footnotes on reset, and prepare for a distinct document. """ - self.footnotes = markdown.odict.OrderedDict() + self.footnotes = OrderedDict() self.unique_prefix += 1 def findFootnotesPlaceholder(self, root): @@ -155,7 +162,7 @@ class FootnoteExtension(markdown.Extension): return div -class FootnotePreprocessor(markdown.preprocessors.Preprocessor): +class FootnotePreprocessor(Preprocessor): """ Find all footnote references and store for later use. """ def __init__ (self, footnotes): @@ -246,11 +253,11 @@ class FootnotePreprocessor(markdown.preprocessors.Preprocessor): return items, i -class FootnotePattern(markdown.inlinepatterns.Pattern): +class FootnotePattern(Pattern): """ InlinePattern for footnote markers in a document's body text. """ def __init__(self, pattern, footnotes): - markdown.inlinepatterns.Pattern.__init__(self, pattern) + super(FootnotePattern, self).__init__(pattern) self.footnotes = footnotes def handleMatch(self, m): @@ -263,13 +270,13 @@ class FootnotePattern(markdown.inlinepatterns.Pattern): if self.footnotes.md.output_format not in ['html5', 'xhtml5']: a.set('rel', 'footnote') # invalid in HTML5 a.set('class', 'footnote-ref') - a.text = unicode(self.footnotes.footnotes.index(id) + 1) + a.text = text_type(self.footnotes.footnotes.index(id) + 1) return sup else: return None -class FootnoteTreeprocessor(markdown.treeprocessors.Treeprocessor): +class FootnoteTreeprocessor(Treeprocessor): """ Build and append footnote div to end of document. """ def __init__ (self, footnotes): @@ -291,7 +298,7 @@ class FootnoteTreeprocessor(markdown.treeprocessors.Treeprocessor): else: root.append(footnotesDiv) -class FootnotePostprocessor(markdown.postprocessors.Postprocessor): +class FootnotePostprocessor(Postprocessor): """ Replace placeholders with html entities. """ def __init__(self, footnotes): self.footnotes = footnotes diff --git a/markdown/extensions/headerid.py b/markdown/extensions/headerid.py index cf3df17..33d7d90 100644 --- a/markdown/extensions/headerid.py +++ b/markdown/extensions/headerid.py @@ -1,5 +1,4 @@ -#!/usr/bin/python - +from __future__ import unicode_literals """ HeaderID Extension for Python-Markdown ====================================== @@ -76,7 +75,9 @@ Dependencies: """ -import markdown +from __future__ import absolute_import +from . import Extension +from ..treeprocessors import Treeprocessor import re import logging import unicodedata @@ -120,7 +121,7 @@ def itertext(elem): yield e.tail -class HeaderIdTreeprocessor(markdown.treeprocessors.Treeprocessor): +class HeaderIdTreeprocessor(Treeprocessor): """ Assign IDs to headers. """ IDs = set() @@ -135,7 +136,7 @@ class HeaderIdTreeprocessor(markdown.treeprocessors.Treeprocessor): if "id" in elem.attrib: id = elem.get('id') else: - id = slugify(u''.join(itertext(elem)), sep) + id = slugify(''.join(itertext(elem)), sep) elem.set('id', unique(id, self.IDs)) if start_level: level = int(elem.tag[-1]) + start_level @@ -149,9 +150,9 @@ class HeaderIdTreeprocessor(markdown.treeprocessors.Treeprocessor): level = int(self.config['level']) - 1 force = self._str2bool(self.config['forceid']) if hasattr(self.md, 'Meta'): - if self.md.Meta.has_key('header_level'): + if 'header_level' in self.md.Meta: level = int(self.md.Meta['header_level'][0]) - 1 - if self.md.Meta.has_key('header_forceid'): + if 'header_forceid' in self.md.Meta: force = self._str2bool(self.md.Meta['header_forceid'][0]) return level, force @@ -165,7 +166,7 @@ class HeaderIdTreeprocessor(markdown.treeprocessors.Treeprocessor): return default -class HeaderIdExtension (markdown.Extension): +class HeaderIdExtension(Extension): def __init__(self, configs): # set defaults self.config = { @@ -196,8 +197,3 @@ class HeaderIdExtension (markdown.Extension): def makeExtension(configs=None): return HeaderIdExtension(configs=configs) - -if __name__ == "__main__": - import doctest - doctest.testmod() - diff --git a/markdown/extensions/html_tidy.py b/markdown/extensions/html_tidy.py index 80272a3..e5f060c 100644 --- a/markdown/extensions/html_tidy.py +++ b/markdown/extensions/html_tidy.py @@ -1,5 +1,4 @@ -#!/usr/bin/env python - +from __future__ import unicode_literals """ HTML Tidy Extension for Python-Markdown ======================================= @@ -28,13 +27,16 @@ Dependencies: """ -import markdown +from __future__ import absolute_import +from . import Extension +from ..postprocessors import Postprocessor +from ..util import text_type try: import tidy except ImportError: tidy = None -class TidyExtension(markdown.Extension): +class TidyExtension(Extension): def __init__(self, configs): # Set defaults to match typical markdown behavior. @@ -54,13 +56,13 @@ class TidyExtension(markdown.Extension): md.postprocessors['tidy'] = TidyProcessor(md) -class TidyProcessor(markdown.postprocessors.Postprocessor): +class TidyProcessor(Postprocessor): def run(self, text): # Pass text to Tidy. As Tidy does not accept unicode we need to encode # it and decode its return value. enc = self.markdown.tidy_options.get('char_encoding', 'utf8') - return unicode(tidy.parseString(text.encode(enc), + return text_type(tidy.parseString(text.encode(enc), **self.markdown.tidy_options), encoding=enc) diff --git a/markdown/extensions/meta.py b/markdown/extensions/meta.py index a3ee6fb..a2fbe80 100644 --- a/markdown/extensions/meta.py +++ b/markdown/extensions/meta.py @@ -1,5 +1,4 @@ -#!usr/bin/python - +from __future__ import unicode_literals """ Meta Data Extension for Python-Markdown ======================================= @@ -40,15 +39,17 @@ Contact: markdown@freewisdom.org License: BSD (see ../LICENSE.md for details) """ -import re -import markdown +from __future__ import absolute_import +from . import Extension +from ..preprocessors import Preprocessor +import re # Global Vars META_RE = re.compile(r'^[ ]{0,3}(?P<key>[A-Za-z0-9_-]+):\s*(?P<value>.*)') META_MORE_RE = re.compile(r'^[ ]{4,}(?P<value>.*)') -class MetaExtension (markdown.Extension): +class MetaExtension (Extension): """ Meta-Data extension for Python-Markdown. """ def extendMarkdown(self, md, md_globals): @@ -57,7 +58,7 @@ class MetaExtension (markdown.Extension): md.preprocessors.add("meta", MetaPreprocessor(md), "_begin") -class MetaPreprocessor(markdown.preprocessors.Preprocessor): +class MetaPreprocessor(Preprocessor): """ Get Meta-Data. """ def run(self, lines): @@ -90,7 +91,3 @@ class MetaPreprocessor(markdown.preprocessors.Preprocessor): def makeExtension(configs={}): return MetaExtension(configs=configs) - -if __name__ == "__main__": - import doctest - doctest.testmod() diff --git a/markdown/extensions/nl2br.py b/markdown/extensions/nl2br.py index 3967c75..5636214 100644 --- a/markdown/extensions/nl2br.py +++ b/markdown/extensions/nl2br.py @@ -1,3 +1,4 @@ +from __future__ import unicode_literals """ NL2BR Extension =============== @@ -20,17 +21,18 @@ Dependencies: """ -import markdown +from __future__ import absolute_import +from . import Extension +from ..inlinepatterns import SubstituteTagPattern BR_RE = r'\n' -class Nl2BrExtension(markdown.Extension): +class Nl2BrExtension(Extension): def extendMarkdown(self, md, md_globals): - br_tag = markdown.inlinepatterns.SubstituteTagPattern(BR_RE, 'br') + br_tag = SubstituteTagPattern(BR_RE, 'br') md.inlinePatterns.add('nl', br_tag, '_end') def makeExtension(configs=None): return Nl2BrExtension(configs) - diff --git a/markdown/extensions/sane_lists.py b/markdown/extensions/sane_lists.py index dce04ea..5620ccd 100644 --- a/markdown/extensions/sane_lists.py +++ b/markdown/extensions/sane_lists.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +from __future__ import unicode_literals """ Sane List Extension for Python-Markdown ======================================= @@ -19,23 +19,25 @@ Copyright 2011 - [Waylan Limberg](http://achinghead.com) """ +from __future__ import absolute_import +from . import Extension +from ..blockprocessors import OListProcessor, UListProcessor import re -import markdown -class SaneOListProcessor(markdown.blockprocessors.OListProcessor): +class SaneOListProcessor(OListProcessor): CHILD_RE = re.compile(r'^[ ]{0,3}((\d+\.))[ ]+(.*)') SIBLING_TAGS = ['ol'] -class SaneUListProcessor(markdown.blockprocessors.UListProcessor): +class SaneUListProcessor(UListProcessor): CHILD_RE = re.compile(r'^[ ]{0,3}(([*+-]))[ ]+(.*)') SIBLING_TAGS = ['ul'] -class SaneListExtension(markdown.Extension): +class SaneListExtension(Extension): """ Add sane lists to Markdown. """ def extendMarkdown(self, md, md_globals): diff --git a/markdown/extensions/smart_strong.py b/markdown/extensions/smart_strong.py index 7166989..7ce2d4d 100644 --- a/markdown/extensions/smart_strong.py +++ b/markdown/extensions/smart_strong.py @@ -1,3 +1,4 @@ +from __future__ import unicode_literals ''' Smart_Strong Extension for Python-Markdown ========================================== @@ -22,13 +23,14 @@ Copyright 2011 ''' -import markdown -from markdown.inlinepatterns import SimpleTagPattern +from __future__ import absolute_import +from . import Extension +from ..inlinepatterns import SimpleTagPattern SMART_STRONG_RE = r'(?<!\w)(_{2})(?!_)(.+?)(?<!_)\2(?!\w)' STRONG_RE = r'(\*{2})(.+?)\2' -class SmartEmphasisExtension(markdown.extensions.Extension): +class SmartEmphasisExtension(Extension): """ Add smart_emphasis extension to Markdown class.""" def extendMarkdown(self, md, md_globals): @@ -38,7 +40,3 @@ class SmartEmphasisExtension(markdown.extensions.Extension): def makeExtension(configs={}): return SmartEmphasisExtension(configs=dict(configs)) - -if __name__ == '__main__': - import doctest - doctest.testmod() diff --git a/markdown/extensions/tables.py b/markdown/extensions/tables.py index 1388cb5..3edaccf 100644 --- a/markdown/extensions/tables.py +++ b/markdown/extensions/tables.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +from __future__ import unicode_literals """ Tables Extension for Python-Markdown ==================================== @@ -14,11 +14,13 @@ A simple example: Copyright 2009 - [Waylan Limberg](http://achinghead.com) """ -import markdown -from markdown.util import etree +from __future__ import absolute_import +from . import Extension +from ..blockprocessors import BlockProcessor +from ..util import etree -class TableProcessor(markdown.blockprocessors.BlockProcessor): +class TableProcessor(BlockProcessor): """ Process Tables. """ def test(self, parent, block): @@ -84,7 +86,7 @@ class TableProcessor(markdown.blockprocessors.BlockProcessor): return row.split('|') -class TableExtension(markdown.Extension): +class TableExtension(Extension): """ Add tables to Markdown. """ def extendMarkdown(self, md, md_globals): diff --git a/markdown/extensions/toc.py b/markdown/extensions/toc.py index 1d6639e..f50f11b 100644 --- a/markdown/extensions/toc.py +++ b/markdown/extensions/toc.py @@ -1,3 +1,4 @@ +from __future__ import unicode_literals """ Table of Contents Extension for Python-Markdown * * * @@ -8,10 +9,12 @@ Dependencies: * [Markdown 2.1+](http://packages.python.org/Markdown/) """ -import markdown -from markdown.util import etree -from markdown.extensions.headerid import slugify, unique, itertext +from __future__ import absolute_import +from . import Extension +from ..treeprocessors import Treeprocessor +from ..util import etree +from .headerid import slugify, unique, itertext import re @@ -77,7 +80,7 @@ def order_toc_list(toc_list): return ordered_list -class TocTreeprocessor(markdown.treeprocessors.Treeprocessor): +class TocTreeprocessor(Treeprocessor): # Iterator wrapper to get parent and child all at once def iterparent(self, root): @@ -182,7 +185,7 @@ class TocTreeprocessor(markdown.treeprocessors.Treeprocessor): self.markdown.toc = toc -class TocExtension(markdown.Extension): +class TocExtension(Extension): TreeProcessorClass = TocTreeprocessor diff --git a/markdown/extensions/wikilinks.py b/markdown/extensions/wikilinks.py index 5384adb..de4d9aa 100644 --- a/markdown/extensions/wikilinks.py +++ b/markdown/extensions/wikilinks.py @@ -1,5 +1,4 @@ -#!/usr/bin/env python - +from __future__ import unicode_literals ''' WikiLinks Extension for Python-Markdown ====================================== @@ -78,7 +77,10 @@ Dependencies: * [Markdown 2.0+](http://packages.python.org/Markdown/) ''' -import markdown +from __future__ import absolute_import +from . import Extension +from ..inlinepatterns import Pattern +from ..util import etree import re def build_url(label, base, end): @@ -87,7 +89,7 @@ def build_url(label, base, end): return '%s%s%s'% (base, clean_label, end) -class WikiLinkExtension(markdown.Extension): +class WikiLinkExtension(Extension): def __init__(self, configs): # set extension defaults self.config = { @@ -111,9 +113,9 @@ class WikiLinkExtension(markdown.Extension): md.inlinePatterns.add('wikilink', wikilinkPattern, "<not_strong") -class WikiLinks(markdown.inlinepatterns.Pattern): +class WikiLinks(Pattern): def __init__(self, pattern, config): - markdown.inlinepatterns.Pattern.__init__(self, pattern) + super(WikiLinks, self).__init__(pattern) self.config = config def handleMatch(self, m): @@ -121,7 +123,7 @@ class WikiLinks(markdown.inlinepatterns.Pattern): base_url, end_url, html_class = self._getMeta() label = m.group(2).strip() url = self.config['build_url'](label, base_url, end_url) - a = markdown.util.etree.Element('a') + a = etree.Element('a') a.text = label a.set('href', url) if html_class: @@ -136,20 +138,14 @@ class WikiLinks(markdown.inlinepatterns.Pattern): end_url = self.config['end_url'] html_class = self.config['html_class'] if hasattr(self.md, 'Meta'): - if self.md.Meta.has_key('wiki_base_url'): + if 'wiki_base_url' in self.md.Meta: base_url = self.md.Meta['wiki_base_url'][0] - if self.md.Meta.has_key('wiki_end_url'): + if 'wiki_end_url' in self.md.Meta: end_url = self.md.Meta['wiki_end_url'][0] - if self.md.Meta.has_key('wiki_html_class'): + if 'wiki_html_class' in self.md.Meta: html_class = self.md.Meta['wiki_html_class'][0] return base_url, end_url, html_class def makeExtension(configs=None) : return WikiLinkExtension(configs=configs) - - -if __name__ == "__main__": - import doctest - doctest.testmod() - |