Giter Club home page Giter Club logo

webring-opml's Introduction

Webri.ng OPML generator

Module type: ESM Types in JS js-semistandard-style Follow @voxpelli@mastodon.social

Generates and publishes OPML feeds for webrings on webri.ng

Current webrings

How to use an OPML file

Manually import it into your feed reader

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.

Subscribe to it in your feed reader

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.

Skärmavbild 2023-06-24 kl  15 44 03

Technical details

Generation

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.

GitHub Actions workflow

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

webring-opml's People

Contributors

renovate[bot] avatar voxpelli avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

webring-opml's Issues

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

github-actions
.github/workflows/gh-pages.yml
  • actions/checkout v4
  • actions/setup-node v4
  • actions/configure-pages v3
  • actions/upload-pages-artifact v2
  • actions/deploy-pages v3
.github/workflows/lint.yml
.github/workflows/nodejs.yml
npm
package.json
  • cheerio ^1.0.0-rc.12
  • got ^13.0.0
  • @voxpelli/eslint-config ^19.0.0
  • @voxpelli/tsconfig ^9.0.0
  • eslint ^8.51.0
  • eslint-plugin-es-x ^7.2.0
  • eslint-plugin-import ^2.28.1
  • eslint-plugin-jsdoc ^46.8.2
  • eslint-plugin-mocha ^10.2.0
  • eslint-plugin-n ^16.2.0
  • eslint-plugin-promise ^6.1.1
  • eslint-plugin-security ^1.7.1
  • eslint-plugin-sort-destructure-keys ^1.5.0
  • eslint-plugin-unicorn ^48.0.1
  • husky ^8.0.3
  • installed-check ^8.0.0
  • knip ^2.35.0
  • npm-run-all2 ^6.1.1
  • typescript ~5.2.2
  • node >=18.0.0

  • Check this box to trigger a request for Renovate to run again on this repository

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.