Přeskočit na obsah

Dostupné

Statický web

Tenhle web je generovaný soubor v repozitáři, ne běžící aplikace. Build je jeden skript, výstup je commitnutý, a validátor hlídá, že se zdroj a výstup nerozešly.

Build
python scripts/web_build.py — 8 sekčních stránek a 56 detailních, jedna na každou kartu
Zdroj a výstup
web_src/ → web/public/, obojí verzované
Styl
Tailwind 4 + Flowbite, jeden sestavený CSS soubor
JS
Alpine 3.14.1, Flowbite 4.0.2, Mermaid 11.17.2 a ECharts 6.1.0 lokálně, ověřené proti sha256 v MANIFEST.json; vlastní skripty v web/assets/js/
Kontrola
gate web-src-sync a static-vendor v just quality

Každá karta má vlastní adresu

Karta na sekční stránce a detailní stránka za ní se generují z jednoho a téhož záznamu v web_src/content/<sekce>.json. Text karty a stránka, kterou slibuje, se proto nemohou rozejít — jsou to dvě vykreslení téhož vstupu.

Kartu vlastní právě jedna sekce. Ostatní stránky na ni odkazují přes <sekce>/<slug> a míří na jedinou URL, takže dvě různé cesty nikdy neservírují stejný obsah.

Žádné CDN

Každá knihovna leží v repozitáři a manifest u ní drží verzi, upstream URL, licenci a sha256 obsahu. Validátor hashe přepočítá; změněný bajt shodí bránu.

Cena je zřejmá: aktualizace knihovny je commit, ne změna čísla v URL. Zisk je taky zřejmý — obsah, který se návštěvníkovi doručí, se nemůže změnit bez commitu, a stránka nefunguje jinak podle toho, co zrovna vrátí cizí server.

Bez JavaScriptu dává stránka smysl

Na veřejných stránkách obsluhuje JS mobilní menu a přepínač motivu (site.js), přihlašovací widget v hlavičce (session.js, jen kde je přihlášení zapnuté) a na stránkách s diagramem jeho vykreslení, přiblížení a odkazy na uzly (diagrams.js; Mermaid se načte až u diagramu). Obsah, navigace a odkazy fungují bez něj — z diagramu zůstane popisek a seznam odkazů. To není ohled na výjimečného návštěvníka; je to důsledek toho, že stránka je dokument.

Aplikační UI — přehled, průzkum, fronta kontroly, komentáře a aktuality pod /app — je oddělená větev buildu (web/app/), stojí za přihlášením a má vlastní skripty (dashboard.js, explorer.js, review.js a další; grafy kreslí ECharts). Veřejný web na ni nečeká a nemění se kvůli ní.

Kde to v repozitáři žije

  • scripts/web_build.py — build-time šablony, tabulka stránek, detailní stránky karet
  • web_src/README.md — struktura zdrojů webu a pravidla editace
  • web/assets/js/vendor/MANIFEST.json — vendorované knihovny s verzí, licencí a sha256
  • docs/development/STATIC_ROUTE_CONTRACT.md — kontrakt mezi generovanými stránkami a routami aplikace

Souvisí

Zpět na sekci Roadmapa