| --- | |
| title: 'Update the docs navigation' | |
| --- | |
| Add a new page to the Bazel docs sidebar, or | |
| reorganize existing navigation groups. `bazel-contrib/bazel-docs` controls navigation, which is a separate repo from where doc content lives (`bazelbuild/bazel`). | |
| ## How navigation works {#how-it-works} | |
| `docs.json` in [`bazel-contrib/bazel-docs`](https://github.com/bazel-contrib/bazel-docs) | |
| defines the Bazel docs sidebar. Mintlify reads this file to build the | |
| left-hand navigation tree. | |
| `docs.json` contains a `navigation` array of groups, each with a list of pages: | |
| ```json | |
| { | |
| "navigation": [ | |
| { | |
| "group": "Contribute", | |
| "pages": [ | |
| "contribute/index", | |
| "contribute/docs-contribution-workflow", | |
| "contribute/docs-style-guide" | |
| ] | |
| } | |
| ] | |
| } | |
| ``` | |
| Each entry in `pages` is a root-relative path to an `.mdx` file, without the | |
| `.mdx` extension. | |
| ## Prerequisites {#prerequisites} | |
| - A fork of [`bazel-contrib/bazel-docs`](https://github.com/bazel-contrib/bazel-docs) | |
| - The [Mintlify CLI](https://www.mintlify.com/docs/cli/install) for local validation | |
| ## Add a page to an existing group {#add-page} | |
| 1. Clone your fork of `bazel-contrib/bazel-docs` and add the upstream remote: | |
| ```bash | |
| git clone https://github.com/YOUR_USERNAME/bazel-docs.git | |
| cd bazel-docs | |
| git remote add upstream https://github.com/bazel-contrib/bazel-docs.git | |
| ``` | |
| 2. Check out a new branch: | |
| ```bash | |
| git fetch upstream | |
| git checkout -b add-my-page-to-nav upstream/main | |
| ``` | |
| 3. Open `docs.json` and find the group where your page belongs. Add the | |
| path to the `pages` array: | |
| ```json | |
| { | |
| "group": "Contribute", | |
| "pages": [ | |
| "contribute/index", | |
| "contribute/docs-contribution-workflow", | |
| "contribute/docs-navigation", | |
| "contribute/docs-style-guide" | |
| ] | |
| } | |
| ``` | |
| 4. Validate that `docs.json` is well-formed: | |
| ```bash | |
| mint validate | |
| ``` | |
| Run this from the `bazel-docs` root (where `docs.json` lives). | |
| 5. Commit and open a PR against `bazel-contrib/bazel-docs` main: | |
| ```bash | |
| git add docs.json | |
| git commit -m "docs: Add my-page to navigation" | |
| git push origin add-my-page-to-nav | |
| ``` | |
| Open a pull request targeting **`bazel-contrib/bazel-docs` main**. | |
| ## Add a new navigation group {#add-group} | |
| If your new page does not fit into any existing group, add a new group object | |
| to the `navigation` array in `docs.json`: | |
| ```json | |
| { | |
| "group": "My New Section", | |
| "pages": [ | |
| "my-section/index", | |
| "my-section/getting-started" | |
| ] | |
| } | |
| ``` | |
| Position it in the array where you want it to appear in the sidebar. | |
| ## Getting help {#getting-help} | |
| If you are unsure where a page belongs, ask in the `#documentation` channel on | |
| the [Bazel community Slack](https://slack.bazel.build) or open an issue in | |
| [`bazel-contrib/bazel-docs`](https://github.com/bazel-contrib/bazel-docs/issues). |