Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lukehsiao/openring-rs
:chains: a webring for static site generators written in Rust
https://github.com/lukehsiao/openring-rs
atom openring rss rust static-site webring
Last synced: about 3 hours ago
JSON representation
:chains: a webring for static site generators written in Rust
- Host: GitHub
- URL: https://github.com/lukehsiao/openring-rs
- Owner: lukehsiao
- License: other
- Created: 2022-08-05T02:50:25.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-11-11T15:14:29.000Z (5 days ago)
- Last Synced: 2024-11-11T16:25:48.634Z (5 days ago)
- Topics: atom, openring, rss, rust, static-site, webring
- Language: Rust
- Homepage: https://luke.hsiao.dev/blog/openring-rs/
- Size: 330 KB
- Stars: 16
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
README
⛓
openring-rs
A tool for generating a webring from Atom/RSS feeds.
`openring-rs` is a tool for generating a webring from Atom/RSS feeds, so you can populate a template with articles from those feeds and embed them in your own blog. An example template is provided in `in.html`.
This is a rust-port of Drew DeVault's [openring](https://git.sr.ht/~sircmpwn/openring), with the primary differences being:
- we respect throttling and send conditional requests when using `--cache` (recommended!)
- the template is written using [Tera](https://keats.github.io/tera/) and is provided as an argument, not read from stdin
- we show a little progress bar
- we fetch all feeds concurrently
- we provide better error messages (via [miette](https://github.com/zkat/miette))
- we allow filtering feeds with `--before`## Demo
To see this in action, you can look at the footer of this blog post.
## Install
```
cargo install --locked openring
```## Usage
```
A webring for static site generators written in RustUsage: openring [OPTIONS] --template-file
Options:
-n, --num-articles Total number of articles to fetch [default: 3]
-p, --per-source Number of most recent articles to get from each feed [default: 1]
-S, --url-file File with URLs of Atom/RSS feeds to read (one URL per line, lines starting with '#' or "//" are ignored)
-t, --template-file Tera template file
-s, --url A single URL to consider (can be repeated to specify multiple)
-b, --before Only include articles before this date (in YYYY-MM-DD format)
-c, --cache Use request cache stored on disk at `.openringcache`
--max-cache-age Discard all cached requests older than this duration [default: 14d]
-v, --verbose... Increase logging verbosity
-q, --quiet... Decrease logging verbosity
-h, --help Print help (see more with '--help')
-V, --version Print version
```## Using Tera Templates
The templates supported by `openring-rs` are written using [Tera](https://keats.github.io/tera/).
Please refer to the Tera documentation for details.## Why a Rust Port?
Just for fun.