Skip to content

Apply starlight-utils for multi-sidebar navigation#189

Merged
em3s merged 12 commits intomainfrom
feat/issue-184-starlight-utils-multi-sidebar
Feb 6, 2026
Merged

Apply starlight-utils for multi-sidebar navigation#189
em3s merged 12 commits intomainfrom
feat/issue-184-starlight-utils-multi-sidebar

Conversation

@em3s
Copy link
Copy Markdown
Contributor

@em3s em3s commented Feb 6, 2026

Summary

Integrate starlight-utils to enable multi-sidebar navigation for the documentation site. As documentation grows across 10+ sections, readers need contextual sidebars rather than one monolithic sidebar showing all sections at once.

Closes #184

Plan

Created by claude code (opus 4.6)

  • Step 1: Install @lorenzo_lewis/starlight-utils package
  • Step 2: Configure starlightUtils plugin with multiSidebar in astro.config.mjs
  • Step 3: Group sidebar sections into logical multi-sidebar categories (Learn, Build, Operate, Contribute)
  • Step 4: Resolve starlight-blog incompatibility with multi-sidebar
  • Step 5: Run format/lint and verify build passes

Progress

  • Step 1 — claude code (opus 4.6) (commit b692efc)
  • Step 2 — claude code (opus 4.6) (commit b692efc)
  • Step 3 — claude code (opus 4.6) (commit b692efc)
  • Step 4 — claude code (opus 4.6) (commit b692efc) — Added blog-sidebar-compat middleware and set blog navigation to 'none'
  • Step 5 — claude code (opus 4.6) (commit b692efc) — Format/lint clean, build passes (108 pages, all links valid)

Closes #184

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@dosubot dosubot bot added size:XS This PR changes 0-9 lines, ignoring generated files. documentation Improvements or additions to documentation labels Feb 6, 2026
- Install @lorenzo_lewis/starlight-utils and configure multiSidebar
  with horizontalList switcher style
- Reorganize sidebar into 4 logical groups: Learn, Build, Operate,
  Contribute
- Add blog-sidebar-compat middleware to resolve starlight-blog
  incompatibility with multi-sidebar (blog pages replace the sidebar
  with flat link entries that fail multi-sidebar group validation)
- Set starlight-blog navigation to 'none' and add Blog social link
  to header instead

Closes #184

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@dosubot dosubot bot added size:L This PR changes 100-499 lines, ignoring generated files. and removed size:XS This PR changes 0-9 lines, ignoring generated files. labels Feb 6, 2026
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@em3s
Copy link
Copy Markdown
Contributor Author

em3s commented Feb 6, 2026

Review Round 1

by claude code (opus 4.6)

Issues Found & Fixed

Severity Issue Status
SUGGESTION Plugin ordering dependency is fragile Fixed: added ordering comment (commit 66bdf0e)
SUGGESTION Blog group label hardcoded as 'Blog' Skipped: low priority, blog not yet localized
SUGGESTION Social link uses root-relative path Skipped: pre-existing pattern
SUGGESTION Future-proofing for starlight-blog changes Skipped: speculative

Result

All tests passing. Build succeeds (108 pages). All internal links valid. No CRITICAL/HIGH issues remain.

em3s and others added 4 commits February 6, 2026 17:26
Reorganize multi-sidebar from 4 groups (Learn, Build, Operate,
Contribute) to 3 groups matching user preference:
- All (전체): all doc sections
- Stories (스토리): stories only
- Blog (블로그): blog link

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Blog is accessible via header social link. On blog pages,
starlight-blog provides its own dedicated sidebar navigation.
Main sidebar now has 2 tabs: All (전체) and Stories (스토리).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Restore Blog as third sidebar tab (전체, 스토리, 블로그).
On doc pages shows "All Posts" link; on blog pages starlight-blog
provides its own sidebar via compat middleware.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add navLinks (Docs, Blog) to top navigation via starlight-utils
- Sidebar has 2 tabs: All (전체), Stories (스토리)
- Blog pages get their own sidebar via starlight-blog
- Update compat middleware to re-inject Nav group on blog pages
- Remove Docs/Blog from social icons (now in nav)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@em3s
Copy link
Copy Markdown
Contributor Author

em3s commented Feb 6, 2026

Review Round 2

by opencode (gpt-5.3-codex)

Issues Found & Fixed

Severity Issue Status
WARNING Hardcoded nav links in middleware can break locale/base-path routing Skipped: no CRITICAL/HIGH blocker; recommend follow-up hardening
WARNING Sidebar/nav definitions duplicated in config and middleware (drift risk) Skipped: no CRITICAL/HIGH blocker; recommend centralizing shared nav data
SUGGESTION Injected links always set isCurrent: false Skipped: cosmetic correctness; can be improved in follow-up
SUGGESTION Middleware ordering dependency should be covered by integration test Skipped: non-blocking; recommend adding regression test

Result

Build/test checks in this local detached worktree are partially blocked by environment-specific git worktree resolution in :server:generateGitProperties; Go CLI build/tests pass. No CRITICAL/HIGH issues remain in PR #189 diff.

@em3s em3s self-assigned this Feb 6, 2026
em3s and others added 5 commits February 6, 2026 18:41
- Move story files into use-cases/, engineering/, how-we-survived/, vision/
- Convert 30-label-how-we-survived.mdx to how-we-survived/index.mdx
  (category page that is also a document)
- Delete CSS-based label files (10/20/40-label-*.mdx)
- Use hybrid autogenerate sidebar (per-category groups)
- Add Astro redirects for all old story URLs
- Fix Nav links to be locale-aware (slug reference for Docs)
- Fix blog-sidebar-compat to use locale-aware Nav injection
- Update CategoryDirectoryList to support nested subdirectories
- Remove sidebar-label CSS (no longer needed)
- Update all internal links to new URLs

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Use Lucide external-link SVG via CSS mask-image for the GitHub nav link
instead of the unicode arrow character. Also add the missing GitHub link
to the blog page Nav group in blog-sidebar-compat middleware.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… Main

Override SocialIcons component to show live star count from GitHub API
next to the GitHub icon. Count is cached in localStorage for 1 hour.
Also rename sidebar tab from All/전체 to Main/메인.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace client-side GitHub API fetch with shields.io badge image.
Simpler, no JS needed, no rate limiting concerns.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Replace social icon section with shields.io badge in nav link
- Transparent background + invert filter for light mode
- Remove SocialIcons override and social config
- Hide empty social-icons separator
- Remove external link icon from GitHub nav link

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@em3s
Copy link
Copy Markdown
Contributor Author

em3s commented Feb 6, 2026

preview

image

the stories are moved the each directory, but the original urls are preserved by redirection.

@em3s em3s merged commit 165dff6 into main Feb 6, 2026
10 checks passed
@em3s em3s changed the title feat(website): apply starlight-utils for multi-sidebar navigation Apply starlight-utils for multi-sidebar navigation Feb 12, 2026
@em3s em3s deleted the feat/issue-184-starlight-utils-multi-sidebar branch March 1, 2026 12:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size:L This PR changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Apply starlight-utils for multi-sidebar navigation

1 participant