diff options
author | Tiago Serafim <tserafim@gmail.com> | 2012-09-19 18:37:02 -0300 |
---|---|---|
committer | Tiago Serafim <tserafim@gmail.com> | 2012-09-19 18:37:02 -0300 |
commit | 9756cb9f6014347179a9acf54a739aad5dda0c6d (patch) | |
tree | 7228a0ca389962c2f68ff5a341d38d4279c64012 /markdown | |
parent | bcfe4257299034eed6aae8351d115c7691db3a3e (diff) | |
download | markdown-9756cb9f6014347179a9acf54a739aad5dda0c6d.tar.gz markdown-9756cb9f6014347179a9acf54a739aad5dda0c6d.tar.bz2 markdown-9756cb9f6014347179a9acf54a739aad5dda0c6d.zip |
More tests for the extension and new tests for the RE. It's now possible to use an explicit blank title to not have the <p> tag with the title rendered.
Diffstat (limited to 'markdown')
-rw-r--r-- | markdown/extensions/admonition.py | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/markdown/extensions/admonition.py b/markdown/extensions/admonition.py index 32f2038..0f6af80 100644 --- a/markdown/extensions/admonition.py +++ b/markdown/extensions/admonition.py @@ -7,7 +7,7 @@ Admonition extension for Python-Markdown Adds rST-style admonitions. Inspired by [rST][] feature with the same name. The syntax is (followed by an indented block with the contents): - !!! <type> [title] + !!! [type] [optional explicit title] Where `type` is used as a CSS class name of the div. If not present, `title` defaults to the capitalized `type`, so "note" -> "Note". @@ -63,10 +63,7 @@ class AdmonitionProcessor(markdown.blockprocessors.BlockProcessor): CLASSNAME = 'admonition' CLASSNAME_TITLE = 'admonition-title' - RE = re.compile(r'(?:^|\n)!!!\ ?([\w\-]+)(?:\ "?([^"\n]+)"?)?') - - def __init__(self, parser): - markdown.blockprocessors.BlockProcessor.__init__(self, parser) + RE = re.compile(r'(?:^|\n)!!!\ ?([\w\-]+)(?:\ "(.*?)")?') def test(self, parent, block): sibling = self.lastChild(parent) @@ -88,9 +85,10 @@ class AdmonitionProcessor(markdown.blockprocessors.BlockProcessor): klass, title = self.get_class_and_title(m) div = etree.SubElement(parent, 'div') div.set('class', u'%s %s' % (self.CLASSNAME, klass)) - p = etree.SubElement(div, 'p') - p.text = title - p.set('class', self.CLASSNAME_TITLE) + if title: + p = etree.SubElement(div, 'p') + p.text = title + p.set('class', self.CLASSNAME_TITLE) else: div = sibling @@ -104,8 +102,10 @@ class AdmonitionProcessor(markdown.blockprocessors.BlockProcessor): def get_class_and_title(self, match): klass, title = match.group(1), match.group(2) - if not title: + if title is None: title = klass.capitalize() + elif title == '': + title = None return klass, title |