跳转到主要内容
如果你无法点击编辑器中的 Publish 按钮,并且将鼠标悬停在上面时出现 Fix invalid MDX before publishing 错误提示,说明你分支上至少有一个页面的 MDX 无法解析。在分支上的每个页面都能成功解析之前,编辑器都会阻止发布。这可以避免损坏的语法进入你的线上站点。 提示会告知你有多少页面存在错误。同一错误也会在 feature branch 上阻止 Request review。常见原因包括:
  • 未关闭的组件标签,例如没有对应 </Note> 的 <Note>。
  • 页面正文中格式错误的 JSX,例如表达式中未闭合的大括号。
  • frontmatter 不是有效的 YAML,例如缩进不一致或引号未闭合。
当某个页面存在无效的 MDX 或无效的 frontmatter YAML 时,那些编辑仅保留在你本地。协作编辑同一页面的同事只会收到有效内容,因此你引入的语法错误不会覆盖他们的工作。有关实时编辑如何处理无效内容的说明,请参阅在编辑器中协作。

查找受影响的页面

如果提示只显示一个损坏的页面,通常就是你当前正在编辑的那一个。如果显示多个,或者你不确定是哪个页面有错误,请检查你在分支上更改过的每个页面:
  1. 点击工具栏中的 Publish 打开发布菜单。菜单会列出你分支上所有已更改的文件。
  2. 依次打开每个已更改的文件,并在 source 模式下查找解析错误(见下文)。能够正常解析的页面会正常显示。出错的页面会显示错误。

手动修复错误

  1. 在编辑器中打开受影响的页面。
  2. 使用 Cmd + Shift + S(macOS)或 Ctrl + Shift + S(Windows)切换到 source 模式。source 模式会高亮显示无效的 MDX 并展示解析错误。
  3. 修复语法。页面能够解析后,错误即会消失,Publish 按钮也会重新可用。
对于 frontmatter 错误,请检查每个值都是有效的 YAML:为包含冒号或特殊字符的字符串加上引号,保持缩进一致,并关闭所有引号。有关支持的 frontmatter 字段,请参阅页面元数据。

使用智能体修复错误

  1. 打开编辑器面板。
  2. 提示智能体修复所有无效的 MDX 或 frontmatter YAML。如果不进行提及,智能体会以你打开的页面作为初始上下文。若要通过一次提示修复分支上的所有错误,请让智能体查找并修复所有存在无效 MDX 的页面。参见智能体。