Skip to main content

第三课:错误处理

如果在 Markdown 中存在格式问题,网页上往往会出现如下报错

image-20250312161522316

我们可以直接根据给出的错误位置,比如上图中是 138 行,去直接进行修改


这里记录一些常见的格式错误

一. 表格空行

如果表格某一栏是空的,比如

|               | Content-Type: application/json                         |

这是不被允许的。Markdown 表格不允许中间空列破坏表格结构的语义一致性,所以被认为是非法结构。

可以直接使用占位符- 即可

|-              | Content-Type: application/json                         |

二. json解析错误

在 MDX 中,大括号{} 包裹的内容 被视为“JS 表达式”,所以 Docusaurus 会尝试将它作为 JavaScript 代码编译,会触发了 acorn 报错。

因此遇到需要使用 大括号 显示的内容,一定要使用 反引号包裹,比如

`{"key1": "value1", "key2": "value2"}` 

三. 标签不闭合

Docusaurus 3.x 的 MDX 解析器对 HTML 更严格了,不允许像旧版那样使用不闭合的 <br>。必须使用自闭合形式 <br /> 才能通过编译。

错误示例:

| **通用顶级域名 (gTLDs)** | 用于表示不特定于国家/地区的域名类型。 | `.com`:商业<br>`.org`:非营利组织<br>`.net`:网络服务提供商<br>`.gov`:政府机构<br>`.edu`:教育机构<br>`.mil`:军事机构<br>`.int`:国际组织<br>`.info`:信息资源<br>`.biz`:商业用途 |

修正示例:

| **通用顶级域名 (gTLDs)** | 用于表示不特定于国家/地区的域名类型。 | `.com`:商业<br />`.org`:非营利组织<br />`.net`:网络服务提供商<br />`.gov`:政府机构<br />`.edu`:教育机构<br />`.mil`:军事机构<br />`.int`:国际组织<br />`.info`:信息资源<br />`.biz`:商业用途 |


四. Latex 渲染失败

对于公式如 x(i),y(i)x^{(i)}, y^{(i)}docusaurus 会把 (i) 中的 i 当做一个变量,去寻找这个变量,找不到因此报错

这是因为没有正确加载 Latex 插件,解决步骤如下

首先在项目根目录运行命令:

npm install remark-math
npm install rehype-katex

在文件 docusaurus.config.ts 的最上方,添加

import remarkMath from 'remark-math';
import rehypeKatex from 'rehype-katex';

在文中找到并添加:(将插件传递给您的 “docs” 预设:)

 presets: [
    [
      'classic',
      {
        docs: {
          remarkPlugins: [remarkMath],
          rehypePlugins: [rehypeKatex],

再添加

  stylesheets: [
    {
      href: 'https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.css',
      type: 'text/css',
      integrity:
        'sha384-nB0miv6/jRmo5UMMR1wu3Gz6NLsoTkbqJghGIsx//Rlm+ZU03BU6SQNC66uf4l5+',
      crossorigin: 'anonymous',
    },

然后重启即可

参考来源:https://docs.theochu.com/docusaurus/latex/