Statuszeile zwischen Navigation und Artikel (Aktualisierung, Wortzahl, Lesedauer) #134
Labels
No Label
area:auth
area:docs
area:export
area:ops
area:storage
area:supply-chain
auth
backend
blocked
collab
deployment
docs
effort:L
effort:M
effort:S
frontend
plugins
qa
vs-nfd
vs-nfd:blocker
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: stwaidele/dorfteich#134
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Ziel
Zwischen Navigation/Seitenkopf und Artikeltext soll eine schmale Statuszeile erscheinen mit drei Werten:
Bestand / Fundorte
apps/web/src/pages/PageEditorPage.tsxzwischen.editor-page__header(Titel, ~L513-523) und.editor-page__body(~L524).updatedAtliegt aufpage.data(Query['page', …]) — nicht imresolved-Objekt; direktpage.data?.updatedAtlesen.Intl.DateTimeFormatinapps/web/src/editor/HistoryPanel.tsx(~L96-99).editor.getText()in der innerenPageEditor-Komponente (dort ist die TipTap-Instanz), oder (b)docToPlainTextaus@dorfteich/sharedbzw. Markdown-Export['page-markdown', pageId].Umsetzung
apps/web/src/pages/PageStatusBar.tsxrendert die drei Werte.ceil(Wörter / WPM)mit WPM-Default 200 (deutschsprachig, als Konstante). i18n-Text z. B. „ca. X Min. Lesezeit".PageEditorPagean der Injektionsstelle einhängen — nur Lesemodus (Empfehlung; Editmodus optional/aus).PublicPageView.tsx.updatedAtist im public-content-Interface bereits deklariert (nur nicht gerendert). Wortzahl serverseitig aus HTML/Plaintext ableiten und im public-content-Payload mitliefern (apps/api/src/public/public.service.ts), damit die anonyme Ansicht keinen Editor braucht.base.css.Akzeptanzkriterien
pnpm lint+ betroffene CI-Packs grün.Offene Frage
Umgesetzt in
c858f12: Statuszeile (letzte Aktualisierung · Wortzahl · geschätzte Lesezeit) zwischen Seitenkopf und Artikel — im authentifizierten Lesemodus und in der öffentlichen Ansicht. Geteilte KomponentePageStatusBar(Intl-Datumsformat, Lesezeit = ceil(Wörter/200), Singular/Plural, Lesezeit bei 0 Wörtern ausgeblendet); Wortzahl auth aus dem Markdown-Export (geteilter Query-Key), öffentlich per DOMParser aus dem gelieferten HTML — kein Backend-Change.Verifiziert: visuell auf Test/Int (u. a. „722 Wörter · ca. 4 Min. Lesezeit" auf der Lang-Testseite). Deployt bis
60be198, von Stefan abgenommen.