Idea detail
components
site/reqs/core.rq:47
Summary
- sidebar
- footer
- hero
- sticky page nav graph ( landing )
- links / contact
- showcases
- tutorials per tutorials_section
- content
- motivation
- syntax
- example
- CTA:
- download the extension
per cta_icon
- 404 page ( just something silly / a redirect )
Attributes
No attributes declared.
Ancestor context
The site exposes `/tutorials` and `/tutorials/[slug]/` as statically generated pages. Catalog and deck ids come from authored ["../../presentations/manifest.jsonc"]. Each detail page embeds the Reveal player iframe at `/presentations/player/?deck=<id>` using [assets] / SITE_BASE_PATH-aware `sitePath`. Each detail page hosts a unified transport chrome ( `<<` `<` steps `>` `>>` ) that drives slide nav in the embedded player via postMessage, plus lesson jumps. Location hierarchy chrome: [tutorial_location_crumb]. Blurb and try-this live on the catalog and inside the slides, not as page chrome. The player is an App Router page ( [presentation_player_route] ) so it static-exports under `trailingSlash` without colliding with `public/` HTML. Sync ( [sync_presentations] ) converts authored deck / catalog JSONC under ["../../presentations/"] into runtime JSON under `public/presentations/`, and copies assets plus vendored Reveal. js ( player shell excluded ).
assetsthis site is published in in gh pages at the " / reqlan " path. Any assets in the / public folder should be referenced as " / reqlan / assets /... ". Embedded spec export hrefs follow the same base via [spec_html_export] / [html_export.html_export_url_base].
tutorial_location_crumbTutorial detail chrome shows a compact location trail: catalog → course → lesson → slide. Hierarchy must be obvious without a wide single-line title dump. Layout: each tier is a stacked chip — role ( and optional completion control ) on the top row; title / index value muted underneath. Titles colour up on hover, focus-within, or when the peer menu is open. * * Folder navigation: * * each tier acts like a path segment / folder. Hover or focus reveals a peer menu for that level of the tree so the user can jump without using the transport row: - catalog → courses ( enter first lesson of the chosen course, or the catalog index ) - course → peer courses - lesson → peer lessons in the active course - slide → peer slides in the active lesson ( updates the embedded player / `?slide=` ) Current peer is marked; menus stay keyboard-reachable via focus-within. * * Sizing: * * the crumb container grows to fit text; wrap before truncating. Ellipsis only as a last resort on very narrow viewports — do not cap chip width so aggressively that titles ellipsize while space remains. Course deep-links also exist at `/tutorials/#course-<series>`; catalog at `/tutorials/`. Slide shows `n/total` and updates live with the embedded player. Completion toggles stay on the role row. The crumb lesson tier always shows the * * current * * lesson only — it must not share hover / preview state with the transport lesson step dots. Step-dot hover may preview a title near the dots, never in the crumb.
presentation_player_route`/presentations/player/` is a statically exported Next page that loads runtime deck JSON from `/presentations/decks/` and Reveal from `/presentations/vendor/reveal.js/`. Runtime JSON is generated from authored JSONC by [sync_presentations]. It must not use SiteShell; it is iframe-hosted by tutorial detail pages. Do not place `public/presentations/player/index.html` — that path is owned by the App Router export.
sync_presentations`scripts/sync-presentations.mts` reads authored `*.jsonc` decks and `manifest.jsonc`, emits comment-free `*.json` for the static player, and syncs assets / vendor into `public/presentations/`.
spec_html_exportThe site static build exports the workspace requirement graph ( excluding `*.secret.rq` ) under `out/spec/` via `reqlan export`. It must pass [html_export.html_export_url_base] for `/spec` ( honouring `SITE_BASE_PATH`, e. g. `/reqlan/spec` in production ) so `/spec` loads with or without a trailing slash. It must pass [html_export.html_export_header_link] pointing at the marketing site home so readers can leave the embedded spec and return to the parent site. Pipeline: ["../scripts/build-static.mts"] → ["../scripts/export-spec.mts"] → ["../scripts/verify-static-export.mts"]. Host options come from [html_export.html_export] / CLI [cli_package.commands].
| Kind | Idea | Path | Snippet |
|---|---|---|---|
| references | tutorials_section | site/reqs/core.rq | tutorials_section |
| Kind | Idea | Path | Snippet |
|---|---|---|---|
| None | |||
| Kind | Idea | Path | Snippet |
|---|---|---|---|
| references | cta_icon | cta_icon |
Initialising graph…