v0.3.0
Highlights
- Per-feed content filters (
Exoplanet.Filters): category allow/block lists,<img>stripping, HTML-escaped truncated excerpts. Per-feedfilters:overlays ondefault_filters; lists replace, scalars override. - Cache behaviour callbacks:
Exoplanet.Cachegains optionalon_success/2andon_error/3notification callbacks alongside the requiredget/1/put/2. - Richer
Exoplanet.Post: newfeed_url,categories,summary, andupdatedfields. Atom parser falls back to<updated>when<published>is absent. - Resilient date handling: malformed
<pubDate>no longer crashes a feed's parse — the offending entry is skipped (siblings survive) and a warning is logged. Entries without any usable date are skipped too. RSS 1.0 / RDF feeds now sort correctly thanks to a Dublin Core<dc:date>fallback. - Parser refactor:
Exoplanet.Parseris now purely HTTP fetch + XML parse; per-source filtering and thenew_feed_itemscap moved toExoplanet.build/1.
Breaking change
Exoplanet.Config no longer holds site-presentation metadata (name, link, owner_name, owner_email, about, code_of_conduct, activity_threshold, related_sites) or vestigial Venus-era settings (cache_directory, output_dir, output_theme, log_level). Move those fields into your own consumer-side struct — Exoplanet.Config.from_file/1 silently ignores unknown keys, so a single .exs file can serve both.
See the migration notes in the README and the full CHANGELOG.
Full Changelog: v0.2.0...v0.3.0