Skip to content

Commit 7052b8a

Browse files
committed
Change nav generation
1 parent 310f8e5 commit 7052b8a

2 files changed

Lines changed: 40 additions & 23 deletions

File tree

mkdocs.yml

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -88,24 +88,24 @@ nav:
8888
- Use Cases: ecosystem/use-cases/index.md
8989
- Modules:
9090
- Modules: modules/index.md
91-
- mod-clk: modules/mod-clk/README.md
92-
- mod-comp: modules/mod-comp/README.md
93-
- mod-delay: modules/mod-delay/README.md
94-
- mod-env: modules/mod-env/README.md
95-
- mod-eq: modules/mod-eq/README.md
96-
- mod-in-63: modules/mod-in-63/README.md
97-
- mod-jacket: modules/mod-jacket/README.md
98-
- mod-key: modules/mod-key/README.md
99-
- mod-lpg: modules/mod-lpg/README.md
100-
- mod-midi: modules/mod-midi/README.md
101-
- mod-mix: modules/mod-mix/README.md
102-
- mod-noise: modules/mod-noise/README.md
103-
- mod-out-35: modules/mod-out-35/README.md
104-
- mod-out-63: modules/mod-out-63/README.md
105-
- mod-sat: modules/mod-sat/README.md
106-
- mod-seq: modules/mod-seq/README.md
107-
- mod-vcf: modules/mod-vcf/README.md
108-
- mod-vco: modules/mod-vco/README.md
91+
- counter: modules/mod-clk/README.md
92+
- compressor: modules/mod-comp/README.md
93+
- delay: modules/mod-delay/README.md
94+
- envelope: modules/mod-env/README.md
95+
- equalizer: modules/mod-eq/README.md
96+
- input 6.3: modules/mod-in-63/README.md
97+
- jacket 3.5mm: modules/mod-jacket/README.md
98+
- stylo: modules/mod-key/README.md
99+
- low-pass gate: modules/mod-lpg/README.md
100+
- midi - cv: modules/mod-midi/README.md
101+
- vca / mixer: modules/mod-mix/README.md
102+
- noise + s&h: modules/mod-noise/README.md
103+
- output 3.5: modules/mod-out-35/README.md
104+
- output 6.3: modules/mod-out-63/README.md
105+
- saturator: modules/mod-sat/README.md
106+
- sequencer: modules/mod-seq/README.md
107+
- filter: modules/mod-vcf/README.md
108+
- oscillator: modules/mod-vco/README.md
109109
- Specification:
110110
- Specification: specification/index.md
111111
- Mechanical: specification/mechanical.md

scripts/update_nav.py

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,29 @@
22
"""
33
Update mkdocs.yml with module navigation entries.
44
Scans docs/modules/ for mod-* directories and updates the nav section.
5+
Extracts H1 titles from README.md files for navigation labels.
56
"""
67

78
import yaml
9+
import re
810
from pathlib import Path
911

12+
def get_h1_title(readme_path):
13+
"""Extract the first H1 title from a README.md file."""
14+
try:
15+
with open(readme_path, 'r', encoding='utf-8') as f:
16+
for line in f:
17+
line = line.strip()
18+
if line.startswith('# '):
19+
# Remove the "# " prefix and return the title as-is
20+
title = line[2:].strip()
21+
return title
22+
return None
23+
except Exception:
24+
return None
25+
1026
def get_module_list():
11-
"""Scan docs/modules for mod-* directories."""
27+
"""Scan docs/modules for mod-* directories and extract titles."""
1228
modules_dir = Path("docs/modules")
1329
if not modules_dir.exists():
1430
return []
@@ -18,7 +34,8 @@ def get_module_list():
1834
if item.is_dir() and item.name.startswith("mod-"):
1935
readme = item / "README.md"
2036
if readme.exists():
21-
modules.append(item.name)
37+
title = get_h1_title(readme) or item.name
38+
modules.append((item.name, title))
2239

2340
return modules
2441

@@ -38,13 +55,13 @@ def update_mkdocs_yml():
3855
print("Error: nav section not found in mkdocs.yml")
3956
return
4057

41-
# Get module list
58+
# Get module list with titles
4259
modules = get_module_list()
4360

4461
# Build modules nav section
4562
modules_nav = [{"Modules": "modules/index.md"}]
46-
for module in modules:
47-
modules_nav.append({module: f"modules/{module}/README.md"})
63+
for folder_name, title in modules:
64+
modules_nav.append({title: f"modules/{folder_name}/README.md"})
4865

4966
# Find and update the Modules section in nav
5067
nav = config['nav']

0 commit comments

Comments
 (0)