markdone/markdone-python/markdone_python/rendering_extensions.py

33 lines
840 B
Python

from markdown.extensions import Extension
from markdown.inlinepatterns import SimpleTagPattern
from markdown.inlinepatterns import SimpleTextPattern
from markdown.util import etree
from markdone_python.common import tag_pattern
class SimpleTagPattern(Pattern): # pragma: no cover
"""
Return element of type `tag` with a text attribute of group(3)
of a Pattern.
"""
def __init__(self, pattern, tag):
Pattern.__init__(self, pattern)
self.tag = tag
def handleMatch(self, m):
el = util.etree.Element(self.tag)
el.text = m.group(3)
return el
class MarkdoneExtension(Extension):
def extendMarkdown(self, md, md_globals):
md.inlinePatterns.add(
'markdone_tag',
SimpleTagPattern(tag_pattern.pattern, 'em'),
'_begin',
)