docs.json 中的 navigation 属性用于控制文档的结构和信息层次。 通过合理配置导航,你可以更好地组织内容,帮助用户快速找到所需信息。

页面

页面是最基本的导航组件。每个页面对应构成文档的 MDX 文件。 navigation 对象中,pages 是一个数组,其中每个条目都必须引用一个页面文件的路径。
{
  "navigation": {
    "pages": [
      "settings",
      "pages",
      "navigation",
      "themes",
      "custom-domain"
    ]
  }
}

分组

使用分组将侧边栏导航组织为多个部分。分组可以相互嵌套、添加标签,并可配合图标进行样式化。 navigation 对象中,groups 是一个数组,其中每个元素都是一个对象,且必须包含 grouppages 字段。icontagexpanded 字段为可选项。
{
  "navigation": {
    "groups": [
      {
        "group": "Getting started",
        "icon": "play",
        "expanded": false,
        "pages": [
          "quickstart",
          {
            "group": "Editing",
            "icon": "pencil",
            "pages": [
              "installation",
              "editor"
            ]
          }
        ]
      },
      {
        "group": "Writing content",
        "icon": "notebook-text",
        "tag": "NEW",
        "pages": [
          "writing-content/page",
          "writing-content/text"
        ]
      }
    ]
  }
}

默认展开状态

在分组上设置 expanded: true,即可使其在导航侧边栏中默认展开。这有助于突出重要部分或提升关键内容的可发现性。
{
  "group": "Getting started",
  "expanded": true,
  "pages": ["quickstart", "installation"]
}

选项卡

选项卡可为文档创建彼此独立、拥有各自 URL 路径的分区。它们会在文档顶部生成水平导航栏,便于用户在不同分区之间切换。 navigation 对象中,tabs 是一个数组。数组中的每个项都是对象,必须包含 tab 字段,并可包含其他导航字段,如 groups、pages、icons,或指向外部页面的链接。
{
  "navigation": {
    "tabs": [
      {
        "tab": "API reference",
        "icon": "square-terminal",
        "pages": [
          "api-reference/get",
          "api-reference/post",
          "api-reference/delete"
        ]
      },
      {
        "tab": "SDKs",
        "icon": "code",
        "pages": [
          "sdk/fetch",
          "sdk/create",
          "sdk/delete"
        ]
      },
      {
        "tab": "Blog",
        "icon": "newspaper",
        "href": "https://external-link.com/blog"
      }
    ]
  }
}
菜单会为选项卡添加下拉式导航项。使用菜单可帮助用户直接跳转到该选项卡内的特定页面。 navigation 对象中,menu 是一个数组,每个条目都是一个对象,必须包含 item 字段,并且可以包含其他导航字段,例如分组、页面、图标,或指向外部页面的链接。
{
  "navigation": {
    "tabs": [
      {
        "tab": "Developer tools",
        "icon": "square-terminal",
        "menu": [
          {
            "item": "API reference",
            "icon": "rocket",
            "groups": [
              {
                "group": "Core endpoints",
                "icon": "square-terminal",
                "pages": [
                  "api-reference/get",
                  "api-reference/post",
                  "api-reference/delete"
                ]
              }
            ]
          },
          {
            "item": "SDKs",
            "icon": "code",
            "description": "SDKs are used to interact with the API.",
            "pages": [
              "sdk/fetch",
              "sdk/create",
              "sdk/delete"
            ]
          }
        ]
      }
    ]
  }
}

锚点

锚点会在侧边栏顶部添加常驻的导航项。使用锚点来分隔内容、为外部资源提供快速入口,或创建醒目的行动号召。 navigation 对象中,anchors 是一个数组,其中每个元素都是一个对象,必须包含 anchor 字段,并且可以包含其他导航字段,例如分组、页面、图标,或指向外部页面的链接。
{
  "navigation": {
    "anchors": [
      {
        "anchor": "Documentation",
        "icon": "book-open",
        "pages": [
          "quickstart",
          "development",
          "navigation"
        ]
      },
      {
        "anchor": "API reference",
        "icon": "square-terminal",
        "pages": [
          "api-reference/get",
          "api-reference/post",
          "api-reference/delete"
        ]
      },
      {
        "anchor": "Blog",
        "href": "https://external-link.com/blog"
      }
    ]
  }
}
对于仅指向外部链接的锚点,请使用 global 关键字。global 对象中的锚点必须包含 href 字段,且不能指向相对路径。 全局锚点特别适合链接到不属于你文档但应便于用户访问的资源,例如博客或支持门户。
{
  "navigation": {
    "global":  {
      "anchors": [
        {
          "anchor": "Community",
          "icon": "house",
          "href": "https://slack.com"
        },
        {
          "anchor": "Blog",
          "icon": "pencil",
          "href": "https://mintlify.com/blog"
        }
      ]
    },
    "tabs": /*...*/
  }
}
下拉菜单位于侧边栏导航顶部的可展开菜单中。下拉菜单中的每个项都会跳转到文档的一个部分。 navigation 对象中,dropdowns 是一个数组。数组中的每个条目都是一个对象,必须包含 dropdown 字段,并且可以包含其他导航字段,例如分组、页面、图标,或指向外部页面的链接。
{
  "navigation": {
    "dropdowns": [
      {
        "dropdown": "Documentation",
        "icon": "book-open",
        "pages": [
          "quickstart",
          "development",
          "navigation"
        ]
      },
      {
        "dropdown": "API reference",
        "icon": "square-terminal",
        "pages": [
          "api-reference/get",
          "api-reference/post",
          "api-reference/delete"
        ]
      },
      {
        "dropdown": "Blog",
        "href": "https://external-link.com/blog"
      }
    ]
  }
}

