Search Documentation

Search for pages and headings in the documentation

Understanding Nested Groups

Nested Groups are groups within groups, creating a deeper hierarchy. This is where PID^TOO|| truly shines for complex documentation.

What are Nested Groups?

A nested group is a group that contains subgroups instead of (or in addition to) entries:

Group: "Advanced Topics"
��� Subgroup: "Performance"
�   ��� Entry: Caching Strategies
�   ��� Entry: Database Optimization
�   ���� Entry: Load Balancing
��� Subgroup: "Security"
�   ��� Entry: Authentication
�   ��� Entry: Authorization
�   ���� Entry: Encryption
���� Subgroup: "Deployment"
    ��� Entry: Docker Setup
    ��� Entry: Kubernetes Config
    ���� Entry: CI/CD Pipeline

Hierarchy Levels

PID^TOO|| supports unlimited nesting depth:

Level 1: Tab (or Default Tab)
���� Level 2: Group
    ���� Level 3: Subgroup
        ���� Level 4: Sub-subgroup
            ���� Level 5: Entries

In practice, keep it to 3-4 levels for UX reasons�beyond that, navigation becomes complex.

Creating Nested Groups

Nested groups are defined using the groups property instead of entries:

Simple Nesting (2 Levels)

{
    id: "configuration",
    label: "Configuration",
    icon: "",
    groups: [
        {
            id: "basics",
            label: "Basics",
            entries: [
                { slug: "configuration/basics/overview" },
                { slug: "configuration/basics/setup" },
            ],
        },
        {
            id: "advanced",
            label: "Advanced",
            entries: [
                { slug: "configuration/advanced/caching" },
                { slug: "configuration/advanced/security" },
            ],
        },
    ],
}

Sidebar renders as:

 Configuration
��� Basics
�   ��� Overview
�   ���� Setup
���� Advanced
    ��� Caching
    ���� Security

Deeper Nesting (3+ Levels)

{
    id: "advanced",
    label: "Advanced Topics",
    icon: "",
    groups: [
        {
            id: "architecture",
            label: "Architecture",
            groups: [
                {
                    id: "patterns",
                    label: "Design Patterns",
                    entries: [
                        { slug: "advanced/architecture/patterns/observer" },
                        { slug: "advanced/architecture/patterns/factory" },
                    ],
                },
                {
                    id: "performance",
                    label: "Performance",
                    entries: [
                        { slug: "advanced/architecture/performance/caching" },
                        { slug: "advanced/architecture/performance/optimization" },
                    ],
                },
            ],
        },
    ],
}

Sidebar renders as:

 Advanced Topics
���� Architecture
    ��� Design Patterns
    �   ��� Observer
    �   ���� Factory
    ���� Performance
        ��� Caching
        ���� Optimization

Mixing Entries and Subgroups

A group can have both entries and subgroups:

{
    id: "features",
    label: "Features",
    entries: [
        { slug: "features/overview" },  // Top-level entries
    ],
    groups: [
        {
            id: "authentication",
            label: "Authentication",
            entries: [
                { slug: "features/auth/oauth" },
                { slug: "features/auth/saml" },
            ],
        },
    ],
}

Sidebar renders as:

Features
��� Overview              (entry at group level)
���� Authentication        (subgroup)
    ��� OAuth
    ���� SAML

File Structure for Nested Groups

Your content folder structure should reflect your nested organization:

content/my-docs/
��� advanced/
�   ��� architecture/
�   �   ��� patterns/
�   �   �   ��� observer.md
�   �   �   ���� factory.md
�   �   ���� performance/
�   �       ��� caching.md
�   �       ���� optimization.md
�   ��� security/
�   �   ��� authentication.md
�   �   ���� encryption.md

This matches the configuration structure, making it intuitive.

Auto-Generation with Nested Groups

Auto-generation works at every nesting level:

{
    id: "documentation",
    label: "Documentation",
    groups: [
        {
            id: "guides",
            label: "Guides",
            autoGenerated: true,  // Scans content/my-docs/documentation/guides/
        },
        {
            id: "api-reference",
            label: "API Reference",
            groups: [
                {
                    id: "endpoints",
                    label: "Endpoints",
                    autoGenerated: true,  // Scans content/my-docs/documentation/api-reference/endpoints/
                },
            ],
        },
    ],
}

Real-World Example

This site’s own structure demonstrates nested groups. Open the sidebar and see:

Navigation System (Tab)
��� Core Concepts (Group)
�   ��� Entries
�   ��� Groups
�   ��� Nested Groups       <- You're reading this!
�   ���� Tabs
��� Hierarchy (Group)
�   ��� Three-Tier Overview
�   ��� Visual Guide
�   ���� Real-World Examples

Benefits of Nested Groups

Scalability: Organize 10 pages or 10,000 pages Clarity: Deep hierarchies are intuitive for complex topics Flexibility: Mix manual and auto-generated at each level User Experience: Users understand the structure immediately

When to Use Nested Groups

  • Large documentation (100+ pages)
  • Multiple related topics (e.g., different API versions)
  • Tutorials with many chapters
  • Enterprise systems with complex features

When NOT to Use Nested Groups

  • � Very small documentation (under 20 pages�keep it flat)
  • � Unrelated topics (use tabs instead for organization)
  • � More than 4-5 nesting levels (affects UX)

Next Steps

Learn about: