import re import markdown from markdown.inlinepatterns import SimpleTagPattern EMPHASIS_RE = r'\[i\]([^*]+)\[/i\]' STRONG_RE = r'\[b\]([^*]+)\[/b\]' STRONG_ALT_RE = r'\[u\]([^*]+)\[/u\]' class BBCodesExtension(markdown.Extension): def extendMarkdown(self, md): md.registerExtension(self) md.inlinePatterns.add('mi_bb_bold_alt', SimpleTagPattern(STRONG_ALT_RE, 'strong'), '>strong') md.inlinePatterns.add('mi_bb_bold', SimpleTagPattern(STRONG_RE, 'strong'), '>strong') md.inlinePatterns.add('mi_bb_italics', SimpleTagPattern(EMPHASIS_RE, 'em'), '>emphasis')