Files
questions/README.md
T
Bendik Aagaard LynghaugandClaude Fable 5 c5b445ecb1
Lint and reload / lint (push) Successful in 2s
Lint and reload / reload (push) Successful in 0s
Ship the hero as content: hero.js + site.yaml; docs
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-25 17:28:47 +02:00

51 lines
2.4 KiB
Markdown

# questions (redoal.com)
The content behind [redoal.com](https://redoal.com) — a second face of
the same [portal](https://project.uhhm.no/uhhm/portal) question engine
that serves uhhm.no. Every page is a YAML file under `questions/`;
pushing to `main` lints and then tells every running portal instance
to hot-reload.
The full schema reference lives in
[uhhm/questions' README](https://project.uhhm.no/uhhm/questions) —
this repo only notes what's distinctive here:
- **`site.yaml`** rebrands the instance: title `redoal`, its own
wordmark, and a `module` hero — `hero.js` in this repo, the drifting
"sine swings" band grown from lysbue's logo (pure SVG + CSS, colors
from portal's own custom properties, still under
prefers-reduced-motion). No input up there: the form's gesture
canvas below is the one place a visitor draws. The wordmark is
white-stroked like uhhm's, because portal's light theme lands
wordmarks as ink via an invert filter.
- **`type: gesture`** on `index.yaml`'s "Draw a path and see who's near" — the
pseudo edition of the network: draw a path, it becomes a real
20-byte gesture key (computed by the relay with the canonical Rust
pipeline), and the submitted answer stores `{points, key}` in the
`redoal_gestures` bucket. Marked `optional: true` deliberately:
the widget's hidden input is invisible to HTML required-validation.
- **`gitea_releases`** on "Our Composition" — advertises
redoal/redoal's releases. The jq filter pins `url: null` while that
repo is private (a private release's html_url 404s for anonymous
visitors); flip it to `.html_url` if the repo ever goes public.
- **Bucket names are `redoal_`-prefixed** (`redoal_gestures`,
`redoal_subscribers`): both portal instances share one NATS
JetStream, and bare names would collide with uhhm's buckets.
This repo also runs the redoal.com instance itself:
`.gitea/workflows/deploy.yml` pins `PORTAL_RELEASE` to a release tag
on uhhm/portal — bump the pin and push to upgrade (or revert to roll
back), and the workflow ships the artifact, rewrites the env from
this repo's Actions variables/secrets, restarts `app@redoal-portal`,
and refreshes the Caddy route. Content edits never need a deploy;
they hot-reload live.
Lint locally before pushing:
```
/srv/app/redoal-portal/current/question_lint --path questions
```
(or from a portal checkout:
`cargo run --features ssr --bin question_lint -- --path <this repo>/questions`)