Web 编辑器目前不支持片段。若要使用片段,请通过 CLI 在本地编辑 MDX 文件,或将片段导入直接推送到你的仓库。
片段的工作方式
.mdx、.md、.js 或 .jsx 文件。你可以将片段文件放在项目中的任意位置。
当你在另一个文件中导入片段时,该片段只会在你导入它的地方出现,并不会渲染为独立页面。/snippets/ 文件夹中的任何文件始终被视为片段,即使它没有被导入到其他文件中。
创建片段
将代码片段导入到页面中
- 绝对导入:从项目根目录导入时,以
/开头。 - 相对导入:使用
./或../从当前文件所在位置相对导入代码片段。
MySnippet。MDX 会将 <mySnippet /> 之类以小写字母开头的标签视为 HTML 元素或自定义元素的字面名称,而不是对导入代码片段的引用。按照惯例,代码片段名称应使用 PascalCase。
导入文本
-
在代码片段文件中添加需要复用的内容。
shared/my-snippet.mdx
-
使用绝对路径或相对路径,将该片段导入目标文件中。
嵌套片段
-
在父级片段文件中导入嵌套片段。请在需要使用嵌套片段的位置声明导入。
shared/parent-snippet.mdx
-
在目标文件中只导入父级片段。你无需导入嵌套片段。
destination-file.mdx
导入变量
-
从代码片段(snippet)文件中导出变量。
shared/custom-variables.mdx
-
从目标文件中导入该代码片段并使用该变量。
destination-file.mdx
浏览器会对 MDX 表达式求值,例如像
{myName} 这样的导入变量和像 {1 + 1} 这样的内联表达式。它们的值不会出现在页面的初始 HTML 或离线导出中,因此不运行 JavaScript 的爬虫、LLM 和其他工具只能看到它们周围的文本。如果这些值必须在上述场景中可见,请以纯文本形式书写。使用变量导入代码片段
-
在代码片段中添加变量,并在导入时通过属性传入值。在此示例中,变量是
{word}。shared/my-snippet.mdx -
使用该变量将代码片段导入目标文件。传入的属性会替换代码片段定义中的变量。
destination-file.mdx
shared/install-snippet.mdx
destination-file.mdx
导入 React 组件
-
创建一个包含 JSX 组件的代码片段。有关更多信息,请参见 React 组件。
components/my-jsx-snippet.jsx
创建 JSX 代码片段时,请使用箭头函数语法(
=>),而不要使用函数声明。在代码片段中不支持使用 function 关键字。-
导入该代码片段。
destination-file.mdx
从结构化数据渲染内容
.js 代码片段中。然后编写一个 .jsx 代码片段,将数据转换为标记内容。
代码片段必须是
.mdx、.md、.js 或 .jsx 文件。你无法直接导入 .json 或 .yaml 文件。请将数据存放在 .js 代码片段中,或者从你的 JSON 或 YAML 源文件生成一个。1
从代码片段中导出数据
snippets/sdk-components.js
2
创建一个用于渲染数据的代码片段
使用
map() 遍历数据,并返回 HTML 元素或 Mintlify 组件。snippets/components-table.jsx
3
导入两个代码片段并以属性方式传入数据
在页面中筛选或排序数据,即可在不重复数据的情况下展示其子集。
destination-file.mdx
从 JSON 或 YAML 生成代码片段和页面
1
编写生成脚本
该脚本读取 对于 JSON 源文件,将
sdk-components.yaml,写入上一个示例中的代码片段,为每个组件创建一个页面,并替换 docs.json 中名为 “Components” 的导航分组下的页面。scripts/generate-docs.mjs
parse() 替换为 JSON.parse(),并省略 yaml 依赖。多次运行该脚本会生成完全相同的文件,因此可以放心地在每次推送时运行。2
在 GitHub Action 中运行
当源文件或脚本发生变更时,该工作流会触发运行,然后将脚本生成的任何内容提交。默认的 如果你将源文件存储在另一个仓库中,请改在该仓库中运行工作流。使用一个能够向文档仓库推送的令牌检出文档仓库,运行脚本并提交。
GITHUB_TOKEN 在推送时不会触发其他工作流,因此该任务不会形成循环。Mintlify 会像处理其他 commit 一样部署该次推送。.github/workflows/generate-docs.yml