Мы хотим заменить стандартные теги h
, введенные при уценке с использованием #
, на собственные теги HTML.Для парсинга Markdown в HTML мы используем библиотеку Python Markdown .
. Мы попытались зарегистрировать расширение, использующее регулярное выражение H1.Это расширение использует регулярное выражение (#) (.*)
для обнаружения элементов H1.
import markdown
from markdown.extensions import Extension
from markdown.inlinepatterns import SimpleTagPattern
class CustomHeadings(Extension):
def extendMarkdown(self, md, md_globals):
H1_RE = r'(#) (.*)'
h1_tag = SimpleTagPattern(H1_RE, 'span class="h1"')
md.inlinePatterns['h1'] = h1_tag
md_extensions = [CustomHeadings()]
# [...]
def ds_custom_markdown_parse(value):
return markdown.markdown(value, extensions=md_extensions)
Мы хотим, чтобы h{1-6}
элементы были span class="h{1-6}"
.Но синтаксический анализатор Markdown по-прежнему соответствует строке # This is a h1
- <h1>This is a h1</h1>
.Мы ожидаем, что выход будет <span class="h1">This is a h1</span>