Behind-the-paper chapter (behind.xhtml, both editions) built from the run's StageCounts and candidate_runs near misses; daily-epub stats [--days N]; StageCounts gains knn/feed gates and verdicts_in_prompt, timings split into summaries + brief, the four-line §15.4 info block logged once per run and printed by print_report; src/lock.rs flock guard on <database_path>.lock for generate, profile rebuild, features backfill and backfill-social; README updated for the new CLI, env vars and costs. Implemented by a Claude agent from docs/plans/curation-v2-briefs/step6.md; reviewed against plan §5, §15. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01A1rCLQeKBgnBo3oTgHuTMe
2.1 KiB
2.1 KiB
EPUB templates
Askama templates and stylesheets for the two editions (spec §3.10, implementation
notes §11). src/epub/build.rs owns the structs they bind to; askama.toml at
the crate root points askama here (dirs = ["src/epub/templates"]).
| File | Template struct | Purpose |
|---|---|---|
base.xhtml |
— | Shared XHTML skeleton ({% block body_class %}, {% block content %}) |
cover_page.xhtml |
CoverPage |
Page that displays the rasterized cover image |
front_page.xhtml |
FrontPage |
"The Brief" + issue stats line |
in_this_issue.xhtml |
InThisIssue |
Introduction chapter: per-section linked index |
section.xhtml |
SectionPage |
Section title page (name only) |
chapter.xhtml |
ArticleChapter |
Article: header, body, rating/read-online footer |
discussion.xhtml |
DiscussionChapter |
Comment chapter (§3.7); body from comments::render_xhtml |
world_briefing.xhtml |
WorldBriefingChapter |
Wikipedia Current Events (§3.8), body from world::render_xhtml |
behind.xhtml |
BehindChapter |
"Behind the paper": run counts, admission mix, near misses, models (§15.1) |
colophon.xhtml |
ColophonChapter |
Back matter: models, cost, counts |
cover.svg |
CoverSvg |
Typographic cover, rasterized with resvg + tiny-skia |
style.css |
— | Standard-edition stylesheet, embedded as stylesheet.css |
style-x4.css |
— | X4 stylesheet: no floats/flex/grid, no fonts, hyphenation on |
Conventions:
- Every content template
{% extends "base.xhtml" %}and providestitle. - Templates declare
escape = "html"—.xhtml/.svgare not in askama's default escaper extension list. Escaping emits numeric character references (&), which are valid XML; only pre-sanitized markup uses|safe. - Markup that reaches
|safehas gone throughammoniaandepub::images::to_xhtml(void elements self-closed, → ) so the output parses as XML, as EPUB3 content documents must. - Entities other than the five XML built-ins are written as numeric references
in the templates themselves (
·,👍, …).