# Demo This directory shows the runtime-config setup with a dedicated config file. ## Local Run From the repo root: ```shell uv run repub --config demo/repub.toml ``` Because `out_dir` in [`demo/repub.toml`](/home/abel/src/guardianproject/anynews/republisher-redux/demo/repub.toml) is relative, output is written under `demo/out/`. ## Files - `repub.toml`: example runtime config with feed definitions, slugs, and Scrapy overrides - `fixtures/local-feed.rss`: simple local RSS fixture for `file://` feed testing ## Image Profiles The demo config uses the default image profiles from `repub/settings.py`. `REPUBLISHER_IMAGE` controls full-size image variants; the first profile is the canonical image URL written into feeds. `REPUBLISHER_IMAGE_THUMBNAILS` controls named thumbnail variants for explicit item image media. By default, mirrored image source bytes are kept under `images/source/`, full profile variants are written under `images/full/`, and thumbnail profile variants are written under `images/thumbs/` inside each feed output directory. Edit the Scrapy settings in [`demo/repub.toml`](/home/abel/src/guardianproject/anynews/republisher-redux/demo/repub.toml) when a demo run needs to disable thumbnails or test a different profile set. ## Local File Feed `repub` already accepts absolute `file://` feed URIs. To point it at the demo fixture, generate an absolute URI like this from the repo root: ```shell python3 -c 'from pathlib import Path; print(Path("demo/fixtures/local-feed.rss").resolve().as_uri())' ``` Then use that value in a config entry: ```toml [[feeds]] name = "Local Demo" slug = "local-demo" url = "file:///absolute/path/to/demo/fixtures/local-feed.rss" ``` ## Pygea Import `repub` can also load additional `[[feeds]]` entries from a separate TOML file, such as `pygea`'s generated `manifest.toml`: ```toml feed_config_files = ["/absolute/path/to/pygea/feed/manifest.toml"] ```