将内容从markdown转换为HTML格式时,使用以下数学函数
${\{y_{i}, x_{i1}, ..., x_{id}\}}_{i=1}^{n}$
转换为
${{y_{i}, x_{i1}, ..., x_{id}}}<em>{i=1}^{n}$
有没有办法告诉Python的Markdown没有这样做?谢谢!
答案 0 :(得分:5)
是的,数学语法与Markdown的语法相冲突。您需要告诉解析器不要将其视为Markdown。
您有几种不同的方法可以做到这一点:
以原始HTML包装Math函数。 Markdown不在原始块级HTML中处理。所以将数学包装在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团队的其他成员开发)。