import markdown from markdown.inlinepatterns import LinkPattern from markdown.util import etree IMAGES_RE = r"\!(\s?)\((<.*?>|([^\)]*))\)" class ShortImagesExtension(markdown.Extension): def extendMarkdown(self, md): md.registerExtension(self) md.inlinePatterns.add( "misago_short_images", ShortImagePattern(IMAGES_RE, md), "_end" ) class ShortImagePattern(LinkPattern): def handleMatch(self, m): img_src = m.groups()[2].strip() if img_src: img = etree.Element("img") img.set("src", img_src) img.set("alt", img_src) return img