将内容从 markdown 转换为 HTML 格式时,以下数学函数
${\{y_{i}, x_{i1}, ..., x_{id}\}}_{i=1}^{n}$
被转换为
${{y_{i}, x_{i1}, ..., x_{id}}}<em>{i=1}^{n}$
有没有办法告诉 Python 的 Markdown 不这样做?谢谢!
将内容从 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。
您有几种不同的方法可以做到这一点:
将 Math 函数包装在原始 HTML 中。Markdown 不在原始块级 HTML 中处理。所以把你的数学包装在一个div
:
<div>${\{y_{i}, x_{i1}, ..., x_{id}\}}_{i=1}^{n}$</div>
使用第三方扩展(也在此处),它提供了一种将文档的一部分标记为数学的方法。您需要安装其中一个扩展,然后告诉 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 团队的不同成员开发的)。