前言
近期由于校园网关闭了与境外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 种方法来转移:
使用 cloudflare 的 CDN
- 方法:将https://cdn.mathjax.org/mathjax/latest/改为https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/
- 缺点:不能使用
latest
,必须手动指定版本号
- 在本地部署
Mathjax
本地部署步骤
- 下载
Mathjax
,可以为release
或git
版本,我使用Mathjax-2.7,也可以使用git
版本。 - 解压文件到网站的一个易于访问的位置,可以直接通过相对路径表示。
- 删除不必要的文件,整个版本有~60MiB,上万个文件。
精简过程
可以直接下载我的版本:https://github.com/zhzh2001/zhzh2001.github.io/tree/master/mathjax
- 删除
/config
下多余的配置文件。
我保留了Tex-MML-AM_CHTML.js
,表示支持Tex
,MathML
和ASCIIMath
输入,CommonHTML
输出,也是官方推荐的选项。
- 删除
/docs
,/test
和/unpacked
,包含Mathjax
的文档及用于测试的文件。 - 保留
/fonts/HTML-CSS
下的一种字体,并只保留这种字体的woff
版本。
我保留了Tex
,是最小的字体。
- 保留
/localization
下的一种语言或全部删除 (使用默认的英语)。 - 删除
/jax/output
下不必要的输出格式,如果保留SVG
则可以删除整个/font
目录。
我保留了CommonHTML
。
自定义弹出菜单
删除部分文件后,如果不删除有关的菜单,可能使用户不小心选错而无法使用
Mathjax
。
- 打开保留的配置文件,如
/config/Tex-MML-AM_CHTML.js
。 - 删除
Mathjax.Ajax.Preloading
下不存在的脚本 (可选)。 - 推荐:删除
Mathjax.Hub.Config
下的{extensions: ['[Contrib]/a11y/accessibility-menu.js']}
。
因为该脚本需要从
[Contrib]
加载,当前指向 cdn.mathjax.org
- 在
Mathjax.Hub.Config
下加入
MathMenu: {
delay: 0, //可以随意设置
showRenderer: false, //不显示渲染器
showLocale: false //不显示语言
}
- 推荐:关闭快速预览,在
Mathjax.Hub.Config
下加入
"fast-preview": {
disabled: true //禁用快速预览
}
- 推荐:加入标准 Markdown 的
$
公式,而不是 Latex 的$$
tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]} `
目前 Mathjax 已更新到 2.7.1,可以选择升级。
原文地址:
https://www.dazhuanlan.com/zykr/topics/1314917
版权属于:soarli
本文链接:https://blog.soarli.top/archives/565.html
转载时须注明出处及本声明。