An open API service indexing awesome lists of open source software.

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

Awesome Lists containing this project

README

          

OPML Generator

**📰 Generate OPML file via TOML file easily**


[![GitHub Release](https://img.shields.io/github/v/release/5ouma/opml-generator?label=Release&style=flat-square)](https://github.com/5ouma/opml-generator/releases)
[![JSR](https://jsr.io/badges/@5ouma/opml-generator?style=flat-square)](https://jsr.io/@5ouma/opml-generator)
[![JSR Score](https://jsr.io/badges/@5ouma/opml-generator/score)](https://jsr.io/@5ouma/opml-generator)


[![CI](https://img.shields.io/github/actions/workflow/status/5ouma/opml-generator/ci.yml?label=CI&style=flat-square)](https://github.com/5ouma/opml-generator/actions/workflows/ci.yml)
[![Release](https://img.shields.io/github/actions/workflow/status/5ouma/opml-generator/release.yml?label=Release&style=flat-square)](https://github.com/5ouma/opml-generator/actions/workflows/release.yml)
[![pre-commit](https://img.shields.io/github/actions/workflow/status/5ouma/opml-generator/pre-commit.yml?label=pre-commit&style=flat-square)](https://github.com/5ouma/opml-generator/actions/workflows/pre-commit.yml)
[![codecov](https://codecov.io/github/5ouma/opml-generator/graph/badge.svg)](https://codecov.io/github/5ouma/opml-generator)

![Repobeats Analytics Image](https://repobeats.axiom.co/api/embed/aef561d5f4f31e815fc5a245abe752ac29d5ad01.svg)



## 📊 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.