extrarawhtml.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. """
  2. ExtraRawHtml.
  3. Split out extra raw html parsing from Python Markdown.
  4. ---
  5. Python-Markdown Extra Extension
  6. ===============================
  7. See <https://pythonhosted.org/Markdown/extensions/extra.html>
  8. for documentation.
  9. Copyright The Python Markdown Project
  10. License: [BSD](http://www.opensource.org/licenses/bsd-license.php)
  11. """
  12. from markdown import Extension
  13. import warnings
  14. import re
  15. from .util import PymdownxDeprecationWarning
  16. from markdown.extensions import md_in_html as module
  17. class ExtraRawHtmExtension(Extension):
  18. """Add raw HTML extensions to Markdown class."""
  19. def extendMarkdown(self, md):
  20. """Register extension instances."""
  21. warnings.warn(
  22. "'extrarawhtml' extension is deprecated, 'markdown.extensions.md_in_html' should be used instead",
  23. PymdownxDeprecationWarning
  24. )
  25. md.registerExtension(self)
  26. # Turn on processing of markdown text within raw html
  27. md.preprocessors['html_block'].markdown_in_raw = True
  28. md.parser.blockprocessors.register(
  29. module.MarkdownInHtmlProcessor(md.parser), 'markdown_block', 105
  30. )
  31. md.parser.blockprocessors.tag_counter = -1
  32. md.parser.blockprocessors.contain_span_tags = re.compile(
  33. r'^(p|h[1-6]|li|dd|dt|td|th|legend|address)$',
  34. re.IGNORECASE
  35. )
  36. def makeExtension(*args, **kwargs):
  37. """Return extension."""
  38. return ExtraRawHtmExtension(*args, **kwargs)