Creating Menu Structures
Learn how to create organized menu structures like the Code and WordPress menus.
Overview
This guide shows you how to create a clean, organized menu structure where each menu item has its own isolated sidebar - similar to how the Code menu works with HTML, CSS, PHP, etc.
The Pattern
Each top-level menu (like "Code" or "WP") contains multiple sub-items, and clicking any sub-item shows only its relevant documentation in the sidebar.
Example Structure:
Code (dropdown)
├── HTML (own sidebar)
├── CSS (own sidebar)
├── PHP (own sidebar)
└── MySQL (own sidebar)
Step-by-Step Implementation
Step 1: Create Directory Structure
Create a directory for each menu item:
# For Code menu
sudo mkdir -p /opt/docker-data/apps/docusaurus/site/docs/code/html
sudo mkdir -p /opt/docker-data/apps/docusaurus/site/docs/code/css
sudo mkdir -p /opt/docker-data/apps/docusaurus/site/docs/code/php
# For WordPress menu
sudo mkdir -p /opt/docker-data/apps/docusaurus/site/docs/wordpress/generatepress
sudo mkdir -p /opt/docker-data/apps/docusaurus/site/docs/wordpress/kadence
sudo mkdir -p /opt/docker-data/apps/docusaurus/site/docs/wordpress/acf
Step 2: Create Index Files
Each directory needs an index.md file:
# Example for HTML
sudo tee /opt/docker-data/apps/docusaurus/site/docs/code/html/index.md <<EOF
# HTML
Welcome to the HTML documentation section.