def md_factory(allow_links=True, allow_images=True, allow_blocks=True): """ Create and configure markdown object """ md = markdown.Markdown(safe_mode='escape', extensions=['nl2br']) # Remove references del md.preprocessors['reference'] del md.inlinePatterns['reference'] del md.inlinePatterns['image_reference'] del md.inlinePatterns['short_reference'] # Add [b], [i], [u] md.inlinePatterns.add('bb_b', inline.bold, '<strong') md.inlinePatterns.add('bb_i', inline.italics, '<emphasis') md.inlinePatterns.add('bb_u', inline.underline, '<emphasis2') # Add ~~deleted~~ striketrough_md = StriketroughExtension() striketrough_md.extendMarkdown(md) if not allow_links: # Remove links del md.inlinePatterns['link'] del md.inlinePatterns['autolink'] del md.inlinePatterns['automail'] if allow_images: # Add [img] short_images_md = ShortImagesExtension() short_images_md.extendMarkdown(md) else: # Remove images del md.inlinePatterns['image_link'] if allow_blocks: # Add [hr] and [quote] blocks md.parser.blockprocessors.add('bb_hr', blocks.BBCodeHRProcessor(md.parser), '>hr') fenced_code = FencedCodeExtension() fenced_code.extendMarkdown(md, None) code_bbcode = blocks.CodeBlockExtension() code_bbcode.extendMarkdown(md) quote_bbcode = blocks.QuoteExtension() quote_bbcode.extendMarkdown(md) else: # Remove blocks del md.parser.blockprocessors['hashheader'] del md.parser.blockprocessors['setextheader'] del md.parser.blockprocessors['code'] del md.parser.blockprocessors['quote'] del md.parser.blockprocessors['hr'] del md.parser.blockprocessors['olist'] del md.parser.blockprocessors['ulist'] return pipeline.extend_markdown(md)
def md_factory(allow_links=True, allow_images=True, allow_blocks=True): """creates and configures markdown object""" md = markdown.Markdown(extensions=["markdown.extensions.nl2br"]) # Remove HTML allowances del md.preprocessors["html_block"] del md.inlinePatterns["html"] # Remove references del md.preprocessors["reference"] del md.inlinePatterns["reference"] del md.inlinePatterns["image_reference"] del md.inlinePatterns["short_reference"] # Add [b], [i], [u] md.inlinePatterns.add("bb_b", bold, "<strong") md.inlinePatterns.add("bb_i", italics, "<emphasis") md.inlinePatterns.add("bb_u", underline, "<emphasis2") # Add ~~deleted~~ striketrough_md = StrikethroughExtension() striketrough_md.extendMarkdown(md) if allow_links: # Add [url] md.inlinePatterns.add("bb_url", url(md), "<link") else: # Remove links del md.inlinePatterns["link"] del md.inlinePatterns["autolink"] del md.inlinePatterns["automail"] if allow_images: # Add [img] md.inlinePatterns.add("bb_img", image(md), "<image_link") short_images_md = ShortImagesExtension() short_images_md.extendMarkdown(md) else: # Remove images del md.inlinePatterns["image_link"] if allow_blocks: # Add [hr] and [quote] blocks md.parser.blockprocessors.add("bb_hr", BBCodeHRProcessor(md.parser), ">hr") fenced_code = FencedCodeExtension() fenced_code.extendMarkdown(md, None) code_bbcode = CodeBlockExtension() code_bbcode.extendMarkdown(md) quote_bbcode = QuoteExtension() quote_bbcode.extendMarkdown(md) spoiler_bbcode = SpoilerExtension() spoiler_bbcode.extendMarkdown(md) else: # Remove blocks del md.parser.blockprocessors["hashheader"] del md.parser.blockprocessors["setextheader"] del md.parser.blockprocessors["code"] del md.parser.blockprocessors["quote"] del md.parser.blockprocessors["hr"] del md.parser.blockprocessors["olist"] del md.parser.blockprocessors["ulist"] return pipeline.extend_markdown(md)
def md_factory(allow_links=True, allow_images=True, allow_blocks=True): """creates and configures markdown object""" md = markdown.Markdown(extensions=[ 'markdown.extensions.nl2br', ]) # Remove HTML allowances del md.preprocessors['html_block'] del md.inlinePatterns['html'] # Remove references del md.preprocessors['reference'] del md.inlinePatterns['reference'] del md.inlinePatterns['image_reference'] del md.inlinePatterns['short_reference'] # Add [b], [i], [u] md.inlinePatterns.add('bb_b', inline.bold, '<strong') md.inlinePatterns.add('bb_i', inline.italics, '<emphasis') md.inlinePatterns.add('bb_u', inline.underline, '<emphasis2') # Add ~~deleted~~ striketrough_md = StriketroughExtension() striketrough_md.extendMarkdown(md) if allow_links: # Add [url] md.inlinePatterns.add('bb_url', inline.url(md), '<link') else: # Remove links del md.inlinePatterns['link'] del md.inlinePatterns['autolink'] del md.inlinePatterns['automail'] if allow_images: # Add [img] md.inlinePatterns.add('bb_img', inline.image(md), '<image_link') short_images_md = ShortImagesExtension() short_images_md.extendMarkdown(md) else: # Remove images del md.inlinePatterns['image_link'] if allow_blocks: # Add [hr] and [quote] blocks md.parser.blockprocessors.add('bb_hr', blocks.BBCodeHRProcessor(md.parser), '>hr') fenced_code = FencedCodeExtension() fenced_code.extendMarkdown(md, None) code_bbcode = blocks.CodeBlockExtension() code_bbcode.extendMarkdown(md) quote_bbcode = blocks.QuoteExtension() quote_bbcode.extendMarkdown(md) else: # Remove blocks del md.parser.blockprocessors['hashheader'] del md.parser.blockprocessors['setextheader'] del md.parser.blockprocessors['code'] del md.parser.blockprocessors['quote'] del md.parser.blockprocessors['hr'] del md.parser.blockprocessors['olist'] del md.parser.blockprocessors['ulist'] return pipeline.extend_markdown(md)