IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> VuePress + MathJax 避雷备忘录 -> 正文阅读

[JavaScript知识库]VuePress + MathJax 避雷备忘录

关于 VuePress 的版本选择

根据 VuePress 官方网站的指示,当前 VuePress 共有三个「大版本」,它们分别是 v0.xv1.x (目前为 v1.8.2 )和 v2.x (目前为 v2.0.0-beta.25)。可以看出,VuePress v2.x 基于 Vue v3.x 开发,尚处于 Beta 测试模式,其对 Markdown / HTML / CSS / JavaScript 的语法要求比 v1.x 更为严格,但内部功能尚不稳定,因此使用 VuePress v1.x 是更好的选择

如果你没有充足的理由,那么你应该使用 vuepress@1.8.2 而不是 vuepress@next,因为 vuepress@next 仍不稳定。

—— 来自 @tani 的原话

关于 Markdown-it 数学公式渲染插件的选择

VuePress 使用了 markdown-it 来解析 Markdown 文件,因此我们可以借助 npmyarn 安装 markdown-it-XXX 系列插件,在 VuePress 中扩展 Markdown 语法,实现更多附加功能。

在 VuePress 中安装数学公式插件、实现 TeX / KaTeX / LaTeX 公式渲染可能是多数开发者都会遇到的需求。经过搜索,目前常见的 Markdown-it 数学插件有以下几种。它们各自的介绍与劣势如下:

  • markdown-it-math
    • 介绍:一个通用的 Markdown-it 数学插件
    • 问题:本身只是设计用来解析 MathML 的,还需要借助其他渲染器(比如默认的 mathup )将指定的 Markdown 数学公式语法转换为 MathML
  • markdown-it-latex2img
    • 介绍:借助默认的 Math API 将 LaTeX 语法的数学公式渲染为图片,并嵌入到渲染生成的 HTML 页面中
    • 问题一:API 生成的图像为透明底白字,而 VuePress v1.x 默认仅提供白底日间主题,读者无法看见渲染生成的数学公式(公式位置会留出一段空白)
    • 问题二:即使使用 VuePress v2.x ,使用 $$ \frac{1}{2} $$ 形式书写的独行公式块并不能按预期居中显示
  • markdown-it-katex
    • 介绍:一个支持 KaTeX 语法的数学公式渲染器
    • 问题:由于 KaTeXMathJax 语法的细微不同,且 Typora 中使用的内置数学公式渲染器也是基于 MathJax 实现的,部分复杂的数学公式在 KaTeX 模式下无法被正确解析渲染

以上的 Markdown-it 数学插件存在各种各样的问题,它们为我带来了较多的麻烦,因此我没有选择这些插件。在多次搜寻后,我选用了 markdown-it-mathjax3 插件。

markdown-it-mathjax3 是一个从 markdown-it-katex 改造而来、额外增加了 MathJax v3 和 SVG 渲染支持的插件。在使用过程中,我也发现了一些「深坑」:

  1. 此插件的 v2.2.0 版本将解析渲染 MathJax v3 的 JavaScript 脚本以 <scripts /> 片段的形式直接插入了 VuePress 生成的 *.html.vue 模板文件中,VuePress 认为这种行为存在风险,因此在 VuePress v2.x 中执行 vuepress docs dev 命令时会产生满屏的报错(但点击页面右上角的 × 标志可以关闭报错,公式也能被正常渲染但公式块不居中);通过与插件原作者的交流,最新发布的 v3.0.0-0 将 JavaScript 生成至额外的文件,成功解决了内嵌 <scripts /> 标签导致报错的问题。
  2. 此插件将 MathJax v3 公式解析转换为 SVG 图片后,会在外层添加一个标准 HTML 标签意外的 <mjx-container /> 标签以实现公式块的居中显示。 VuePress v2.x 无法识别这个标签,因此在执行 vuepress docs build 命令时仍会无法编译生成。选择将 VuePress 回退至 v1.x 版本则能够正常完成编译生成过程。

总结

综上所述,如果有其他用户选择使用 VuePress 搭建博客并希望在其中添加插件以支持数学公式渲染,建议使用 VuePress v1.8.2 + markdown-it-mathjax3 v3.0.0-0 的组合。

经历以上的「扫雷」过程,我的首个 VuePress 项目终于成功部署上线,欢迎大家的 光临

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-08 10:37:59  更:2021-09-08 10:38:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 16:28:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码