Frontmatter
Complete reference for all available frontmatter fields in zudo-doc documents.
Every MDX file in zudo-doc starts with a YAML frontmatter block delimited by ---. This page documents all available fields.
Complete Example
---
title: My Documentation Page
description: A comprehensive guide to something important.
sidebar_position: 3
sidebar_label: My Page
tags: [tutorial, setup]
---
Your content here.Minimal Example
Only title is required:
---
title: Quick Start
---Field Overview
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
title | string | Yes | -- | Page title shown in heading, sidebar, and browser tab |
description | string | No | -- | Subtitle shown below the title |
sidebar_position | number | No | 999 | Sort order within the sidebar category |
sidebar_label | string | No | Value of title | Override label shown in sidebar |
category | string | No | Directory name | Reserved for future use |
category_no_page | boolean | No | false | Makes the category a non-linked header (no route, sitemap entry, or search entry) |
category_sort_order | string | No | — | Sort order for pages within the category (e.g., "desc" for newest-first) |
search_exclude | boolean | No | false | Exclude the page from search indexing |
tags | string[] | No | -- | Tags for cross-cutting navigation |
draft | boolean | No | false | Exclude from production build (visible in dev) |
unlisted | boolean | No | false | Built but hidden from sidebar, search, and search engines |
hide_sidebar | boolean | No | false | Hide the left sidebar, center content in a narrower container |
hide_toc | boolean | No | false | Hide the right-side table of contents |
doc_history | boolean | No | Auto | Override doc-history button visibility (auto: hidden on */index pages, shown on detail pages) |
standalone | boolean | No | false | Hidden from sidebar nav but still indexed (unlike unlisted) |
slug | string | No | Derived from file path | Custom URL slug override |
generated | boolean | No | false | Marks build-time auto-generated content; exempts the page from the bilingual JA-translation requirement |
pagination_next | string | null | No | Auto | Override next page link, set to null to hide |
pagination_prev | string | null | No | Auto | Override previous page link, set to null to hide |
Fields
title
Type:
stringRequired: Yes
The page title. It is displayed as the h1 heading on the page, in the sidebar navigation, in the browser tab, and in search results.
---
title: Getting Started with zudo-doc
---description
Type:
stringRequired: No
A short description or subtitle for the page. Shown below the title on the rendered page. Also useful for SEO meta tags.
---
title: Installation
description: How to install and set up zudo-doc for your project.
---sidebar_position
Type:
numberRequired: No
Default:
999(appears at the end)
Controls the sort order of the page within its sidebar category. Lower numbers appear first.
---
title: Introduction
sidebar_position: 1
---Tip
For category index pages (index.mdx), the sidebar_position also controls where the entire category appears relative to other categories in the sidebar.
sidebar_label
Type:
stringRequired: No
Default: Value of
title
Overrides the label displayed in the sidebar navigation. Use this when you want a shorter or different label than the full page title.
---
title: Configuring Color Schemes and Themes
sidebar_label: Color Schemes
---category
Type:
stringRequired: No
Default: Derived from the directory structure (first directory segment)
Reserved for future use. This field is defined in the content schema but is not currently used by the sidebar or routing logic. Categories are always derived from the directory structure.
Note
Organize pages into categories by placing them in directories under src/. The directory name becomes the category name.
category_no_page
Type:
booleanRequired: No
Default:
false
When set to true on a category index.mdx, the category appears as a non-linked header in the sidebar. No route, sitemap entry, or search entry is generated for the index page itself — it exists solely to label and group the pages beneath it.
---
title: Internals
category_no_page: true
sidebar_position: 10
---category_sort_order
Type:
stringRequired: No
Default: — (ascending by
sidebar_position)
When set on a category index.mdx, overrides the default ascending sort order for pages within that category. Set to "desc" for newest-first ordering (useful for changelog or release-notes categories where the most recent entry should appear at the top).
---
title: Changelog
category_sort_order: "desc"
sidebar_position: 20
---search_exclude
Type:
booleanRequired: No
Default:
false
When set to true, excludes the page from the search index. Useful for internal pages, changelogs, or imported content that should not appear in search results.
---
title: Internal Changelog
search_exclude: true
---tags
Type:
string[]Required: No
Assigns tags to the page for cross-cutting navigation. Tags are displayed as clickable badges on the page, and tag index pages are auto-generated at / and /.
See the Tags guide for a full walkthrough.
Tagged pages surface in three places:
Bottom of each doc — a row of tag badges appears on every tagged page, just above the previous/next pager.
Homepage — an "All tags" section lists every tag used in the docs, linking to individual tag index pages.
Tag index — a shared index at /
docs/ tags/ groups all pages by tag.
---
title: Deploying to Netlify
tags: [deployment, netlify, hosting]
---Tip
Tags are useful for grouping related pages across different sidebar categories.
draft
Type:
booleanRequired: No
Default:
false
When set to true, the page is excluded from the production build entirely. Draft pages are still visible during development (pnpm dev) for preview purposes.
---
title: Upcoming Feature
draft: true
---unlisted
Type:
booleanRequired: No
Default:
false
When set to true, the page is built and accessible via its URL, but is hidden from the sidebar navigation, search index, and search engines (via noindex meta tag).
---
title: Internal Notes
unlisted: true
---hide_sidebar
Type:
booleanRequired: No
Default:
false
When set to true, the left sidebar is hidden on desktop and the content is centered in a narrower container. The mobile hamburger menu still provides access to navigation. Useful for landing pages, standalone articles, or any page where a full-width reading experience is preferred.
---
title: About This Project
hide_sidebar: true
---Info
See the live demo to experience this layout option in action.
hide_toc
Type:
booleanRequired: No
Default:
false
When set to true, the right-side table of contents (section navigation) and the mobile TOC are both hidden. The main content area expands to fill the available width.
---
title: Changelog
hide_toc: true
---Info
See the live demo to experience this layout option in action.
Tip
Combine hide_sidebar and hide_toc to create a clean, centered reading layout with no navigation panels:
--- title: About hide_sidebar: true hide_toc: true ---See the live demo to see both options combined.
standalone
Type:
booleanRequired: No
Default:
false
When set to true, the page is hidden from sidebar navigation and site index but remains accessible via its URL and is still indexed by search engines. Unlike unlisted, standalone pages do not get a noindex meta tag.
---
title: Terms of Service
standalone: true
---Note
Use standalone for pages that should be publicly accessible but don't belong in the documentation navigation (e.g., legal pages, special landing pages). Use unlisted when you also want to prevent search engine indexing.
slug
Type:
stringRequired: No
Default: Derived from the file path
Overrides the URL slug for the page. Use this when you want a different URL than what the file path would produce.
---
title: Getting Started with zudo-doc
slug: quickstart
---This page would be accessible at / instead of the default path derived from its file location.
generated
Type:
booleanRequired: No
Default:
false
Marks a page as build-time auto-generated content (for example, the claude-* reference pages produced from .claude/ source files). Setting generated: true exempts the page from the bilingual rule — auto-generated pages do not require a matching Japanese translation under docs-ja/. The field is also a framework-managed key, so it is hidden from the frontmatter preview by default.
---
title: Auto-generated Reference
generated: true
---Note
You normally do not set generated by hand — generators add it automatically. The bilingual workflow only requires a JA mirror for hand-authored pages, so generated: true pages are skipped during translation.
pagination_next
Type:
string | nullRequired: No
Default: Automatically determined by sidebar order
Overrides the "Next" page link shown at the bottom of the document. Set to a document path (e.g., "guides/configuration") to link to a specific page, or set to null to hide the next link entirely.
---
title: Final Step
pagination_next: null
---pagination_prev
Type:
string | nullRequired: No
Default: Automatically determined by sidebar order
Overrides the "Previous" page link shown at the bottom of the document. Set to a document path (e.g., "getting-started/introduction") to link to a specific page, or set to null to hide the previous link entirely.
---
title: Getting Started
pagination_prev: null
---