This repository automatically generates a daily random xkcd comic and serves it as an RSS feed. Each day, a new comic is fetched, formatted, and made available for subscription. Users can configure RSS feed reader to send email notifications whenever a new comic is available in the feed. It also features a fun xkcd-themed 404 error page that showcases a random comic in a playful layout.
- 🕒 Daily random xkcd comic fetching.
- 📡 Generates an RSS feed that updates with new comic details.
- 🔄 Tracks seen comics to avoid duplicates via
seen_comics.json
. - 🎨 Custom xkcd 404 HTML page showcasing a random comic in a unique format.
- 🕔 Daily Trigger: A GitHub Actions workflow is triggered every day at 8:00 AM UTC+3 to run a Python script (
generate_rss.py
). - 📥 Random Comic Fetch: The script fetches a random comic from the xkcd API, ensuring it hasn't been seen before.
- 📝 XML Generation: Comic details are formatted as XML and saved to
docs/xkcd_feed.xml
. - 🗂️ Seen Comics Tracking: The comics are tracked in
seen_comics.json
to avoid repeats. - 🚀 RSS Hosting: The RSS feed is hosted on GitHub for easy access by RSS web feeds.
- 📧 Email Notifications: RSS feed reader monitors the feed and sends email alerts when a new comic is available.
- 💡 404 Page: A Python script generates an xkcd-themed 404 page with a random comic.
You can use this tool in two ways:
- Subscribe to the Daily Random XKCD RSS Feed.
- Optionally, configure email notifications via RSS feed readers or any other RSS service to receive daily updates whenever a new comic is available.
If you'd like to run your own instance of this tool:
- Fork this repository to your GitHub account.
- Enable GitHub Actions in your forked repository.
- Set up RSS feed reader:
- Create a new RSS feed alert for the URL.
- Configure email notifications based on your preferences.
- Enjoy daily xkcd emails and check the latest comic each day.
- Access the 404 Page whenever you want a random xkcd comic.
-
🚧 404 HTML Page
A beautifully styled 404 page demonstrating an XKCD comic. -
📡 RSS Comic Feed
An RSS feed of random XKCD comics, formatted in XML.
generate_rss.py
: Python script to fetch a random xkcd comic, track seen comics, and generate the RSS feed.generate_html_404_style_xkcd.py
: Python script to generate the random xkcd-themed 404 page.seen_comics.json
: JSON file that tracks comics to prevent repeats.docs/rss/xkcd_feed.xml
: RSS feed with the latest comic details.docs/404/xkcd_404_style.html
: HTML file for the 404 page..github/workflows/update_xkcd_rss_feed.yaml
: GitHub Actions workflow to update the RSS feed daily..github/workflows/update_html_404.yaml
: GitHub Actions workflow to update the 404 page daily.
We plan to expand this project to include other webcomics such as Saturday Morning Breakfast Cereal (SMBC). The vision includes:
- Daily Fetching: Automatically fetching a random SMBC comic each day, similar to the xkcd functionality.
- Separate RSS Feeds: Creating distinct RSS feeds for each comic to cater to different audiences.
- Integration: Providing a unified interface for users to subscribe to multiple comic feeds simultaneously.
- Themed Error Pages: Developing themed 404 pages for each comic style, making the error experience unique and enjoyable.
Stay tuned for updates as we explore these exciting new features!
This project is licensed under the MIT License. See the LICENSE file for more details.
- Thanks to xkcd for their amazing comics.
- Shoutout to GitHub Actions for making automation easy.
- Thanks to Feedrabbit for helping automate RSS-to-email services.
If you have any questions or suggestions, feel free to open an issue in this repository!