From 7904c82481fc4db8ed84e898a8f3d83f8ea2a5d8 Mon Sep 17 00:00:00 2001 From: mhoennig Date: Mon, 24 Aug 2026 10:03:51 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20PWA=20als=20k=C3=BCnftiges=20Feature=20?= =?UTF-8?q?festgehalten=20(Plan=20+=20Roadmap)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Werkbaum soll installierbar werden. Im mitgelieferten Plan als `#bld.pwa` (M) unter „Build and delivery", mit drei Kindern: Manifest (XS), Service Worker (S) und die Frage, was aus der Update-Anzeige wird (S) — je mit Beschreibungsblock nach D48. Status `[ ]`: beschlossen, nichts investiert. Die Vorarbeit ist getan und steht in den Beschreibungen: Der Build liefert eine einzige Datei mit inlinten Schriften, Stilen und Modulen (D19/D20), es gibt also genau ein Objekt zu cachen, und die Dokumente liegen ohnehin lokal (D22). Offen ist das Zusammenspiel mit D45: Sitzt ein Worker vor der Seite, entscheidet er, was ausgeliefert wird — „der laufende Build gegen den, den der Server schickt" ist dann nicht mehr dieselbe Aussage. Texte aus ?sourceUrl=/?etherpad= bleiben naturgemäß online. Dazu ein Eintrag unter „Kleinere Ideen" in der ROADMAP, der auf `#bld.pwa` verweist. Nachgemessen: 154 Knoten (150 + 4), 0 Warnungen, alle IDs eindeutig, kein Knoten ohne Beschreibung, Stationen 24 -> 27 (die drei neuen Blätter sind offene Pfadarbeit). 240 Tests grün. Co-Authored-By: Claude Opus 5 --- docs/ROADMAP.md | 11 +++++++++++ docs/examples/werkbaum.werkbaum | 25 +++++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 515a051..88c6f3b 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -103,6 +103,17 @@ Tastendruck ein Commit); und wer bei einem Backend eigentlich was darf Ausbaustufe weiterspringen (Regel: erst die Kette auf `fertig`, dann die nächste Stufe). Das braucht erst Nutzen + Aufwands-Rollup (oben). - Attribut-Syntax für Termine/Meilensteine. +- **Installierbar als Progressive Web App:** Manifest (Name, Icons, + `display: standalone`) plus ein Service Worker, der die Seite aus dem Cache + beantwortet — dann startet der Editor ohne Netz und bekommt ein eigenes + Fenster samt Symbol. Die Vorarbeit ist getan: Der Build liefert **eine** + Datei mit inlinten Schriften, Stilen und Modulen (D19/D20), es gibt also + genau ein Objekt zu cachen, und die Dokumente liegen ohnehin lokal (D22). + Zu klären ist das Zusammenspiel mit der Update-Anzeige (D45): Sitzt ein + Worker vor der Seite, entscheidet **er**, was ausgeliefert wird — „der + laufende Build gegen den, den der Server schickt" ist dann nicht mehr + dasselbe. Dokumente aus `?sourceUrl=`/`?etherpad=` bleiben naturgemäß + online. Im Plan: `#bld.pwa`. - Schlagworte `&tag` mit einer Filter-/Hervorheben-Linse im Diagramm: Der Baum ist genau eine Zerlegung — ein Tag benennt eine Menge von Knoten quer dazu (z. B. `&frontend` in feature-geschnittenen Slices). Schreibweise reserviert diff --git a/docs/examples/werkbaum.werkbaum b/docs/examples/werkbaum.werkbaum index 1765751..a893d72 100644 --- a/docs/examples/werkbaum.werkbaum +++ b/docs/examples/werkbaum.werkbaum @@ -82,6 +82,10 @@ - [^] #bld.tests: Unit tests (S) - [^] #bld.pages: Published on every push (S) - [^] #bld.update: Says when a new build is out (S) %% compares against the running one, see D45 + - [ ] #bld.pwa: Installable as a progressive web app (M) + - [ ] #bld.pwa.manifest: A manifest with name, icons and standalone display (XS) + - [ ] #bld.pwa.sw: A service worker that serves the app offline (S) %% one file to cache + - [ ] #bld.pwa.update: The reload notice moves into the worker (S) %% see D45 - [-] #bld.ghpages: Deploy through a gh-pages branch (S) %% GitHub Actions instead - [-] #bld.gfonts: Fonts from Google (XS) %% self-hosted, no third-party request - [ ] #be: Backend (XL) @@ -546,6 +550,27 @@ offers a reload. It compares against itself, not against a remembered fetch — a remembered one survives the very reload that resolves it. +#bld.pwa + Installable from the browser and startable like an app, in its own window + and with its own icon. Everything it needs is already in one file, so what + is missing is mostly the declaration that says so. + +#bld.pwa.manifest + Name, icons, theme colour and a standalone display mode — the declaration a + browser reads before it offers to install anything. The brand mark exists + and needs the raster sizes an installer asks for. + +#bld.pwa.sw + A worker answering from the cache lets the editor start without a network. + There is exactly one object to cache, because the build inlines fonts, + styles and modules; documents live in the browser anyway. Texts pulled from + a URL or a pad stay online by their nature. + +#bld.pwa.update + With a worker in front of the page, the reload notice has to come from it: + it decides what gets served, so "the running build against the one the + server sends" is no longer the same comparison. + #bld.ghpages Rejected: the official Actions route needs no extra branch and no deploy key.