将内容从 markdown 格式转换为 HTML 格式时,如下数学函数
${\{y_{i}, x_{i1}, ..., x_{id}\}}_{i=1}^{n}$
转换为
${{y_{i}, x_{i1}, ..., x_{id}}}<em>{i=1}^{n}$
有没有办法告诉 Python 的 Markdown 不这样做?谢谢!
请您参考如下方法:
是的,数学语法与 Markdown 的语法冲突。您需要告诉解析器不要将其视为 Markdown。
您有几种不同的方法可以做到这一点:
用原始 HTML 包装 Math 函数。未在原始 block 级 HTML 中处理 Markdown。所以把你的数学封装在一个
div中:<div>${\{y_{i}, x_{i1}, ..., x_{id}\}}_{i=1}^{n}$</div>使用 third-party extension (还有 here )它提供了一种将文档的一部分标记为数学的方法。您需要安装其中一个扩展,然后告诉 Python-Markdown 使用它。例如,安装 Python-Markdown-Math ,执行以下操作:
pip install python-markdown-math然后,在您的 Python 代码中,您可以告诉 Markdown 使用扩展:
markdown.markdown(src, extensions=['mdx-math'])请注意,为了避免与用于指定货币的美元符号(正常用法)发生冲突,大多数扩展不支持使用单个美元符号作为包装器。在这种情况下,您将需要使用双美元符号 (
$$...$$)。或者您可以像这样打开对单个美元符号的支持:markdown.markdown( src, extensions=['mdx_math'], extension_configs={ 'mdx_math': {'enable_dollar_delimiter': True} } )顺便说一句,Arithmatex默认情况下,扩展提供对单个美元符号的支持。但是,它是更大的扩展包的一部分。如果您只需要一个,Python-Markdown-Math 就可以满足您的需求(每个都由 Python-Markdown 团队的不同成员开发)。
