Skip to content

Commit 4a6f957

Browse files
committed
i like to move it, i like to move it move-it …
1 parent 8f3533e commit 4a6f957

File tree

182 files changed

+30210
-1762
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

182 files changed

+30210
-1762
lines changed

.gitignore

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,21 @@
1-
_data/configs.yml
2-
_site
3-
.jekyll-cache
4-
.jekyll-metadata
5-
.sass-cache
6-
node_modules
1+
# build output
2+
dist/
3+
# generated types
4+
.astro/
5+
6+
# dependencies
77
node_modules/
8-
vendor
8+
9+
# logs
10+
npm-debug.log*
11+
yarn-debug.log*
12+
yarn-error.log*
13+
pnpm-debug.log*
14+
15+
16+
# environment variables
17+
.env
18+
.env.production
19+
20+
# macOS-specific files
21+
.DS_Store

Gemfile

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# frozen_string_literal: true
2+
3+
source 'https://rubygems.org'
4+
5+
gem 'html2rss', git: 'https://github.com/html2rss/html2rss.git'
6+
gem 'html2rss-configs', git: 'https://github.com/html2rss/html2rss-configs.git'

Gemfile.lock

Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
GIT
2+
remote: https://github.com/html2rss/html2rss-configs.git
3+
revision: c8799e7f19b12913986b1cf7e534b6d0c145c62a
4+
specs:
5+
html2rss-configs (0.2.0)
6+
html2rss
7+
8+
GIT
9+
remote: https://github.com/html2rss/html2rss.git
10+
revision: 252289759287d5f0d7251a958d12a72ceebc27d6
11+
specs:
12+
html2rss (0.17.0)
13+
addressable (~> 2.7)
14+
dry-validation
15+
faraday (> 2.0.1, < 3.0)
16+
faraday-follow_redirects
17+
kramdown
18+
mime-types (> 3.0)
19+
nokogiri (>= 1.10, < 2.0)
20+
parallel
21+
puppeteer-ruby
22+
regexp_parser
23+
reverse_markdown (~> 3.0)
24+
rss
25+
sanitize
26+
thor
27+
tzinfo
28+
zeitwerk
29+
30+
GEM
31+
remote: https://rubygems.org/
32+
specs:
33+
addressable (2.8.7)
34+
public_suffix (>= 2.0.2, < 7.0)
35+
base64 (0.3.0)
36+
bigdecimal (3.2.3)
37+
concurrent-ruby (1.3.5)
38+
crass (1.0.6)
39+
dry-configurable (1.3.0)
40+
dry-core (~> 1.1)
41+
zeitwerk (~> 2.6)
42+
dry-core (1.1.0)
43+
concurrent-ruby (~> 1.0)
44+
logger
45+
zeitwerk (~> 2.6)
46+
dry-inflector (1.2.0)
47+
dry-initializer (3.2.0)
48+
dry-logic (1.6.0)
49+
bigdecimal
50+
concurrent-ruby (~> 1.0)
51+
dry-core (~> 1.1)
52+
zeitwerk (~> 2.6)
53+
dry-schema (1.14.1)
54+
concurrent-ruby (~> 1.0)
55+
dry-configurable (~> 1.0, >= 1.0.1)
56+
dry-core (~> 1.1)
57+
dry-initializer (~> 3.2)
58+
dry-logic (~> 1.5)
59+
dry-types (~> 1.8)
60+
zeitwerk (~> 2.6)
61+
dry-types (1.8.3)
62+
bigdecimal (~> 3.0)
63+
concurrent-ruby (~> 1.0)
64+
dry-core (~> 1.0)
65+
dry-inflector (~> 1.0)
66+
dry-logic (~> 1.4)
67+
zeitwerk (~> 2.6)
68+
dry-validation (1.11.1)
69+
concurrent-ruby (~> 1.0)
70+
dry-core (~> 1.1)
71+
dry-initializer (~> 3.2)
72+
dry-schema (~> 1.14)
73+
zeitwerk (~> 2.6)
74+
faraday (2.13.4)
75+
faraday-net_http (>= 2.0, < 3.5)
76+
json
77+
logger
78+
faraday-follow_redirects (0.3.0)
79+
faraday (>= 1, < 3)
80+
faraday-net_http (3.4.1)
81+
net-http (>= 0.5.0)
82+
json (2.13.2)
83+
kramdown (2.5.1)
84+
rexml (>= 3.3.9)
85+
logger (1.7.0)
86+
mime-types (3.7.0)
87+
logger
88+
mime-types-data (~> 3.2025, >= 3.2025.0507)
89+
mime-types-data (3.2025.0909)
90+
net-http (0.6.0)
91+
uri
92+
nokogiri (1.18.9-aarch64-linux-gnu)
93+
racc (~> 1.4)
94+
nokogiri (1.18.9-aarch64-linux-musl)
95+
racc (~> 1.4)
96+
nokogiri (1.18.9-arm-linux-gnu)
97+
racc (~> 1.4)
98+
nokogiri (1.18.9-arm-linux-musl)
99+
racc (~> 1.4)
100+
nokogiri (1.18.9-arm64-darwin)
101+
racc (~> 1.4)
102+
nokogiri (1.18.9-x86_64-darwin)
103+
racc (~> 1.4)
104+
nokogiri (1.18.9-x86_64-linux-gnu)
105+
racc (~> 1.4)
106+
nokogiri (1.18.9-x86_64-linux-musl)
107+
racc (~> 1.4)
108+
parallel (1.27.0)
109+
public_suffix (6.0.2)
110+
puppeteer-ruby (0.45.6)
111+
concurrent-ruby (>= 1.1, < 1.4)
112+
mime-types (>= 3.0)
113+
websocket-driver (>= 0.6.0)
114+
racc (1.8.1)
115+
regexp_parser (2.11.2)
116+
reverse_markdown (3.0.0)
117+
nokogiri
118+
rexml (3.4.4)
119+
rss (0.3.1)
120+
rexml
121+
sanitize (7.0.0)
122+
crass (~> 1.0.2)
123+
nokogiri (>= 1.16.8)
124+
thor (1.4.0)
125+
tzinfo (2.0.6)
126+
concurrent-ruby (~> 1.0)
127+
uri (1.0.3)
128+
websocket-driver (0.8.0)
129+
base64
130+
websocket-extensions (>= 0.1.0)
131+
websocket-extensions (0.1.5)
132+
zeitwerk (2.7.3)
133+
134+
PLATFORMS
135+
aarch64-linux-gnu
136+
aarch64-linux-musl
137+
arm-linux-gnu
138+
arm-linux-musl
139+
arm64-darwin
140+
x86_64-darwin
141+
x86_64-linux-gnu
142+
x86_64-linux-musl
143+
144+
DEPENDENCIES
145+
html2rss!
146+
html2rss-configs!
147+
148+
BUNDLED WITH
149+
2.7.1

