This file is intentionally excluded from .pages as an internal maintainer guidance document.
This directory is the source for the Big Bang documentation site. Treat it as a docs-as-code project: Markdown files, directory names, and navigation files all contribute to the published site.
This guide is for writers and reviewers who are adding, moving, or reorganizing documentation.
The docs in this repository are compiled nightly using the bb-docs-compiler repository and a compiler pipeline definition.
Each Markdown file under docs/ is a documentation page. The file path usually
determines the page URL.
Examples:
| Source file | Expected page path |
|---|---|
docs/index.md |
/ |
docs/configuration/gateways.md |
/configuration/gateways/ |
docs/community/adrs/index.md |
/community/adrs/ |
docs/community/adrs/0001-public-adrs.md |
/community/adrs/0001-public-adrs/ |
An index.md file is the landing page for a directory. If a directory is used
as a documentation section, it should normally have an index.md.
Files named .pages define the sidebar order and labels for the files and
folders in the same directory.
Example:
nav:
- Overview: index.md
- Community: community
- Concepts: concepts
- Configuration: configurationIn this example:
Overviewis the display label.index.mdis the file path.Communityis the display label.communityis the directory path.
The label before the colon does not create a file or directory. Creating a
directory named Overview only makes sense if the intended URL section is
actually /overview/.
When a parent .pages file points to a directory, that directory should be a
real documentation section.
Example from docs/.pages:
nav:
- Getting Started: getting-startedThis means the site expects a docs/getting-started/ section. That section
should have:
docs/getting-started/index.mdas its landing page.docs/getting-started/.pagesto order pages inside the section.- Any additional pages listed in
docs/getting-started/.pages.
Do not keep both a section directory and a same-named top-level page unless the
site intentionally needs both URLs. For example, having both
docs/getting-started.md and docs/getting-started/ is usually confusing.
Follow these conventions unless the docs maintainers agree to a different structure.
- Every public Markdown page should be represented in the
.pagesfile for its immediate directory. Exceptions, e.g. internal maintainer documentation, should be noted in those files and excluded from.pages. - Every public documentation section should have an
index.md. - A directory with multiple public pages should have its own
.pagesfile. - The display label in
.pagesshould be human-friendly; the path after the colon must match the actual file or directory name. - File and directory names should be lowercase and hyphenated where practical.
- Do not create folders only to group labels. Create folders only when a new URL section is intended.
- Keep reference assets, scripts, and config examples under
docs/reference/. If reference Markdown pages should be visible in the site, add appropriateindex.mdand.pagesfiles for that section.
Markdown links are relative to the file they appear in.
Examples from docs/getting-started/index.md:
[Prerequisites](prerequisites.md)
[Installation](../installation/)
[Configuration](../configuration/)Examples from docs/index.md:
[Getting Started](getting-started/)
[Configuration](configuration/)
[What is Big Bang?](what.md)Use these rules when writing links:
- Link to a page in the same directory with
page-name.md. - Link to a sibling section with
../section-name/from a nested page. - Link to a root-level section with
section-name/fromdocs/index.mdor another root-level page. - Link to directories only when the target directory has an
index.md. - Recheck every relative link after moving a file, because
./and../change meaning when the file location changes.
Use this checklist before opening a merge request.
- Decide the intended section and URL.
- Place the Markdown file in the matching directory.
- If the page is the section landing page, name it
index.md. - Add the page to the
.pagesfile in the same directory. - If you add a new directory section, add that directory to the parent
.pagesfile. - If the new directory has public Markdown pages, add an
index.mdand a.pagesfile inside it. - Update links inside the moved file.
- Search for inbound links to the old location and update them.
- Run the review checks below.
These commands are useful before asking for review.
List Markdown files:
rg --files docs -g '*.md'List navigation files:
find docs -name .pages -printSearch for links that may need review:
rg -n '\]\([^)]+\)' docs -g '*.md'Search for references to a moved page:
rg -n 'old-file-name|old/path' docsAfter reorganizing docs, reviewers should verify:
- No
.pagesentry points to a missing file or directory. - No public Markdown file is accidentally omitted from navigation.
- Directory links target directories that have
index.md. - Relative links still resolve from the file they are written in.
- Renamed or moved pages have no stale inbound links.
Problem:
nav:
- Getting Started: getting-startedbut docs/getting-started/index.md does not exist.
Fix:
- Move the section overview content to
docs/getting-started/index.md. - Keep
docs/getting-started/.pagespointing toindex.md. - Update links from
getting-started.mdtogetting-started/orgetting-started/index.md.
Problem:
nav:
- Fluent Bit: fluent-bit.mdbut the actual file is fluentbit.md.
Fix one of the following:
- Rename the file to
fluent-bit.mdand update inbound links. - Update
.pagesto point tofluentbit.md.
Choose the option that best matches the repo's naming convention and existing links.
Problem:
docs/configuration/ambient.md
exists, but docs/configuration/.pages does not list it.
Fix:
nav:
- Overview: index.md
- Ambient: ambient.mdPlace the new entry where it belongs in the section order.
Technical writers working in this repository should be comfortable with:
- Markdown.
- Directory-based documentation structure.
index.mdlanding pages..pagesnavigation files.- Relative Markdown links.
- Searching for stale links after moving content.
Engineers should generally own:
- Site build tooling.
- CI link-check configuration.
- Theme or plugin behavior.
- Redirects and automation.
For normal content reorganization, the expected workflow is that writers update
the Markdown files, .pages files, and links together.
- MkDocs writing guide: https://www.mkdocs.org/user-guide/writing-your-docs/
- MkDocs Awesome Pages plugin: https://pypi.org/project/mkdocs-awesome-pages-plugin/
- GitHub relative links in Markdown: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-readmes#relative-links-and-image-paths-in-markdown-files
- Write the Docs, Docs as Code: https://www.writethedocs.org/guide/docs-as-code/