OPML Generator has 2 ways to convert TOML to OPML.
-
Prepare your TOML file (Reference: feeds.toml)
-
Run this command
deno run -A jsr:@5ouma/opml-generator
-
Outputs are stored in the
outputs
directory separated bylists
-
Create two GitHub Gist:
- includes
feeds.toml
- for outputs
- includes
-
Prepare your repository to run
-
Add Actions secrets from
Settings > Secrets and variables | Actions
in the sidebar -
Add this workflow file to
.github/workflows
:name: β¬οΈ Update OPML in Gist on: schedule: [cron: 0 0 * * *] workflow_dispatch: jobs: Update: runs-on: Ubuntu-Latest steps: - name: π¦ Setup Deno uses: denoland/setup-deno@v1 with: deno-version: v1.x - name: β¬οΈ Download the TOML and OPML repository run: | git clone "https://gist.github.com/${{ secrets.TOML_GIST_ID }}.git" feeds git clone "https://gist.github.com/${{ secrets.OPML_GIST_ID }}.git" outputs - name: π§° Generate OPML file run: deno run -A jsr:@5ouma/opml-generator --feeds=./feeds/feeds.toml --outputs=./outputs - name: β¬οΈ Upload OPML file env: GH_TOKEN: ${{ secrets.TOKEN }} run: | git -C 'outputs' add -AN while read -r file; do gh gist edit ${{ secrets.OPML_GIST_ID }} "./outputs/$file" -a "./outputs/$file" done < <(git -C 'outputs' diff --name-only HEAD)
π Automatically update every 0 a.m. UTC
Name | Description | GitHub Actions requires |
---|---|---|
TOML_GIST_ID |
Gist ID for feeds.toml |
yes |
OPML_GIST_ID |
Gist ID for outputs | yes |
TOKEN |
Personal Access Token | yes |
NITTER_DOMAIN |
Nitter RSS domain | no |
For Inoreader, please see the official blog, OPML subscriptions.
For other RSS readers, please see each help page.
β οΈ Issues: Feature Requests or Bug Reports- π¬ Discussions: General Chats or Questions
- π‘οΈ Security Advisories: Security Issues that should not be public
I happily welcome your contributions! Before you contribute, I would recommend reading CONTRIBUTING.md for a better development experience.