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
Configs must include a parameters section to define default values for dynamic parameters:
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 when no parameter is explicitly provided.
Validate configs against the html2rss schema before committing:
# Validate all configs
make validate
# Validate a single config directly
bundle exec html2rss validate lib/html2rss/configs/github.com/releases.ymlUses 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: Just create the YAML file and run make validate then tests. No spec file 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.
