Skip to content

feat(builder,editorial,log,encyclopedia): notebook builder UI + Letter byline + Notes toggle#57

Merged
ditvor merged 2 commits into
developfrom
claude/nostalgic-grothendieck-234867
May 27, 2026
Merged

feat(builder,editorial,log,encyclopedia): notebook builder UI + Letter byline + Notes toggle#57
ditvor merged 2 commits into
developfrom
claude/nostalgic-grothendieck-234867

Conversation

@ditvor
Copy link
Copy Markdown
Owner

@ditvor ditvor commented May 27, 2026

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.

  • Builder UI (/) — 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).
  • Editorial output — byline + dateline added under the dek ("Written from notes, photographs, and a recorded path. · LOCATION · DATE", tri-lingual). Everything else on the editorial template — the Notes toggle, body.audit per-source colour cues, custom ::after data-tip tooltip, 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.
  • Log + encyclopedia outputs — 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. A Notes button in an article-tools row flips body.audit to 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_KEY localStorage — 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 NarrativeOutput rework and remain as "SOON" cards in the picker. A follow-up session prompt covers that work.

Test plan

  • make ciruff check, ruff format --check, mypy, pytest with 92.07% coverage, 361 passed.
  • make web-dev and load http://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.
  • Generate a memory through the form (Letter style) — confirm the byline appears under the dek, photos interleave through the body (from fix(narrative,editorial): hide provenance UI, interleave photos, soften writer voice #56), and the Notes button in the top bar toggles per-source provenance treatment.
  • Open the log + encyclopedia goldens (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).
  • Print preview (Cmd+P) on all three output styles — confirm provenance treatment is suppressed and the dot-grid background drops out.

🤖 Generated with Claude Code

ditvor and others added 2 commits May 27, 2026 19:35
…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>
@ditvor ditvor changed the title feat(builder,editorial,log,encyclopedia): Notebook builder UI + Letter byline + Notes toggle feat(builder,editorial,log,encyclopedia): notebook builder UI + Letter byline + Notes toggle May 27, 2026
@ditvor ditvor merged commit 848c8c3 into develop May 27, 2026
5 of 6 checks passed
@ditvor ditvor deleted the claude/nostalgic-grothendieck-234867 branch May 27, 2026 17:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant