Nav redesign: embedded breadcrumb navigation with recursive depth
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 5m25s

Replace menu bar navigation with in-page nav embedded in content area.
Each page shows logo/tagline/copyright, then a sibling row per trail
level (← prev | Current | next →), then children as button links.

- resolve-nav-path: recursive walk with no depth limit
- find-nav-index: rewritten with recursion (set! broken across closures)
- Walk stops on exact href match (prevents /cssx/ drilling into Overview)
- Unicode chars (©, ←, →) inline instead of \u escapes (SX parser doesn't support them)
- All 38 defpages wrapped in (~sx-doc :path ...) for in-page nav
- Layout returns only root header (nav moved out of blue menu bar)
- Standalone layout variants for sx-web.org (return nil)
- New plans: environment-images, runtime-slicing, typed-sx, nav-redesign, sx-web-platform

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-09 14:37:37 +00:00
parent cad65bcdf1
commit ec1093d372
10 changed files with 1887 additions and 696 deletions

View File

@@ -5,7 +5,7 @@
(h1 :class "text-5xl font-bold text-stone-900 mb-4"
(span :class "text-violet-600 font-mono" "(<sx>)"))
(p :class "text-2xl text-stone-600 mb-4"
"s-expressions for the web")
"Framework free reactive hypermedia")
(p :class "text-sm text-stone-400"
"© Giles Bradshaw 2026")
(p :class "text-lg text-stone-500 max-w-2xl mx-auto mb-12"

File diff suppressed because it is too large Load Diff

View File

@@ -8,20 +8,12 @@ def _register_sx_layouts() -> None:
from shared.sx.layouts import register_sx_layout
if os.getenv("SX_STANDALONE") == "true":
register_sx_layout("sx",
"sx-standalone-layout-full",
"sx-standalone-layout-oob",
"sx-standalone-layout-mobile")
register_sx_layout("sx-section",
"sx-standalone-section-layout-full",
"sx-standalone-section-layout-oob",
"sx-standalone-section-layout-mobile")
register_sx_layout("sx-docs",
"sx-standalone-docs-layout-full",
"sx-standalone-docs-layout-oob",
"sx-standalone-docs-layout-mobile")
else:
register_sx_layout("sx",
"sx-layout-full",
"sx-layout-oob",
"sx-layout-mobile")
register_sx_layout("sx-section",
"sx-section-layout-full",
"sx-section-layout-oob",
"sx-section-layout-mobile")
register_sx_layout("sx-docs",
"sx-docs-layout-full",
"sx-docs-layout-oob",
"sx-docs-layout-mobile")