This repository contains html2rss feed configurations for many websites.
| Resource | Description | Link |
|---|---|---|
| π Documentation & Feed Directory | Complete guides, tutorials, and browse 100+ pre-built feeds | html2rss.github.io |
| π¬ Community Discussions | Get help, share ideas, and connect with other users | GitHub Discussions |
| π Project Board | Track development progress and upcoming features | View Project Board |
| π Support Development | Help fund ongoing development and maintenance | Sponsor on GitHub |
Quick Start Options:
- Need a specific feed? β Browse the feed directory
- Want to create feeds? β Use the web application
- Ruby Developer? β Check out the Ruby gem documentation
- Want to contribute? β See our contributing guide
Parameterized configs should include a parameters section with default values:
parameters:
query:
type: string
default: "technology"
category:
type: string
default: "news"
channel:
url: https://example.com/search?q=%<query>s&cat=%<category>s
# ... rest of configThe type field specifies the parameter type (currently only string is supported), and default provides the default value used by this repository's validation and fetch tests.
Notes:
- Only configs that use
%<param>splaceholders need aparameterssection. - Callers can still override those defaults at runtime with
html2rss feed ... --params .... - Dynamic substitution applies to
channelandheaders; selectors are not parameterized by this feature.
Use both schema-aware editing and runtime validation before committing:
# Validate all configs with the runtime validator
make validate
# Validate a single config directly
bundle exec html2rss validate lib/html2rss/configs/github.com/releases.yml
# Export the current JSON Schema locally for editor use
make schemaThe JSON Schema is useful for editor autocompletion and basic structural checks. Runtime validation remains authoritative for merged defaults and cross-field rules.
Uses dynamic test generation - no individual spec files needed!
# Test all configs
bundle exec rspec spec/html2rss/configs_dynamic_spec.rb
# Test specific config
make test-config CONFIG=github.com/releases.yml
# Test domain
make test-domain DOMAIN=github.comAdding new configs: Create the YAML file, run make validate, then run the generated tests. No dedicated spec file is needed.
Config folder convention: Place configs under the registrable domain folder (e.g., example.com/ or bbc.co.uk/). Legacy subdomain folders (e.g., news.example.com/) are allowed but not preferred.
Get inline validation and autocompletion when editing configs in your IDE. All config files already carry the schema modeline at the top:
# yaml-language-server: $schema=https://raw.githubusercontent.com/html2rss/html2rss/refs/heads/master/schema/html2rss-config.schema.jsonAny editor with yaml-language-server support (VS Code + YAML extension, Neovim, Helix, β¦) will automatically pick up the schema when opening a config file.
The included .vscode/settings.json additionally associates the schema with all
configs via a glob pattern, so new files get validation before the modeline is added.
make schemawritesschema/html2rss-config.schema.jsonlocally β useful for offline editing or when you want to pin against the currently installed gem version.
