Cluster detail
core.rq
Ideas defined in site/reqs/core.rq.
file
18 ideas
1 files
| Idea | File | Status | Summary |
|---|---|---|---|
| assets | site/reqs/core.rq | this 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]. | |
| brand | site/reqs/core.rq | must be aligned with ["../../reqlan rq/brand.rq"] | |
| code_block_styling | site/reqs/core.rq | Code blocks should be styled per language as a function of a classname; or by using an appropriate lightweight external dependency. . rq,. ts,. md, and. py should be supported for code sections. If using a dependency, it should parse at build, not in the browser. | |
| components | site/reqs/core.rq | - sidebar - footer - hero - sticky page nav graph ( landing ) - links / contact - showcases - tutorials per [tutorials_section] - content - motivation - syntax - example - CTA: - download the extension per [icon_reqs.cta_icon] - 404 page ( just something silly / a redirect ) | |
| copy | site/reqs/core.rq | - In a ts object decoupled from the actual layout / styling. - copy should be really super minimal and concise if at all. ( show don't tell ) | |
| images | site/reqs/core.rq | The source logo is in the / public folder. A sharp dev script is used to generate pngs and favicons etc which should be executed if the svg source logo changes. | |
| links | site/reqs/core.rq | per [phonebook_reqs.phonebook] per [phonebook_reqs.npm_packages] Contact shows phonebook `links` then a Packages subsection for phonebook `packages`. per [icon_reqs.link_icons] per [icon_reqs.package_icons] | |
| logo | site/reqs/core.rq | - there is a logo in the sidebar. | |
| pnpm | site/reqs/core.rq | Must use pnpm for all js package management. | |
| presentation_player_route | site/reqs/core.rq | done | `/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. |
| simple_lightweight_and_static | site/reqs/core.rq | must be fully statically exported for GitHub Pages. All routes, including showcase detail pages, are generated at build time. The deploy workflow must upload only static HTML, JS, and assets from site / out. Build also embeds the workspace requirement graph under `/spec` per [spec_html_export]. | |
| single_page | site/reqs/core.rq | just one page. | |
| site | site/reqs/core.rq | the / site folder contains a static Next. js App Router landing page for reqlan. | |
| spec_html_export | site/reqs/core.rq | done | The 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]. |
| sync_presentations | site/reqs/core.rq | done | `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/`. |
| tutorial_location_crumb | site/reqs/core.rq | done | Tutorial 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. |
| tutorials_section | site/reqs/core.rq | done | 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 ). |
| workflow | site/reqs/core.rq | Site deployment runs when an `site/v*` tag is pushed. Tags are created automatically on main by the release workflow per [distribution_reqs.deployment_flow]. The site workflow does not deploy on ordinary commits. per [distribution_reqs.site_distribution] |
Initialising graph…