第三课:错误处理
如果在 Markdown 中存在格式问题,网页上往往会出现如下报错

我们可以直接根据给出的错误位置,比如上图中是 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 渲染失败
对于公式如 ,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',
},
然后重启即可