README.md

Lines changed: 180 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,187 @@
1-
# html2rss.github.io
1+
# html2rss Documentation
22

3-
This repository hosts the documentation and website for `html2rss`, a tool for creating RSS feeds from any website.
3+
The official documentation website for html2rss, built with Astro Starlight for modern performance and developer experience.
44

5-
## 🌐 Community & Resources
5+
## 🚀 Features
66

7-
| Resource | Description | Link |
8-
| ------------------------------------- | ----------------------------------------------------------- | ------------------------------------------------------------------ |
9-
| **📚 Documentation & Feed Directory** | Complete guides, tutorials, and browse 100+ pre-built feeds | [html2rss.github.io](https://html2rss.github.io) |
10-
| **💬 Community Discussions** | Get help, share ideas, and connect with other users | [GitHub Discussions](https://github.com/orgs/html2rss/discussions) |
11-
| **📋 Project Board** | Track development progress and upcoming features | [View Project Board](https://github.com/orgs/html2rss/projects) |
12-
| **💖 Support Development** | Help fund ongoing development and maintenance | [Sponsor on GitHub](https://github.com/sponsors/gildesmarais) |
7+
- **Modern Documentation**: Built with Astro Starlight for better performance and developer experience
8+
- **Interactive Feed Directory**: Fully functional with search, filtering, and parameter configuration
9+
- **Progressive Enhancement**: Works without JavaScript, enhanced with Alpine.js
10+
- **Dark Theme**: Integrated with Starlight's theme system
11+
- **GitHub Integration**: Edit links and social links
12+
- **Analytics**: GoatCounter integration
13+
- **SEO Optimized**: Meta tags, sitemap, and search indexing
1314

14-
**Quick Start Options:**
15+
## 📁 Project Structure
1516

16-
- **New to RSS?** → Start with the [web application](https://html2rss.github.io/web-application)
17-
- **Ruby Developer?** → Check out the [Ruby gem documentation](https://html2rss.github.io/ruby-gem)
18-
- **Need a specific feed?** → Browse the [feed directory](https://html2rss.github.io/feed-directory)
19-
- **Want to contribute?** → See our [contributing guide](https://html2rss.github.io/get-involved/contributing)
17+
```
18+
html2rss.github.io/
19+
├── src/
20+
│ ├── content/docs/ # Documentation content (MDX)
21+
│ ├── components/ # Astro components
22+
│ │ └── FeedDirectory.astro # Interactive feed directory
23+
│ ├── data/ # Data files
24+
│ │ ├── configs.json # Generated feed configurations
25+
│ │ └── loadConfigs.ts # Data loader
26+
│ └── assets/ # Static assets
27+
├── bin/
28+
│ └── data-update # Script to update feed data
29+
├── public/ # Public assets
30+
├── .github/workflows/ # CI/CD workflows
31+
└── Gemfile # Ruby dependencies for data updates
32+
```
2033

21-
## Contributing
34+
## 🛠️ Development
2235

23-
Contributions are welcome! See our [Get Involved page](https://html2rss.github.io/get-involved) for details on discussions, reporting issues, and contributing.
36+
### Prerequisites
37+
38+
- Node.js 22+
39+
- Ruby 3.3+
40+
- npm/yarn
41+
42+
### Setup
43+
44+
1. **Install Node.js dependencies:**
45+
```bash
46+
npm install
47+
```
48+
49+
2. **Install Ruby dependencies:**
50+
```bash
51+
bundle install
52+
```
53+
54+
3. **Update feed data:**
55+
```bash
56+
npm run update-data
57+
```
58+
59+
4. **Start development server:**
60+
```bash
61+
npm run dev
62+
```
63+
64+
### Available Scripts
65+
66+
- `npm run dev` - Start development server
67+
- `npm run build` - Build for production
68+
- `npm run preview` - Preview production build
69+
- `npm run update-data` - Update feed configurations from html2rss-configs
70+
- `npm run build:full` - Update data and build
71+
72+
## 📊 Data Management
73+
74+
The feed directory data is automatically generated from the `html2rss-configs` gem:
75+
76+
1. **Source**: `html2rss-configs` gem (latest commit from GitHub)
77+
2. **Generation**: `bin/data-update` script processes the gem's configs
78+
3. **Output**: `src/data/configs.json` (clean JSON format)
79+
4. **Usage**: Loaded by `src/data/loadConfigs.ts` in the FeedDirectory component
80+
81+
### Data Update Process
82+
83+
The `bin/data-update` script:
84+
- Fetches all config files from the `html2rss-configs` gem
85+
- Extracts metadata (domain, name, parameters, etc.)
86+
- Converts to clean JSON format (no parsing issues)
87+
- Generates `src/data/configs.json`
88+
89+
## 🚀 Deployment
90+
91+
### GitHub Pages (CI/CD)
92+
93+
The site is automatically deployed via GitHub Actions:
94+
95+
1. **Trigger**: Push to `main` branch
96+
2. **Process**:
97+
- Install Ruby dependencies
98+
- Run `bin/data-update` to update feed data
99+
- Install Node.js dependencies
100+
- Build Astro site
101+
- Deploy to GitHub Pages
102+
103+
### Manual Deployment
104+
105+
```bash
106+
# Update data and build
107+
npm run build:full
108+
109+
# Deploy the dist/ folder to your hosting provider
110+
```
111+
112+
## 🔧 Configuration
113+
114+
### Astro Configuration
115+
116+
Key settings in `astro.config.mjs`:
117+
- Site URL and base path
118+
- Starlight integration with custom head elements
119+
- GitHub social links and edit URLs
120+
- Sidebar navigation structure
121+
122+
### Feed Directory
123+
124+
The interactive Feed Directory (`src/components/FeedDirectory.astro`):
125+
- Uses Alpine.js for interactivity
126+
- Loads data from `src/data/configs.yml`
127+
- Provides search and filtering
128+
- Shows parameter forms for dynamic feeds
129+
- Generates RSS URLs and GitHub edit links
130+
131+
## 📝 Content Migration
132+
133+
All content has been migrated from Jekyll to Astro Starlight:
134+
135+
- **Markdown → MDX**: Converted all `.md` files to `.mdx`
136+
- **Frontmatter**: Updated to Starlight format
137+
- **URLs**: Updated relative links
138+
- **Images**: Migrated to `public/assets/images/`
139+
- **Components**: Recreated Jekyll components as Astro components
140+
141+
## 🎨 Styling
142+
143+
- **Theme**: Uses Starlight's built-in theme system
144+
- **Colors**: HSL color variables for dark/light mode compatibility
145+
- **Components**: Custom CSS for Feed Directory integrated with Starlight
146+
- **Responsive**: Mobile-friendly design
147+
148+
## 🔍 Search
149+
150+
- **Engine**: Pagefind (integrated with Starlight)
151+
- **Indexing**: Automatic during build
152+
- **Features**: Full-text search across all documentation
153+
154+
## 📈 Analytics
155+
156+
- **Provider**: GoatCounter
157+
- **Integration**: Script added to `astro.config.mjs`
158+
- **Privacy**: No cookies, GDPR compliant
159+
160+
## 🐛 Troubleshooting
161+
162+
### Common Issues
163+
164+
1. **Data not loading**: Run `npm run update-data` to regenerate configs
165+
2. **Build errors**: Check for JSON syntax issues in generated data
166+
3. **Styling issues**: Ensure CSS uses Starlight's color variables
167+
168+
### Development Tips
169+
170+
- Use `npm run build:full` to test the complete build process
171+
- Check `src/data/configs.json` for data issues
172+
- Use browser dev tools to debug Alpine.js components
173+
174+
## 📚 Migration Notes
175+
176+
This migration preserves all functionality from the original Jekyll site:
177+
178+
- ✅ All content migrated
179+
- ✅ Feed Directory fully functional
180+
- ✅ Search and navigation working
181+
- ✅ GitHub integration maintained
182+
- ✅ Analytics preserved
183+
- ✅ SEO optimization maintained
184+
- ✅ Progressive enhancement working
185+
- ✅ Dark theme support
186+
187+
The new Astro Starlight version provides better performance, modern tooling, and improved developer experience while maintaining full backward compatibility.

0 commit comments

Comments
 (0)