diff --git a/src/content/docs/creating-custom-feeds.mdx b/src/content/docs/creating-custom-feeds.mdx index 16382e65..22422ece 100644 --- a/src/content/docs/creating-custom-feeds.mdx +++ b/src/content/docs/creating-custom-feeds.mdx @@ -80,9 +80,9 @@ This is where you tell the html2rss engine exactly what to find on the page. You selector: "article.post" title: selector: "h2 a" - link: + url: selector: "h2 a" - attribute: href + extractor: "href" `} lang="yaml" /> @@ -100,20 +100,19 @@ This says: "Find each article, get the title from the h2 anchor, and get the lin **Step 2:** Create a file called `example.com.yml` with this basic structure: @@ -148,9 +147,13 @@ html2rss supports many configuration options: -3. **Test with `html2rss-web`:** Add your config to the `feeds.yml` file and restart your instance +3. **Or test against a locally saved HTML file without network requests:** + + + +4. **Test with `html2rss-web`:** Add your config to the `feeds.yml` file and restart your instance -4. **Check the output:** Make sure all items have titles, links, and descriptions +5. **Check the output:** Make sure all items have titles, links, and descriptions ### Useful CLI flags when a site is difficult @@ -158,11 +161,13 @@ Some sites need a little more request budget than the defaults. - Use `--max-redirects` when the site bounces through several canonicalization or tracking redirects before the real page loads. - Use `--max-requests` when your config needs more than one request, for example pagination or other follow-up fetches. +- Use `--input` to supply a local HTML file to inspect extraction offline. -## Migration Guide +## Removed Channel Attributes -If you're upgrading from an older version of html2rss: +`strategy` and `headers` were previously tolerated inside the `channel` block. These legacy shims have been removed. Both keys must now be placed at the top level of your feed configuration: -1. **Update attribute names**: Replace `updated` with `published_at` in your configurations -2. **Test your feeds**: Verify that all feeds still work correctly after the update - -## Deprecated Features - -The following features are deprecated but still supported: - -- **Legacy attribute names**: While still supported, use the current names for new configurations + -## Getting Help +## Migration Checklist -If you encounter issues with backward compatibility: +When upgrading to modern `html2rss` releases: -- **Report issues**: Open an issue if you find compatibility problems +1. **Rename date selectors**: Ensure date selectors use `published_at` rather than `updated` or `pubDate`. +2. **Move channel-level transport keys**: Ensure `strategy` and `headers` are defined at the top level of the YAML file. +3. **Validate configurations**: Run `html2rss validate config.yml` to ensure your YAML conforms to the current schema. diff --git a/src/content/docs/ruby-gem/index.mdx b/src/content/docs/ruby-gem/index.mdx index 9d7a39b8..4fe10115 100644 --- a/src/content/docs/ruby-gem/index.mdx +++ b/src/content/docs/ruby-gem/index.mdx @@ -10,8 +10,11 @@ This section provides comprehensive documentation for the `html2rss` Ruby gem. If you are looking for the stable machine-readable contract for config authoring, use the JSON Schema exported by the core repo: - Repository file: [**`html2rss-config.schema.json`**](https://github.com/html2rss/html2rss/blob/master/schema/html2rss-config.schema.json) -- CLI export: `html2rss schema` -- Runtime validation: `html2rss validate config.yml` +- CLI export: `html2rss schema` (also `--write`, `--no-pretty`) +- Runtime validation: `html2rss validate config.yml` or `Html2rss::Config.validate` +- Ruby discovery: `Html2rss::Config.json_schema` / `Html2rss::Config.schema_path` + +The exported schema covers client-side validation. Runtime validation remains authoritative for dynamic cross-field checks such as selector-key references. Contributors regenerating the checked-in artifact should run `bundle exec rake config:schema` in the core repo. ## Getting Started diff --git a/src/content/docs/ruby-gem/reference/auto-source.mdx b/src/content/docs/ruby-gem/reference/auto-source.mdx index 277db98e..459ab67d 100644 --- a/src/content/docs/ruby-gem/reference/auto-source.mdx +++ b/src/content/docs/ruby-gem/reference/auto-source.mdx @@ -23,12 +23,18 @@ To enable it, add `auto_source: {}` to your configuration: `auto_source` uses the following strategies to find content: 1. **`wordpress_api`:** Detects the `` tag used by WordPress and pulls posts from the REST API without parsing article HTML. See [WordPress API](/ruby-gem/reference/wordpress-api/). -2. **`schema`:** Parses `