feat(builder,editorial,log,encyclopedia): notebook builder UI + Letter byline + Notes toggle#57
Merged
Merged
Conversation
…r byline + Notes toggle on log/encyclopedia Ports the Trailpath design handoff's "Notebook" register to the web builder (workshop, distinct from every output style), polishes the editorial output toward the handoff's Letter design, and brings the log + encyclopedia styles into the same opt-in audit UI the editorial template uses for per-sentence provenance. Builder UI (web/static/builder.css, web/templates/landing.html.j2, web/templates/builder_base.html.j2): - new self-hosted variable fonts under web/static/fonts/: Onest (display + body, substitutes for Bricolage Grotesque + Hanken Grotesk because neither has Cyrillic on Google Fonts — same rationale as the Newsreader → Source Serif 4 swap recorded in web/static/fonts/LICENSE.md) and Caveat (handwriting accent). Latin + Cyrillic + Latin-Ext WOFF2 subsets, all OFL 1.1. - builder.css rewritten around new --nb-* tokens: cream paper with a soft dot-grid background (18px), fountain-pen ink blue accent, notebook-ruled textarea, slate-blue ink, rotated draft badge, pulse-green saved dot. .bp-* class structure unchanged so the existing Alpine wiring + landing template still drive it. - landing.html.j2: hand-sketched SVG route doodle with tri-lingual "your day" / "твой день" / "dein Tag" Caveat annotation, and a draft badge in the hero meta. - builder_base.html.j2: small italic "builder" / "конструктор" / "werkstatt" tag next to the logo and a Caveat "— composed by you" signature in the footer (the only other appearance of Caveat). Editorial polish (templates/styles/editorial.html.j2): - byline + dateline added under the dek: "Written from notes, photographs, and a recorded path. · LOCATION · DATE" with RU + DE variants. Conditional on at least one of location/date so the no-meta render stays clean (preserves test contract). - everything else on this template — the Notes toggle, body.audit per-source color cues, custom ::after data-tip tooltip, photo aspect-ratio lock, photo interleaving — lands from develop's parallel pilot-feedback commit (f0b8c6e) and is intentionally left intact. Log + encyclopedia (templates/styles/log.html.j2, templates/styles/encyclopedia.html.j2): - both styles now walk narrative.paragraphs and emit one <span class="sent" data-prov data-tip> per sentence (was: flat paragraph text). Default render is clean prose — the audit UI hides behind a Notes button in the article-tools row. - vocabulary mirrors editorial: body.audit, #notesBtn, "Notes" label, data-tip attribute, custom ::after tooltip, NOTES_KEY localStorage persistence. A creator who flips notes on in one style sees the audit UI everywhere. - per-style register colours: log uses GitHub-ish blue/green/warm underlines; encyclopedia uses sepia-keyed underlines that match the kunstbuch palette. - INFERRED sentences gain a faint highlighter (log) / sepia (encyclopedia) background under body.audit; non-INFERRED sources gain only the underline cue. Matches editorial's restraint hierarchy. Goldens (tests/golden/test-render-{editorial,log,encyclopedia}.html) refreshed via make golden-update; ruff + mypy + 361 pytest + 92.07% coverage all green. The four remaining Trailpath styles (Zine, Sunday, Postcard, Album) require a chapter-based NarrativeOutput rework and are intentionally out of scope here — they remain as "SOON" cards in the picker. A follow-up session prompt covers that work. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…rothendieck-234867
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Ports the Trailpath design handoff's "Notebook" register to the web builder, polishes the editorial output toward the handoff's Letter design, and brings the log + encyclopedia styles into the same opt-in audit UI the editorial template uses for per-sentence provenance.
/) — new "Notebook" aesthetic: dot-grid background, fountain-pen blue accent, Onest variable display + body (Cyrillic-friendly substitute for Bricolage Grotesque + Hanken Grotesk), Caveat handwriting accent on the hero doodle and signature, notebook-ruled textarea, rotated draft badge, pulse-green saved dot. Distinct from every output style by design (it's a workshop, not a publication).body.auditper-source colour cues, custom::after data-tiptooltip, photo aspect-ratio lock, photo interleaving — lands cleanly from fix(narrative,editorial): hide provenance UI, interleave photos, soften writer voice #56 and is left intact.narrative.paragraphsand emit one<span class="sent" data-prov data-tip>per sentence (was: flat paragraph text). Default render is clean prose. A Notes button in an article-tools row flipsbody.auditto reveal a register-appropriate audit treatment (log: GitHub-ish blue/green/warm underlines on a highlighter background; encyclopedia: sepia underlines on a sepia ground). Vocabulary mirrors editorial —body.audit,#notesBtn, "Notes" label,data-tip,NOTES_KEYlocalStorage — so a creator's preference travels across all three styles.Out of scope (next PR)
The four remaining Trailpath styles (Zine, Sunday, Postcard, Album) require a chapter-based
NarrativeOutputrework and remain as "SOON" cards in the picker. A follow-up session prompt covers that work.Test plan
make ci—ruff check,ruff format --check,mypy,pytestwith 92.07% coverage, 361 passed.make web-devand loadhttp://127.0.0.1:8765/— verify the Notebook builder renders in EN / RU / DE with correct Cyrillic glyphs (Onest), Caveat doodle "your day / твой день / dein Tag", and the rotated draft badge.tests/golden/test-render-{log,encyclopedia}.html) — confirm the Notes button is in the article tools row, toggling it surfaces the audit UI with the custom tooltip on hover, and that localStorage persistence works (refresh → state survives).🤖 Generated with Claude Code