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', )