openring

Crates.ioopenring
lib.rsopenring
version0.3.6
sourcesrc
created_at2022-09-17 18:07:16.863809
updated_at2024-10-11 04:47:25.354191
descriptionA webring for static site generators written in Rust
homepagehttps://github.com/lukehsiao/openring-rs
repositoryhttps://github.com/lukehsiao/openring-rs
max_upload_size
id668269
size139,186
Luke Hsiao (lukehsiao)

documentation

README


openring-rs

A tool for generating a webring from Atom/RSS feeds.

Build Status Version License

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, with the primary differences being:

  • we respect throttling and send conditional requests when using --cache (recommended!)
  • the template is written using 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)
  • we allow filtering feeds with --before

Demo

To see this in action, you can look at the footer of this blog post.

https://luke.hsiao.dev/blog/openring-rs/

Install

cargo install --locked openring

Usage

A webring for static site generators written in Rust

Usage: openring [OPTIONS] --template-file <FILE>

Options:
  -n, --num-articles <NUM_ARTICLES>    Total number of articles to fetch [default: 3]
  -p, --per-source <PER_SOURCE>        Number of most recent articles to get from each feed [default: 1]
  -S, --url-file <FILE>                File with URLs of Atom/RSS feeds to read (one URL per line, lines starting with '#' or "//" are ignored)
  -t, --template-file <FILE>           Tera template file
  -s, --url <URL>                      A single URL to consider (can be repeated to specify multiple)
  -b, --before <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 <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. Please refer to the Tera documentation for details.

Why a Rust Port?

Just for fun.

Commit count: 244

cargo fmt