添加 KaTeX 会有多困难?

我想知道集成 KaTeX 会有多困难,是否有人正在考虑此事。他们的代码似乎正在快速成熟。

在我们这种情况下,这样做还有一个额外的好处,即让关于“可汗学院翻译”的论坛上的渲染效果与可汗学院保持一致。

1 个赞

我拼凑了一些代码,用于在服务器上渲染公式:

目前还没有错误处理,字体大小也与客户端版本不完全匹配,但在我的开发环境中看起来基本可以正常工作。

4 个赞

我非常喜欢这个想法,在某些情况下应该能显著提升性能,并开始解锁电子邮件支持!不过我们仍需要在某个时候将 SVG 转换为 PNG 以用于电子邮件。

但出于无障碍考虑,必须将其设为可选。

@danekhollas 我支持添加可选 KaTeX 的 PR。

4 个赞

由于插件开发目前远超我的能力范围,我只是想尝试通过自定义主题添加 KaTeX,使用 autorender KaTeX 扩展。它勉强能工作,但我遇到了一个关于支持单个 $ 符号作为数学分隔符的问题。

看起来,即使我关闭了 MathJax 数学插件,被 包围的文本仍会被转换为 <span class="math"> 标签内的文本,并且美元符号会消失。奇怪的是,我在 META 上无法复现此问题。有什么建议吗?

在这个 KaTeX GitHub 问题 的末尾,有人报告了一个非常类似的问题,该问题被追踪到是 Kramdown 自动转换导致的……

是的,自动渲染功能在 Discourse 上极有可能非常不稳定。我们依赖于正确的钩子来“装饰”在添加到 DOM 时正在处理的 HTML 块。我们必须以正确的方式完成这项工作。

也许 @misaka4e21 可以看看是否能让数学插件中的 KaTeX 默认关闭并设为可选?

5 个赞
6 个赞

哇,速度真快,非常感谢!

有一点需要考虑。与 MathJax 相比,KaTeX 仍缺少某些功能。在 Khan Academy 中,当 KaTeX 失败时,它们实际上会回退到 MathJax。一旦服务端渲染到位,实施这一点可能很有意义,否则您将始终需要同时分发 KaTeX 和 MathJax,这很可能是不理想的。

3 个赞

您如何决定何时进行回退?我很好奇,这是否也可以在客户端进行决定?

我并没有直接参与,但我的猜测是,当 KaTeX 抛出错误时,他们会使用 MathJax?
而且我非常确定他们也在客户端这样做。

如需更多信息,我建议直接在他们的 GitHub 上向他们询问。

2 个赞