Idea detail
tutorials_section
reqlan rq/site/site.rq:448
Summary
The site exposes `/tutorials` and `/tutorials/slug/` as statically generated pages.
Catalog and deck ids come from authored 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 ( tutorial_player_transport ).
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 ).
The catalog links to assessment_page for certification.
Navigation
Attributes
| Key | Value |
|---|---|
| implementation | page.tsx, ["../../site/src/app/tutorials/slug/page.tsx"], page.tsx, tutorials.ts, TutorialPlayerShell.tsx, PresentationPlayer.tsx, sync-presentations.mts, parse-jsonc.ts |
| status | done |
Ancestor context
No ancestor chain recorded.
Outbound references
Inbound references
| Kind | Idea | Path | Snippet |
|---|---|---|---|
| references | components | reqlan rq/site/site.rq | tutorials_section |
Unresolved references
| Kind | Idea | Path | Snippet |
|---|---|---|---|
| None | |||
Local graph
Initialising graph…