Files
the-daily-epub/src/epub/templates/style-x4.css
T
thalladaandClaude Fable 5.1 57efbb49b4 Curation v2 step 2: Claude Opus 5 editor, the Brief, per-provider budgets
- AnthropicBackend (Messages API, cached system block, output_config.effort,
  server-side fallbacks, refusal surfaced as an error); Llms { bulk, editor }
  with editor_or_bulk(); PriceTable-based UsageMeter per provider.
- [anthropic], [editorial], deepseek.max_concurrent_requests and
  curation.max_article_count config; startup logs resolved providers.
- Budget day is the UTC date of started_at, preloaded from
  runs.provider_costs_json; finish_run writes provider_costs_json and
  config_json. Stage A batches run concurrently with per-batch budget checks.
- Editor prompt with one-line "why" per pick; no minimum lineup size;
  --max-articles is a ceiling; top-up branch deleted; why stored on picks and
  issue_articles.why and rendered in chapters and In this issue.
- Summaries on the editor client (3k-token input, concurrency 4, bulk then
  excerpt fallback); "The Brief" replaces From the Editor; section intros gone.
- Colophon carries per-provider costs and models.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01A1rCLQeKBgnBo3oTgHuTMe
2026-09-02 03:56:14 +00:00

195 lines
2.9 KiB
CSS

/* Xteink X4 stylesheet (spec §3.10 "X4 edition").
No floats, no flex, no grid, no embedded fonts, larger base font,
generous line-height, hyphenation on. 480x800, 2-bit grayscale.
Selectors are `tag`, `.class` and `tag.class` only — the X4 firmware's CSS
engine does not support descendant combinators, so a rule like
`.comment-body p` is silently dropped on the device. Where a tag rule needs
an exception, the `tag.class` override follows it immediately so the result
is right whether the engine resolves by specificity or by source order. */
@page {
margin: 0.4em;
}
body {
font-family: serif;
font-size: 1.2em;
line-height: 1.7;
margin: 0 0.5em;
text-align: left;
hyphens: auto;
-webkit-hyphens: auto;
adobe-hyphenate: auto;
word-wrap: break-word;
}
.chapter {
page-break-before: always;
break-before: page;
}
h1, h2, h3, h4 {
font-weight: bold;
line-height: 1.3;
page-break-after: avoid;
break-after: avoid;
margin: 0.6em 0 0.35em 0;
hyphens: none;
-webkit-hyphens: none;
}
h1 { font-size: 1.35em; }
h2 { font-size: 1.15em; }
h3, h4 { font-size: 1em; }
p {
margin: 0 0 0.6em 0;
}
a {
color: #000000;
text-decoration: underline;
}
hr.rule {
border: 0;
border-top: 1px solid #000000;
margin: 0.7em 0;
height: 0;
}
img {
max-width: 100%;
height: auto;
}
.cover-page {
text-align: center;
margin: 0;
}
.masthead {
font-size: 1.6em;
text-align: center;
}
.dateline,
.stats,
.meta,
.social,
.index-meta,
.discussion-note,
.attribution,
.comment-meta {
font-size: 0.85em;
}
.dateline,
.stats {
text-align: center;
}
.section-page {
text-align: center;
}
.section-title {
font-size: 1.5em;
margin-top: 1.5em;
}
.section-intro,
.summary,
.byline {
font-style: italic;
}
ul, ol {
margin: 0 0 0.5em 1em;
padding: 0;
}
ul.index-list {
list-style: none;
margin: 0;
padding: 0;
}
.index-entry {
margin: 0 0 0.8em 0;
}
.index-title,
.index-meta,
.index-summary {
margin: 0;
}
figure {
margin: 0.6em 0;
text-align: center;
}
figcaption,
.image-caption,
.image-placeholder {
font-size: 0.85em;
font-style: italic;
text-align: center;
}
pre, code {
font-family: monospace;
font-size: 0.85em;
white-space: pre-wrap;
word-wrap: break-word;
hyphens: none;
-webkit-hyphens: none;
}
table {
border-collapse: collapse;
font-size: 0.85em;
}
td, th {
border: 1px solid #666666;
padding: 0.15em 0.3em;
}
blockquote {
margin: 0.5em 0 0.5em 0.3em;
padding-left: 0.5em;
border-left: 2px solid #666666;
}
blockquote.comment {
margin: 0.4em 0;
padding-left: 0.5em;
border-left: 2px solid #666666;
}
blockquote.reply {
border-left: 1px solid #999999;
}
p.comment-line {
margin: 0 0 0.35em 0;
}
.world-summary {
margin: 0.2em 0 0.45em 0;
font-style: italic;
}
.world-overview {
margin-bottom: 0.7em;
}
.fact-line {
margin: 0 0 0.35em 0;
}
.why, .index-why { font-size: 0.9em; font-style: italic; }