Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012qRErfCoiTkvDK9N5XHbzb
3.5 KiB
paths
| paths | |
|---|---|
|
Website — build, deploy, and the encoding fences
Deploy
The website auto-deploys via git-sync from main — just push, live in 1–2 min. No ArgoCD sync,
no image build. Emergency edits: https://files.felhom.eu.
Do NOT pin the website to the installer tag. The sparse-checkout used to cover /website/ and
/scripts/ in one sync; pinning that would turn every copy edit into a release. The installer's
tag-based publishing is a separate mechanism — see the R-110 fence in the repo core CLAUDE.md.
Gates
Website changes go through python3 scripts/repo_gates.py, which runs site_gates.py. A new page
must be registered in that gate — in TWINS together with its English twin, or by name in NO_TWIN —
or it is unchecked (and the gate's walk refuses it).
site_gates.py asserts: BOM, emoji, nav/footer consistency per language set, analytics, CDN, design
tokens, no embedded <style> blocks, cache-busting, the two download pages agreeing, and since 2026-10-08:
the twin gate (every public Hungarian page has its English twin and back, matching hreflang, the nav's
language switch pointing at its own twin, canonical at itself), lang per set, the same apps on both apps
pages, no Hungarian on an English page (accent + ASCII-folded stems, controls printed), the FAQ JSON-LD equal
to the visible answers, and nothing after </html>.
The two languages (operator ruling 2026-10-08, 10-localisation.md §10.7)
- The Hungarian site is the default (
x-default). Every public Hungarian page has an English twin under/en/(/alkalmazasok→/en/apps,/technologiak→/en/technology,/biztonsagimentes→/en/backups,/gyik→/en/faq,/kapcsolat→/en/contact,/letoltes→/en/download). Exceptions, by name:szolgaltatasok-nonpublic.html(stays Hungarian) and404.html. - A new public page needs its twin in the same commit. A change to a page's claims is made on both pages of the pair in the same commit; the English promises nothing the Hungarian does not.
- English words: the dashboard's (
en.json: Dashboard, Launcher, Backup); app names and „Felhom" stay; no „please"/„kindly"; prices stay in Ft. The English footer says Felhom serves households in Hungary. - No Accept-Language redirect and no language cookie — a visitor lands on the page they asked for.
- The switch is a globe (operator ruling 2026-10-08, like the dashboard's): a
<details class="lang-globe">in the nav listing every language in its own name, the current one marked. A new language = one entry inLANGSinscripts/site_gates.py(and the globe's list) + its twin pages — nothing else in the switch changes.
The encoding fences
- All
website/HTML is UTF-8 with BOM. Preserve it. An editor that strips the BOM is a silent, whole-file change. - Emoji count is zero. The design system forbids them; the gate enforces it.
- Cache-busting: bump the asset query string when CSS or JS changes, or browsers serve the old file and the change looks like it did not deploy.
Copy
Customer-facing copy is Hungarian first, with an English twin (above); tone and terminology rules
live in the felhom-ui-design skill — use it rather than inventing phrasing. Every claim must rest on
a PROVEN-LIVE or IMPLEMENTED row of 00-capability-map.md (the claim table of the last refresh:
documentation/audits/website-refresh-2026-10-08/claims.md). Operator-facing text is English.