soarli

前端部署Mathjax
前言近期由于校园网关闭了与境外ip地址的通信权限,诸多网站访问受限,本以为自己网站肯定不可能会受到影响,没想到cd...
扫描右侧二维码阅读全文
22
2021/10

前端部署Mathjax

前言

近期由于校园网关闭了与境外ip地址的通信权限,诸多网站访问受限,本以为自己网站肯定不可能会受到影响,没想到cdn.mathjax.org竟然服务器也在境外。这直接导致了博客加载(转圈)时间硬生生的多出来十多秒钟,抓包得知上述时间用来加载accessibility-menu.js?V=2.7.0并且加载不出来,这直接导致了数学公式无法正常显示。没办法,只好将其搬到自己服务器上了。

以下内容转自互联网,以在文末注明来源!

介绍

Mathjax是一种方便的数学公式渲染工具,能接受多种输入和输出要求:

  • 输入

    • ASCIIMath
    • MathML
    • TeX(在 Markdown 中所用)
  • 输出

    • CommonHTML(默认)
    • HTML-CSS
    • NativeMML
    • PlainSource
    • PreviewHTML(快速预览)
    • SVG

CDN 服务器将要关闭

Mathjax推荐通过 cdn.mathjax.org 使用,但由于经费问题,CDN 服务器将于 4 月 30 日关闭。当我得到这条消息时,又想起了曾经被否定的计划。

部署 Mathjax

转移

官方推荐 2 种方法来转移:

本地部署步骤

  1. 下载Mathjax,可以为releasegit版本,我使用Mathjax-2.7,也可以使用git版本。
  2. 解压文件到网站的一个易于访问的位置,可以直接通过相对路径表示。
  3. 删除不必要的文件,整个版本有~60MiB,上万个文件。

精简过程

可以直接下载我的版本:https://github.com/zhzh2001/zhzh2001.github.io/tree/master/mathjax

  1. 删除/config下多余的配置文件。

我保留了Tex-MML-AM_CHTML.js,表示支持TexMathMLASCIIMath输入,CommonHTML输出,也是官方推荐的选项。

  1. 删除/docs/test/unpacked,包含Mathjax的文档及用于测试的文件。
  2. 保留/fonts/HTML-CSS下的一种字体,并只保留这种字体的woff版本。

我保留了Tex,是最小的字体。

  1. 保留/localization下的一种语言或全部删除 (使用默认的英语)。
  2. 删除/jax/output下不必要的输出格式,如果保留SVG则可以删除整个/font目录。

我保留了CommonHTML

自定义弹出菜单

删除部分文件后,如果不删除有关的菜单,可能使用户不小心选错而无法使用Mathjax

  1. 打开保留的配置文件,如/config/Tex-MML-AM_CHTML.js
  2. 删除Mathjax.Ajax.Preloading下不存在的脚本 (可选)。
  3. 推荐:删除Mathjax.Hub.Config下的{extensions: ['[Contrib]/a11y/accessibility-menu.js']}

因为该脚本需要从[Contrib]加载,当前指向 cdn.mathjax.org

  1. Mathjax.Hub.Config下加入
    MathMenu: {
        delay: 0, //可以随意设置
        showRenderer: false,  //不显示渲染器
        showLocale: false    //不显示语言
    }
  1. 推荐:关闭快速预览,在Mathjax.Hub.Config下加入
"fast-preview": {
  disabled: true //禁用快速预览
}
  1. 推荐:加入标准 Markdown 的$公式,而不是 Latex 的$$
tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]} `

目前 Mathjax 已更新到 2.7.1,可以选择升级。

原文地址:

https://www.dazhuanlan.com/zykr/topics/1314917

最后修改:2021 年 10 月 22 日 03 : 37 PM

发表评论