Python Markdown 的 KaTeX 扩展
项目描述
markdown-katex
这是一个为 Python Markdown 添加 KaTeX 支持的扩展。
```math
f(x) = \int_{-\infty}^\infty
\hat f(\xi)\,e^{2 \pi i \xi x}
\,d\xi
```
项目/仓库
代码质量/CI
名称 | 角色 | 开始日期 | 结束日期 |
---|---|---|---|
Manuel Barkhau (mbarkhau@gmail.com) | 作者/维护者 | 2019-05 | - |
安装
$ pip install markdown-katex
...
$ python -m markdown_katex --version
markdown-katex version: v202406.1035 (using binary: /usr/local/bin/npx --no-install katex)
0.15.1
此包包含以下二进制文件
katex_v0.15.1_node10_x86_64_Linux
_katex_v0.15.1_node10_x86_64_Darwin
_katex_v0.15.1_node12_x86_64_Windows
如果您使用的是不同的平台,或者想使用较新的 katex-cli
版本,您需要通过 npm 安装它。
$ npx katex
$ npx katex --version
0.15.1
如果可用,此扩展将始终使用本地安装的 KaTeX 版本,而不是使用此包捆绑的实现。
渲染生成的HTML不需要JavaScript,因此它可以与更有限的渲染器(不支持JavaScript)一起使用,例如 WeasyPrint。
用法
可以使用katex.org上的编辑器交互式地创建和编辑公式。它们还提供了一些关于支持的LaTeX子集的良好文档。在Markdown文件中嵌入这些公式时,必须使用特殊语法才能使用KaTeX进行渲染。Markdown有许多语法扩展允许嵌入LaTeX公式,但此包只支持Gitlab引入的语法。
- 对于行内模式公式:$`...`$
- 对于显示模式公式:```math
以下是一个使用此语法的示例。
此语法的两个主要优势是
- Gitlab拥有一个现有的Markdown渲染器,无需下载任何软件即可使用。此实现也使用KaTeX,因此输出应与该扩展完全相同。
- 其他Markdown渲染器的回退行为是将原始LaTeX渲染为行内代码或代码块。这意味着它们不会意外地将LaTeX公式解析为Markdown语法。
希望其他渲染器也会采用对该语法的支持
- 渲染是在浏览器中使用KaTeX完成的,因此实现工作量应该很小。
- 现有Markdown文档的假阳性率可以忽略不计(即,现有对$`语法的使用非常少或不存在)。
选项
no_inline_svg
:将行内<svg>
替换为<img data:image/svg+xml;base64..">
标签。insert_fonts_css
:插入字体加载样式表(默认:True)。
开发/测试
$ git clone https://gitlab.com/mbarkhau/markdown-katex
$ cd markdown-katex
$ make conda
$ make lint mypy test
MkDocs集成
在您的mkdocs.yml
中,将以下内容添加到markdown_extensions。
# mkdocs.yml
markdown_extensions:
- markdown_katex:
no_inline_svg: True
insert_fonts_css: True
macro-file: macros.tex
宏文件可能看起来像这样
% macros.tex
\mymacro:\text{prefix #1 suffix}
WeasyPrint集成
当您生成由WeasyPrint消费的HTML时,您需要使用no_inline_svg=True
选项。这是由于WeasyPrint的一个长期限制。如果没有此选项,某些KaTeX公式将无法正确渲染,例如\sqrt
md_ctx = markdown.Markdown(
extensions=[
'markdown.extensions.toc',
'markdown.extensions.extra',
'markdown.extensions.abbr',
...
'markdown_katex',
],
extension_configs={
'markdown_katex': {
'no_inline_svg': True, # fix for WeasyPrint
'insert_fonts_css': True,
},
}
)
raw_html_text = md_ctx.convert(md_text)
您还可以使用markdown-katex将单个公式从tex转换为html
from markdown_katex.extension import tex2html
tex_text = r"""
\frac{1}{\left(\sqrt{\phi\sqrt{5}}-\phi\right)e^{\frac{2}{5}\pi}}=
1+\frac{e^{-2\pi}} {
1+\frac{e^{-4\pi}} {
1+\frac{e^{-6\pi}} {
1+\frac{e^{-8\pi}} {
1+\cdots
}
}
}
}
"""
options = {'no_inline_svg': True, 'insert_fonts_css': False}
html = tex2html(tex_text, options)
https://gitlab.com/mbarkhau/markdown-katex的更改日志
贡献者
感谢您测试、报告问题和贡献补丁
- @summersz - Richard Summers
- @bluhme3 - Evan Bluhm
- @pawamoy - Timothée Mazzucotelli
- @briankchan
- @spoorendonk
- @lisongmin
- @alexatadi
- @sacredfox - Akihiro Nomura
- @jnsdrtlf
- @dodoni - Markus Wendt
- @tovrstra - Toon Verstraelen
v202406.1035
- 修复#17罕见的并发问题。
v202112.1034
- 更新KaTeX二进制文件到v0.15.1
- 修复#13:使用行内语法对单个方程进行操作时不删除
<p></p>
。
v202106.1033
- 更新KaTeX二进制文件到v0.13.18
v202106.1032
- 修复#8:告示中的数学
- 更新KaTeX二进制文件到v0.13.11
v202105.1031
- 更新KaTeX二进制文件到v0.13.6
v202104.1030
- 更新KaTeX二进制文件到v0.13.3
- 修复#4:关闭Popen的文件描述符
- 添加对具有额外反引号的块的支持
v202103.1029
- 修复#14:由于
Markdown>=3.3
,对Markdown in HTML的支持已损坏。
感谢@summersz报告此问题。
v202103.1028
- 在Windows上使用node12作为KaTeX二进制文件
v202103.1027
- 更新 KaTeX 二进制文件到 v0.13.0
v202008.1026
- 修复 #12:处理带空格路径的 bug。(感谢 @summersz!)
v202008.1025
v202008.1024
v202006.1021
- 修复 #7:Windows 上的文件编码问题。
v202006.1020
- 修复 #7 Windows 上的 katex-cli(现在使用 pkg --target node12...)
- 修复 Windows 上的本地
katex.ps1
、katex.cmd
、katex.exe
的搜索
v202005.0017
- 允许使用
macro-file
选项。 - 更新 katex-cli 到 版本 v0.11.1
v202005.0016-beta
- 修复 #6:在
v202004.0015-beta
中引入的代码块解析回归。
v202004.0015-beta
- 修复 #3:修复块内内联数学
v202004.0014-beta
- 修复 #4:链接标签未正确关闭
v202001.0013-beta
- 修复:忽略关闭栅栏后的尾随空格。
v202001.0012-beta
- 修复:移除多余的空格以更好地与 whitespace: pre 一起使用。
v201912.0011-beta
- 添加
insert_fonts_css
选项。 - 记录选项
v201910.0010-beta
- 向 README.md 添加更突出的示例。
- 修复 #2:使用 MkDocs 时出现虚假日志消息
v201908.0009-beta
- 修复 #1:当文档中包含多个公式时,渲染的公式不正确。
v201907.0008-beta
- 修复:py<35 时不需要输入包
v201905.0007-beta
- 修复:使用多个反引号时内联代码的解析
v201905.0004-beta
- 修复:更好的错误报告
- 修复:清理临时目录
v201905.0002-alpha
- 初始版本
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源代码分发
markdown-katex-202406.1035.tar.gz (39.6 MB 查看哈希值)
构建分发
关闭
哈希值 for markdown_katex-202406.1035-py2.py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c1713e85854ddecb641ad96243a8b6cd67367bf1bf8d39b43b3680d7f2b1884d |
|
MD5 | 8a678faf5d9db25f429c86975bb2caf7 |
|
BLAKE2b-256 | f434780748d7d78fb4024dd1a290844374dd0d9830da35593c534638a4e9e54e |