Generates and publishes OPML feeds for webrings on webri.ng
- CSS JOY Webring: https://webring-opml.voxpelli.com/cssjoy.opml
- ...yours? Open an issue / PR!
This is supported by pretty much every feed reader out there. You typically download the OPML file to your computer and then uploads it to the feed reader. See eg. Feedbin's documentation.
This means that its a one time import and you have to yourself download a new OPML file and import it if you want to get access to any new feeds that has been added.
Supported by very few feed readers, but at least supported by one: Inoreader (see announcement post)
Inoreader supports two modes:
- Subscribe only mode
- Full syncronisation mode (that unsubscribes from feeds that are no longer part of the OPML file)
You give it a specific folder in your Inoreader and it will target that one with the OPML and add or sync feeds it finds in the OPML file to that one.
The script pulls the webri.ng:s JSON list of sites for the specific webring: https://webri.ng/webring/cssjoy/sites
It then loops through them all, fetched their respective URL:s and looks for a <link rel="alternate" href="..." />
within the returned HTML (as specified in eg. RSS Autodiscovery and documented in posts across the web).
If any such links are found, the first one is deemed to represent the page and included in the OPML file. If no such link is found, the site will be excluded from the OPML.
Uses a GitHub Actions workflow that's runs daily (+ whenever I push to main
or trigger it manually).
That workflow does two things:
- It calls
cli.js
with the output folder and desired OPML files to build (eg.node cli.js opmls cssjoy
) - It has a GitHub Pages setup that publishes the generated OPML files to GitHub pages
Things that it doesn't do but technically could do:
- Be published as a CLI tool on npm
- Be published as a reusable library on npm