Skip to content

Commit 39ba614

Browse files
committed
.
1 parent e4028e7 commit 39ba614

12 files changed

Lines changed: 248 additions & 261 deletions

File tree

.github/copilot-instructions.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,14 @@ Create comprehensive, user-friendly documentation that showcases html2rss capabi
3939

4040
## Content Rules
4141

42-
- Write clear, concise documentation
42+
- Write clear, concise documentation, which a human who is not fully-fluent in "Technology" can understand and work with.
4343
- Use active voice
4444
- Include code examples
4545
- Add interactive demos where helpful
4646
- Keep navigation logical
4747
- Use consistent terminology
4848
- Ensure the Site Navigation is assembled in a logical and user-friendly manner.
49+
- Prevent adding (and remove existing) "technical clutter" content.
4950

5051
## Performance & SEO
5152

astro.config.mjs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,6 @@ export default defineConfig({
143143
items: [
144144
"web-application",
145145
"web-application/getting-started",
146-
"web-application/installation",
147146
{
148147
label: "How-to",
149148
autogenerate: { directory: "web-application/how-to" },

src/content/docs/html2rss-configs.mdx

Lines changed: 60 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -3,30 +3,35 @@ title: Creating Custom RSS Feeds
33
description: Learn how to create custom RSS feeds using html2rss configuration files
44
---
55

6-
Want to create RSS feeds for websites that don't offer them? This guide shows you how to write simple configuration files that tell the html2rss engine exactly what content to extract.
6+
Want to create RSS feeds for websites that don't offer them? This guide shows you how to write simple configuration files.
77

8-
**Don't worry if you're not technical** - we'll explain everything step by step!
8+
**New to html2rss?** Start with the [web app](/web-application/getting-started) or [browse existing feeds](/feed-directory/) first.
99

10-
You can see examples of what others have created in the [Feed Directory](/feed-directory/).
10+
---
11+
12+
## Quick Start
13+
14+
**Need a feed right now?**
15+
1. **[Try the web app](/web-application/getting-started)** - No coding required
16+
2. **[Browse ready-made feeds](/feed-directory/)** - Use what others created
17+
3. **Create a config** - When you need custom control (see below)
18+
19+
**Ready to create a config?** Jump to [Your First Config](#your-first-config).
1120

1221
---
1322

1423
## How It Works
1524

16-
Think of the html2rss engine as a smart assistant that needs instructions. You give it a simple "recipe" (called a config file) that tells it:
17-
25+
A config file is a simple "recipe" that tells html2rss:
1826
1. **Which website** to look at
19-
2. **What content** to find (articles, posts, etc.)
20-
3. **How to organize** that content into an RSS feed
21-
22-
The recipe is written in YAML - a simple format that's easy to read and write. Both html2rss-web and the html2rss Ruby gem use these same configuration files.
27+
2. **What content** to find
28+
3. **How to organize** it into an RSS feed
2329

2430
### The `channel` Block
2531

26-
This tells the html2rss engine basic information about your feed - like giving it a name and telling it which website to look at.
32+
This tells html2rss basic information about your feed - like giving it a name and telling it which website to look at.
2733

2834
**Example:**
29-
3035
```yaml
3136
channel:
3237
url: https://example.com/blog
@@ -40,7 +45,6 @@ This says: "Look at this website and call the feed 'My Awesome Blog'"
4045
This is where you tell the html2rss engine exactly what to find on the page. You use CSS selectors (like you might use in web design) to point to specific parts of the webpage.
4146

4247
**Example:**
43-
4448
```yaml
4549
selectors:
4650
items:
@@ -49,135 +53,94 @@ selectors:
4953
selector: "h2 a"
5054
link:
5155
selector: "h2 a"
56+
attribute: href
5257
```
5358

54-
This says: "Find each article, get the title from the h2 link, and get the link from the same h2 link"
59+
This says: "Find each article, get the title from the h2 anchor, and get the link from the same h2 anchor's href attribute"
5560

5661
**Need more details?** Check our [complete guide to selectors](/ruby-gem/reference/selectors/) for all the options.
5762

5863
---
5964

60-
## Tutorial: Your First Feed
61-
62-
Let's create a simple RSS feed step by step. We'll use a basic blog as our example.
65+
## Your First Config
6366

64-
### Step 1: Look at the Website
67+
**Step 1:** Look at the website you want to create a feed for. Right-click → "View Page Source" to see the HTML structure.
6568

66-
First, visit the website you want to create a feed for. Right-click and "View Page Source" to see the HTML structure. Look for patterns like this:
67-
68-
```html
69-
<div class="posts">
70-
<article class="post">
71-
<h2><a href="/post/1">First Post</a></h2>
72-
<p>This is the summary of the first post.</p>
73-
</article>
74-
<article class="post">
75-
<h2><a href="/post/2">Second Post</a></h2>
76-
<p>This is the summary of the second post.</p>
77-
</article>
78-
</div>
79-
```
80-
81-
**What we see:** Each article is wrapped in `<article class="post">`, titles are in `<h2><a>` tags, and descriptions are in `<p>` tags.
82-
83-
### Step 2: Create Your Config File
84-
85-
Create a new text file and save it as `my-blog.yml` (or any name you like). Add this basic information:
69+
**Step 2:** Create a file called `example.com.yml` with this basic structure:
8670

8771
```yaml
88-
# my-blog.yml
8972
channel:
9073
url: https://example.com/blog
91-
title: My Awesome Blog
92-
description: The latest news from my awesome blog.
93-
```
94-
95-
This tells html2rss: "Look at this website and call the feed 'My Awesome Blog'"
74+
title: My Blog
9675
97-
### Step 3: Tell html2rss What to Find
98-
99-
Now add the selectors that tell html2rss exactly what content to extract:
100-
101-
```yaml
102-
# my-blog.yml
10376
selectors:
10477
items:
10578
selector: "article.post"
10679
title:
10780
selector: "h2 a"
10881
link:
10982
selector: "h2 a"
110-
description:
111-
selector: "p"
83+
attribute: href
11284
```
11385

114-
**What this means:**
86+
**Step 3:** Test it with the [web app](/web-application/) or [Ruby gem](/ruby-gem/installation).
11587

116-
- `items: "article.post"` = "Find each article with class 'post'"
117-
- `title: "h2 a"` = "Get the title from the h2 link"
118-
- `link: "h2 a"` = "Get the link from the same h2 link"
119-
- `description: "p"` = "Get the description from the paragraph"
88+
**Need help?** See our [detailed tutorial](/ruby-gem/tutorials/your-first-feed/) or [troubleshooting guide](/support/troubleshooting).
12089

12190
---
12291

123-
## Advanced Techniques
92+
## Troubleshooting
12493

125-
### Dynamic Feeds with Parameters
94+
**Common issues:**
95+
- **No items found?** Check your selectors with browser tools (F12)
96+
- **Invalid YAML?** Use spaces, not tabs
97+
- **Website not loading?** Check the URL
12698

127-
Use the `parameters` block to create flexible configs. This is useful for feeds based on search terms, categories, or regions.
99+
**Need more help?** See our [troubleshooting guide](/support/troubleshooting) or ask in [GitHub Discussions](https://github.com/orgs/html2rss/discussions).
128100

129-
```yaml
130-
# news-search.yml
131-
parameters:
132-
query:
133-
type: string
134-
default: "technology"
101+
---
135102

136-
channel:
137-
url: "https://news.example.com/search?q={query}"
138-
title: "News results for '{query}'"
103+
## Advanced Features
139104

140-
selectors:
141-
items:
142-
selector: ".article"
143-
title:
144-
selector: "h2 a"
145-
url:
146-
selector: "h2 a"
147-
extractor: "href"
148-
```
105+
**Dynamic parameters, custom headers, and more:** See our [advanced features guide](/ruby-gem/how-to/advanced-features/).
149106

150107
---
151108

152-
## Contributing Your Config
153-
154-
Have you created a config that others might find useful? We strongly encourage you to contribute it to the project! By sharing your config, you make it available to all users of the public `html2rss-web` service and the Feed Directory.
109+
## Contributing
155110

156-
To contribute, please [create a pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) to the `html2rss-configs` repository.
111+
**Share your config with the community:**
157112

158-
---
113+
1. Go to [html2rss-configs on GitHub](https://github.com/html2rss/html2rss-configs)
114+
2. Click "Fork" → "Add file" → Create `domain.com.yml`
115+
3. Paste your config → "Commit new file" → "Open pull request"
159116

160-
## Usage and Integration
117+
**Need help?** See our [contribution guide](https://github.com/html2rss/html2rss-configs/blob/main/CONTRIBUTING.md).
161118

162-
### With `html2rss-web`
119+
---
163120

164-
Once your pull request is reviewed and merged, your config will become available on the public [`html2rss-web`](/web-application/) instance. You can then access it at the path `/<domainname.tld/path>.rss`.
121+
## Next Steps
165122

166-
### Programmatic Usage in Ruby
123+
**🎉 Congratulations!** You've learned the basics of creating html2rss configuration files.
167124

168-
You can also use `html2rss-configs` programmatically in your Ruby applications.
125+
### What's Next?
169126

170-
Add this to your Gemfile:
127+
**For Beginners:**
128+
- **[Browse the Feed Directory](/feed-directory/)** - See real-world examples
129+
- **[Try html2rss-web](/web-application/getting-started)** - Create feeds without coding
130+
- **[Learn more about selectors](/ruby-gem/reference/selectors/)** - Master CSS selectors
171131

172-
```ruby
173-
gem 'html2rss-configs', git: 'https://github.com/html2rss/html2rss-configs.git'
174-
```
132+
**For Contributors:**
133+
- **[Submit your config via GitHub Web](https://github.com/html2rss/html2rss-configs)** - No Git knowledge required!
134+
- **[Browse existing configs](https://github.com/html2rss/html2rss-configs/tree/master/lib/html2rss/configs)** - See real examples
135+
- **[Join discussions](https://github.com/orgs/html2rss/discussions)** - Connect with other users
175136

176-
And use it in your code:
137+
**For Developers:**
138+
- **[Ruby Gem Documentation](/ruby-gem/)** - Full API reference
139+
- **[Advanced Features](/ruby-gem/how-to/advanced-features/)** - Learn advanced techniques
140+
- **[Custom HTTP Requests](/ruby-gem/how-to/custom-http-requests/)** - Handle complex scenarios
177141

178-
```ruby
179-
require 'html2rss/configs'
142+
### Need More Help?
180143

181-
config = Html2rss::Configs.find_by_name('domainname.tld/whatever')
182-
rss = Html2rss.feed(config)
183-
```
144+
- **[Support Center](/support/)** - Get help with common issues
145+
- **[Community Forum](https://github.com/html2rss/html2rss-configs/discussions)** - Ask questions and share ideas
146+
- **[Report Issues](https://github.com/html2rss/html2rss-configs/issues)** - Found a bug? Let us know!

src/content/docs/index.mdx

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,31 +5,37 @@ description: "html2rss brings back RSS. It is an open source project with decent
55

66
Ever wished you could follow your favorite websites like a social media feed? The html2rss project makes it possible by creating RSS feeds for any website - even ones that don't offer them.
77

8-
[**🚀 Get Started with html2rss-web**](/web-application/getting-started)
9-
108
---
119

12-
## What is RSS?
10+
## Why Use RSS Feeds?
11+
12+
Instead of visiting 20 different websites every day, you can:
1313

14-
RSS (Really Simple Syndication) lets you follow websites in your favorite feed reader. Instead of checking multiple websites daily, you get all updates in one place - like a personalized news feed.
14+
- **Get all updates in one place** - your feed reader
15+
- **Never miss new content** - automatic notifications
16+
- **Save time** - no more manual checking
17+
- **Stay organized** - categorize and filter content
1518

16-
## The html2rss Project
19+
---
1720

18-
The html2rss project provides two main ways to create RSS feeds:
21+
## What is html2rss?
1922

20-
- **html2rss-web** - A user-friendly web application (recommended for most users)
21-
- **html2rss** - A Ruby gem for developers and advanced users
23+
html2rss is a user-friendly web application that turns any website into an RSS feed. Think of it as a translator that converts website content into a format your feed reader can understand.
2224

23-
Both use the same powerful engine to extract content from websites and convert it into RSS feeds.
25+
**Two ways to use html2rss:**
26+
- **html2rss-web** - Easy-to-use web application (recommended for most users)
27+
- **html2rss Ruby gem** - For developers and advanced users
2428

2529
---
2630

27-
## Choose Your Path
31+
## Quick Start
2832

29-
- **[html2rss-web](/web-application):** **Start here!** Easy-to-use web application. No technical knowledge required.
30-
- **[Feed Directory](/feed-directory/):** Browse ready-made feeds for popular websites
31-
- **[html2rss (Ruby Gem)](/ruby-gem):** For developers who want to create custom configurations
33+
**Option 1: Browse Ready-Made Feeds (Easiest)**
34+
1. **[Feed Directory](/feed-directory/)** - See what's already available
35+
2. **Copy the RSS URL** and add it to your feed reader
3236

33-
---
37+
**Option 2: Create Your Own Feeds**
38+
1. **[Try html2rss-web](/web-application/getting-started)** - No technical knowledge required
39+
2. **[Install your own instance](/web-application/installation)** - For advanced users
3440

35-
**Ready to get started?** Check out our [html2rss-web getting started guide](/web-application/getting-started) or [browse existing feeds](/feed-directory/) to see what's possible.
41+
**New to RSS?** Start with the [Feed Directory](/feed-directory/) to see examples, then try [html2rss-web](/web-application/getting-started) to create your own feeds.

src/content/docs/ruby-gem/reference/auto-source.mdx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,3 +52,7 @@ auto_source:
5252
keep_different_domain: false # default: true
5353
min_words_title: 4 # default: 3
5454
```
55+
56+
---
57+
58+
For detailed documentation on the Ruby API, see the [official YARD documentation](https://www.rubydoc.info/gems/html2rss).

src/content/docs/ruby-gem/reference/channel.mdx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,7 @@ channel:
2727
| `ttl` | Optional | The "time to live" for the feed in minutes. Defaults to the `max-age` from the response headers, or `360`. |
2828
| `language` | Optional | The language of the feed. Defaults to the `lang` attribute of the `<html>` tag. |
2929
| `time_zone` | Optional | The time zone for parsing dates. See the [list of tz database time zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). |
30+
31+
---
32+
33+
For detailed documentation on the Ruby API, see the [official YARD documentation](https://www.rubydoc.info/gems/html2rss).

src/content/docs/ruby-gem/reference/headers.mdx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,7 @@ headers:
1919
## Dynamic Parameters
2020
2121
You can also use dynamic parameters in your headers to pass values at runtime. See [Dynamic Parameters](/ruby-gem/how-to/dynamic-parameters) for more information.
22+
23+
---
24+
25+
For detailed documentation on the Ruby API, see the [official YARD documentation](https://www.rubydoc.info/gems/html2rss).

src/content/docs/ruby-gem/reference/selectors.mdx

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -52,16 +52,16 @@ Available options:
5252

5353
While you can define any named selector, only the following are used in the final RSS feed:
5454

55-
| RSS 2.0 Tag | `html2rss` Name |
56-
| ------------- | --------------- | ------------------------------ |
57-
| `title` | `title` |
58-
| `description` | `description` |
59-
| `link` | `url` |
60-
| `author` | `author` |
61-
| `category` | `categories` |
62-
| `guid` | `guid` |
63-
| `enclosure` | `enclosure` |
64-
| `pubDate` | `published_at` |
55+
| RSS 2.0 Tag | `html2rss` Name | Notes |
56+
| ------------- | --------------- | ----- |
57+
| `title` | `title` | |
58+
| `description` | `description` | |
59+
| `link` | `url` | |
60+
| `author` | `author` | |
61+
| `category` | `categories` | |
62+
| `guid` | `guid` | |
63+
| `enclosure` | `enclosure` | |
64+
| `pubDate` | `published_at` | |
6565
| `comments` | `comments` | ⚠️ _Not currently implemented_ |
6666

6767
## Selector Options
@@ -149,3 +149,7 @@ selectors:
149149
attribute: "src"
150150
content_type: "audio/mp3"
151151
```
152+
153+
---
154+
155+
For detailed documentation on the Ruby API, see the [official YARD documentation](https://www.rubydoc.info/gems/html2rss).

src/content/docs/ruby-gem/reference/strategy.mdx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,3 +45,7 @@ BROWSERLESS_IO_API_TOKEN="6R0W53R135510"
4545
# Use the browserless strategy
4646
html2rss feed --strategy=browserless my_config.yml
4747
```
48+
49+
---
50+
51+
For detailed documentation on the Ruby API, see the [official YARD documentation](https://www.rubydoc.info/gems/html2rss).

src/content/docs/ruby-gem/reference/stylesheets.mdx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,7 @@ stylesheets:
2323
2424
- [How to Format RSS with CSS](https://www.lifewire.com/how-to-format-rss-3469302)
2525
- [XSLT: Extensible Stylesheet Language Transformations](https://developer.mozilla.org/en-US/docs/Web/XSLT)
26+
27+
---
28+
29+
For detailed documentation on the Ruby API, see the [official YARD documentation](https://www.rubydoc.info/gems/html2rss).

0 commit comments

Comments
 (0)