{"repo":"llun/feeds","free":true,"listed":false,"github":"https://github.com/llun/feeds","clone":"git clone https://github.com/llun/feeds.git","description":"Pulling website feeds and generate static aggregator site","language":"TypeScript","stars":45,"topics":["feed-reader","feed","rss","static-site"],"license":null,"category":"productivity","readme_excerpt":"Github Action for building static feed aggregator site A GitHub Action that fetches RSS/Atom feeds from an OPML file and builds a static site aggregating all the feed content. This project creates a modern, responsive feed reader as a static site. This action runs on Node.js 24 ( runs.using: node24 ). Usage To use it, create a new repository and add an OPML file named feeds.opml with your list of website RSS/Atom feeds. Create a GitHub workflow like the one below to fetch data and store it in a contents branch: After this, enable GitHub Pages on the contents branch and the content will be available on that page. The action always reads the OPML file from the branch that triggered the workflow (for example main ), then publishes generated output to the configured branch . The two have to be different branches: the published branch is replaced by a history the action owns, so the run stops before it clones rather than publish over the branch it read the feeds from. Images in feed content Images referenced by feed entries are downloaded while the feeds are loaded and published alongside the site under /media , so the reader never hotlinks a publisher's server. This avoids hotlink protection, mixed content and cross-origin resource policy blocking. Images that cannot be downloaded keep their original URL and are rendered with referrerpolicy=\"no-referrer\" . Because feeds are re-read on every run, a publisher that was temporarily unavailable is picked up again on a later run. SVG i","default_branch":null,"files":null,"tree":[],"storefront":"/r/llun","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/llun/feeds/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}