我们想用自定义 HTML 标签替换h
由 markdown 引入的默认标签。#
为了将 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>