Output writers

Default Markdown/HTML digests stay in core. Named output writers attach after the report is built and write additional artifacts beside the same run stem.

By default a digest run enables every discovered writer. Narrow or disable with --output:

rollup digest --lookback-days 7                    # md/html + xteink + txt + json + epub
rollup digest --output xteink --lookback-days 7    # md/html + xteink only
rollup digest --output json --output txt --lookback-days 7
rollup digest --output none --lookback-days 7      # Markdown/HTML only
rollup digest --output epub --lookback-days 7      # requires: pip install 'rollup[epub]'

Writers are skipped under --dry-run. --xteink (and compatibility --x3) is an alias for --output xteink (selecting any --output / --xteink replaces the default-all set). Sticky TOML: output = ["json", "txt"], output = "none", or output = "all".

When writers are auto-enabled (default-all) and an optional dependency is missing (e.g. EPUB without ebooklib), that writer is skipped with a warning. An explicit --output epub still fails hard if the dependency is absent.

Built-in writers

Name

Files

Notes

xteink

…-newsletter-digest.xteink.md

E-ink oriented Markdown; short lines; no external URLs. See XTEINK_USAGE.md.

txt

…-newsletter-digest.txt

Plain text; same offline model as XTEINK (no links / URLs stripped).

json

…-newsletter-digest.json

Structured full rollup (schema_version 1). Includes classified links and metadata; omits body_html / body_text.

epub

…-newsletter-digest.epub

Rich ebook (cover, nav, per-folder chapters, summaries); no external URLs (same offline model as XTEINK/TXT). Needs ebooklib via pip install 'rollup[epub]'.

Single-file formats (txt, json, epub) share the core digest stem and only change the extension. XTEINK uses a .xteink variant so it does not collide with the core digest .md.

Third-party writers

Packages can register additional writers via the rollup.output_writers entry point group (see README).