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 `