- Add spec-explorer-data-by-slug helper with _SPEC_SLUG_MAP - _find_spec_file searches spec/, web/, shared/sx/ref/ directories - defpage specs-explore-page uses :data for server-side data fetch - test_evaluator_renders_in_browser: failing test for client-side rendering (client re-evaluates defpage content, find-spec unavailable — pre-existing) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1.3 KiB
1.3 KiB
name, description, type
| name | description | type |
|---|---|---|
| SX navigation single-source-of-truth | Navigation must be defined once in nav-data.sx — no fragment URLs, no duplicated case statements, use make-page-fn for convention-based routing | feedback |
Never use fragment URLs (#anchors) in the SX docs nav system. Every navigable item must have its own Lisp URL.
Why: Fragment URLs don't work with the SX URL routing system — fragments are client-side only and never reach the server, so nav resolution can't identify the current page.
How to apply:
nav-data.sxis the single source of truth for all navigation labels, hrefs, summaries, and hierarchypage-functions.sxusesmake-page-fn(convention-based) orslug->componentto derive component names from slugs — no hand-written case statements for simple pages- Overview/index pages should generate link lists from nav-data variables (e.g.
reactive-examples-nav-items) rather than hardcoding URLs - To add a new simple page: add nav item to nav-data.sx, create the component file. That's it — the naming convention handles routing.
- Pages that need server-side data fetching (reference, spec, test, bootstrapper, isomorphism) still use custom functions with explicit case clauses
- Legacy Python nav lists in
content/pages.pyhave been removed — nav-data.sx is canonical