"""
ExtraRawHtml.
Split out extra raw html parsing from Python Markdown.
---
Python-Markdown Extra Extension
===============================
See
for documentation.
Copyright The Python Markdown Project
License: [BSD](http://www.opensource.org/licenses/bsd-license.php)
"""
from markdown import Extension
import warnings
import re
from .util import PymdownxDeprecationWarning
from markdown.extensions import md_in_html as module
class ExtraRawHtmExtension(Extension):
"""Add raw HTML extensions to Markdown class."""
def extendMarkdown(self, md):
"""Register extension instances."""
warnings.warn(
"'extrarawhtml' extension is deprecated, 'markdown.extensions.md_in_html' should be used instead",
PymdownxDeprecationWarning
)
md.registerExtension(self)
# Turn on processing of markdown text within raw html
md.preprocessors['html_block'].markdown_in_raw = True
md.parser.blockprocessors.register(
module.MarkdownInHtmlProcessor(md.parser), 'markdown_block', 105
)
md.parser.blockprocessors.tag_counter = -1
md.parser.blockprocessors.contain_span_tags = re.compile(
r'^(p|h[1-6]|li|dd|dt|td|th|legend|address)$',
re.IGNORECASE
)
def makeExtension(*args, **kwargs):
"""Return extension."""
return ExtraRawHtmExtension(*args, **kwargs)