https://github.com/5ouma/opml-generator
📰 Generate OPML file via TOML file easily
https://github.com/5ouma/opml-generator
deno gist github-actions jsr opml rss toml typescript
Last synced: 3 months ago
JSON representation
📰 Generate OPML file via TOML file easily
- Host: GitHub
- URL: https://github.com/5ouma/opml-generator
- Owner: 5ouma
- License: mit
- Created: 2024-02-14T08:30:12.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2026-03-08T23:23:38.000Z (3 months ago)
- Last Synced: 2026-03-08T23:23:46.642Z (3 months ago)
- Topics: deno, gist, github-actions, jsr, opml, rss, toml, typescript
- Language: TypeScript
- Homepage: https://jsr.io/@5ouma/opml-generator
- Size: 507 KB
- Stars: 3
- Watchers: 0
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Security: .github/SECURITY.md
Awesome Lists containing this project
README
OPML Generator
**📰 Generate OPML file via TOML file easily**
[](https://github.com/5ouma/opml-generator/releases)
[](https://jsr.io/@5ouma/opml-generator)
[](https://jsr.io/@5ouma/opml-generator)
[](https://github.com/5ouma/opml-generator/actions/workflows/ci.yml)
[](https://github.com/5ouma/opml-generator/actions/workflows/release.yml)
[](https://github.com/5ouma/opml-generator/actions/workflows/pre-commit.yml)
[](https://codecov.io/github/5ouma/opml-generator)

## 📊 Usage
OPML Generator has 2 ways to convert TOML to OPML.
### 💻 On Local
1. Prepare your TOML file (Reference: [`feeds.toml`])
2. Run this command
```she
deno run -A jsr:@5ouma/opml-generator
```
3. Outputs are stored in the `outputs` directory separated by `lists`
### 🐙 On GitHub Actions
1. Create two [GitHub Gist](https://gist.github.com):
- includes [`feeds.toml`]
- for outputs
2. Prepare your repository to run
3. Add Actions secrets from `Settings > Secrets and variables | Actions` in the
sidebar
> [🌍 Environment Variables](#-environment-variables)
4. Use this template in your workflow file
```yml
jobs:
job:
runs-on: Ubuntu-Latest
steps:
- uses: 5ouma/opml-generator@v1.1.1
with:
username: ${{ github.repository_owner }}
feeds: ${{ secrets.FEEDS_GIST_ID }}
outputs: ${{ secrets.OUTPUTS_GIST_ID }}
token: ${{ secrets.TOKEN }}
```
## 🌍 Environment Variables
| Name | Description | GitHub Actions requires |
| :---------------: | :------------------------: | :---------------------: |
| `FEEDS_GIST_ID` | Gist ID for [`feeds.toml`] | yes |
| `OUTPUTS_GIST_ID` | Gist ID for outputs | yes |
| `TOKEN` | [Personal Access Token] | yes |
| `NITTER_DOMAIN` | Nitter RSS domain | no |
[`feeds.toml`]: ./docs/assets/example/feeds.toml
[Personal Access Token]: https://github.com/settings/tokens/new?description=OPML%20Generator&scopes=gist
## 🗞️ Subscribe OPML
For Inoreader, please see the official blog,
[**OPML subscriptions**](https://www.inoreader.com/blog/2014/05/opml-subscriptions.html).
For other RSS readers, please see each help page.
## 🆘 Help
- [**⚠️ Issues**]: Feature Requests or Bug Reports
- [**💬 Discussions**]: General Chats or Questions
- [**🛡️ Security Advisories**]: Security Issues that should not be public
[**⚠️ Issues**]: https://github.com/5ouma/opml-generator/issues/new/choose
[**💬 Discussions**]: https://github.com/5ouma/opml-generator/discussions/new/choose
[**🛡️ Security Advisories**]: https://github.com/5ouma/opml-generator/security/advisories/new
## 🎽 Contributing
I happily welcome your contributions! Before you contribute, I would recommend
reading [CONTRIBUTING.md](./.github/CONTRIBUTING.md) for a better development
experience.