Skip to content

v0.3.0

Choose a tag to compare

@milmazz milmazz released this 02 May 06:14
· 15 commits to main since this release
2512481

Highlights

  • Per-feed content filters (Exoplanet.Filters): category allow/block lists, <img> stripping, HTML-escaped truncated excerpts. Per-feed filters: overlays on default_filters; lists replace, scalars override.
  • Cache behaviour callbacks: Exoplanet.Cache gains optional on_success/2 and on_error/3 notification callbacks alongside the required get/1 / put/2.
  • Richer Exoplanet.Post: new feed_url, categories, summary, and updated fields. 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.Parser is now purely HTTP fetch + XML parse; per-source filtering and the new_feed_items cap moved to Exoplanet.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