OpenAPI

将 OpenAPI 规范直接集成到导航结构中,以自动生成 API 文档。可以创建专门的 API 分区,或将端点页面放入其他导航组件中。 可在导航层级的任意级别设置默认 OpenAPI 规范。子元素将继承该规范,除非它们定义了自己的规范。
{
  "navigation": {
    "groups": [
      {
        "group": "API reference",
        "openapi": "/path/to/openapi-v1.json",
        "pages": [
          "overview",
          "authentication",
          "GET /users",
          "POST /users",
          {
            "group": "Products",
            "openapi": "/path/to/openapi-v2.json",
            "pages": [
              "GET /products",
              "POST /products"
            ]
          }
        ]
      }
    ]
  }
}
有关在文档中引用 OpenAPI 端点的更多信息,请参见 OpenAPI 设置

版本

将导航拆分为不同的版本。版本可通过下拉菜单进行选择。 navigation 对象中,versions 是一个数组,其中每个项都是一个对象,必须包含 version 字段,并且可以包含其他任意导航字段。
{
  "navigation": {
    "versions": [
      {
        "version": "1.0.0",
        "groups": [
          {
            "group": "Getting started",
            "pages": ["v1/overview", "v1/quickstart", "v1/development"]
          }
        ]
      },
      {
        "version": "2.0.0",
        "groups": [
          {
            "group": "Getting started",
            "pages": ["v2/overview", "v2/quickstart", "v2/development"]
          }
        ]
      }
    ]
  }
}

语言

将导航按语言分组。可通过下拉菜单选择语言。 navigation 对象中,languages 是一个数组,其中每个元素都是一个对象,必须包含 language 字段,并且可以包含其他任意导航字段。 我们目前支持以下本地化语言:

Arabic (ar)

Chinese (cn)

Chinese (zh-Hant)

English (en)

French (fr)

German (de)

Indonesian (id)

Italian (it)

Japanese (jp)

Korean (ko)

Portuguese (pt-BR)

Russian (ru)

Spanish (es)

Turkish (tr)

{
  "navigation": {
    "languages": [
      {
        "language": "en",
        "groups": [
          {
            "group": "Getting started",
            "pages": ["en/overview", "en/quickstart", "en/development"]
          }
        ]
      },
      {
        "language": "es",
        "groups": [
          {
            "group": "Getting started",
            "pages": ["es/overview", "es/quickstart", "es/development"]
          }
        ]
      }
    ]
  }
}
如需使用自动化翻译,请联系销售团队以讨论解决方案。

嵌套

你可以任意组合 anchors、tabs 和 dropdowns。组件可以相互嵌套,以构建所需的导航结构。
{
  "navigation": {
    "anchors": [
      {
        "anchor": "Anchor 1",
        "groups": [
          {
            "group": "Group 1",
            "pages": [
              "some-folder/file-1",
              "another-folder/file-2",
              "just-a-file"
            ]
          }
        ]
      },
      {
        "anchor": "Anchor 2",
        "groups": [
          {
            "group": "Group 2",
            "pages": [
              "some-other-folder/file-1",
              "various-different-folders/file-2",
              "another-file"
            ]
          }
        ]
      }
    ]
  }
}
面包屑导航会在页面顶部显示完整导航路径。部分主题默认启用面包屑导航,另一些则未启用。你可以在 docs.json 中通过 styling 属性控制站点是否启用面包屑导航。
"styling": {
  "eyebrows": "breadcrumbs"
}

交互配置

docs.json 中使用 interaction 属性来控制用户如何与导航元素进行交互。

为分组启用自动导航

当用户展开导航分组时,某些主题会自动跳转到该分组中的第一页。你可以使用 drilldown 选项覆盖主题的默认行为:
{
  "interaction": {
    "drilldown": true  // 当用户展开分组时,强制跳转到第一页
  }
}
{
  "interaction": {
    "drilldown": false // 不进行跳转,仅展开/折叠
  }
}
  • 设为 true 可在选择导航分组时强制自动跳转到第一页。
  • 设为 false 可在选择分组时仅展开或折叠,不触发跳转。
  • 留空则使用主题的默认行为。