Search Documentation

Search for pages and headings in the documentation

Manual Creation & Explicit Control

Manual configuration gives you complete control over navigation structure, ordering, and presentation.

What is Manual Creation?

Manually list every entry you want in navigation:

{
    id: "getting-started",
    label: "Getting Started",
    entries: [
        { slug: "getting-started/introduction" },
        { slug: "getting-started/installation" },
        { slug: "getting-started/quick-start" },
    ],
}

Key differences from auto-generation:

  • No folder scanning
  • You control exact order
  • You control which files appear
  • No autoGenerated: true

Basic Manual Configuration

{
    id: "guides",
    label: "Guides",
    entries: [
        { slug: "guides/overview" },
        { slug: "guides/setup" },
        { slug: "guides/advanced" },
    ],
}

Entry Customization

Basic Entry

{
    slug: "guides/installation";
}

Override Label

{
    slug: "guides/very-long-file-name",
    label: "Short Name",  // Shows in sidebar
}

Add Icon

{
    slug: "guides/installation",
    icon: "⚑",
}

Full Customization

{
    slug: "guides/installation",
    label: "Get Started",
    icon: "πŸš€",
}

Real-World Example: Tutorial

Tutorials need specific order. Auto-generation would fail (alphabetical order wouldn’t match teaching progression).

Setup

{
    id: "tutorials",
    label: "Tutorials",
    entries: [
        { slug: "tutorials/01-introduction", label: "Introduction" },
        { slug: "tutorials/02-installation", label: "Installation" },
        { slug: "tutorials/03-hello-world", label: "Hello World" },
        { slug: "tutorials/04-variables", label: "Variables" },
        { slug: "tutorials/05-functions", label: "Functions" },
        { slug: "tutorials/06-modules", label: "Modules" },
        { slug: "tutorials/07-conclusion", label: "Wrap-Up" },
    ],
}

Result

πŸŽ“ Tutorials
β”œβ”€β”€ Introduction
β”œβ”€β”€ Installation
β”œβ”€β”€ Hello World
β”œβ”€β”€ Variables
β”œβ”€β”€ Functions
β”œβ”€β”€ Modules
└── Wrap-Up

Why manual? Alphabetical would be wrong (01-intro, 02-install, etc.)

Example: Curated Feature Selection

Show only popular features, hide others:

Files

content/features/
β”œβ”€β”€ authentication.md βœ“
β”œβ”€β”€ breadcrumbs.md βœ“
β”œβ”€β”€ dark-mode.md βœ“
β”œβ”€β”€ experimental-beta.md βœ—
β”œβ”€β”€ icons.md βœ“
β”œβ”€β”€ internal-test.md βœ—
└── theme.md βœ“

Setup

{
    id: "features",
    label: "Features",
    entries: [
        { slug: "features/authentication" },
        { slug: "features/breadcrumbs" },
        { slug: "features/dark-mode" },
        { slug: "features/icons" },
        { slug: "features/theme" },
    ],
}

Result

✨ Features
β”œβ”€β”€ Authentication
β”œβ”€β”€ Breadcrumbs
β”œβ”€β”€ Dark Mode
β”œβ”€β”€ Icons
└── Theme
(Experimental and internal tests hidden)

Example: Custom Navigation Hierarchy

Reorganize files into different structure than file system:

Files

content/docs/
β”œβ”€β”€ installation.md
β”œβ”€β”€ setup.md
β”œβ”€β”€ authentication.md
└── performance.md

Configuration (Different Order + Custom Labels)

{
    id: "getting-started",
    label: "Getting Started",
    entries: [
        { slug: "getting-started/installation", label: "Install" },
        { slug: "getting-started/setup", label: "Initial Setup" },
    ],
},
{
    id: "advanced",
    label: "Advanced",
    entries: [
        { slug: "getting-started/authentication", label: "Authentication & Security" },
        { slug: "getting-started/performance", label: "Performance Tuning" },
    ],
}

Result

πŸš€ Getting Started
β”œβ”€β”€ Install
└── Initial Setup

πŸŽ“ Advanced
β”œβ”€β”€ Authentication & Security
└── Performance Tuning

Example: Multi-Version API Docs

Support multiple API versions manually:

{
    id: "api-v1",
    label: "v1 (Deprecated)",
    entries: [
        { slug: "api/v1/endpoints" },
        { slug: "api/v1/authentication" },
        { slug: "api/v1/errors" },
    ],
},
{
    id: "api-v2",
    label: "v2 (Current)",
    entries: [
        { slug: "api/v2/getting-started" },
        { slug: "api/v2/endpoints" },
        { slug: "api/v2/authentication" },
        { slug: "api/v2/webhooks" },
        { slug: "api/v2/errors" },
    ],
},
{
    id: "api-v3",
    label: "v3 (Beta)",
    entries: [
        { slug: "api/v3/overview" },
        { slug: "api/v3/breaking-changes" },
    ],
}

Result

v1 (Deprecated)
β”œβ”€β”€ Endpoints
β”œβ”€β”€ Authentication
└── Errors

v2 (Current)
β”œβ”€β”€ Getting Started
β”œβ”€β”€ Endpoints
β”œβ”€β”€ Authentication
β”œβ”€β”€ Webhooks
└── Errors

v3 (Beta)
β”œβ”€β”€ Overview
└── Breaking Changes

When Manual is Better

βœ… Use manual when:

  • Specific order is critical (tutorials, progressive learning)
  • Careful curation needed (hide some files)
  • Custom labels throughout
  • Multi-version documentation
  • Small documentation (easy to maintain)
  • Static content (doesn’t grow frequently)

❌ Not ideal when:

  • Documentation grows rapidly
  • Many pages (becomes tedious)
  • Multiple contributors (merge conflicts)
  • Alphabetical order acceptable

Advantages

βœ… Complete control - Every aspect configurable βœ… Clear intent - Config shows exactly what appears βœ… Version management - Easy to hide old versions βœ… Curation - Show only what’s ready βœ… Custom ordering - Any order you want βœ… Small documentation - Trivial to maintain

Disadvantages

❌ Maintenance burden - Update config when adding files ❌ Scaling issues - Becomes tedious with 100+ pages ❌ Easy to miss - Forget to add new files ❌ Merge conflicts - Multiple people editing same file ❌ No discovery - New files invisible until listed

Hybrid: Get Both

Want manual ordering + auto-discovery?

{
    id: "guides",
    label: "Guides",
    entries: [
        { slug: "guides/overview", label: "πŸ“‹ Overview" },
        { slug: "guides/getting-started", label: "πŸš€ Getting Started" },
    ],
    autoGenerated: true,  // Rest auto-discovered
}

See Hybrid Approach for details.

Next Steps

Learn about: