Add posts/minrss.md
This commit is contained in:
parent
3652c5220c
commit
930ddb648b
@ -43,7 +43,7 @@ img {
|
|||||||
height: auto;
|
height: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
pre, p > code {
|
pre, p > code, li > code {
|
||||||
font-size: 1.5vmin;
|
font-size: 1.5vmin;
|
||||||
font-family: JetBrainsMono, monospace;
|
font-family: JetBrainsMono, monospace;
|
||||||
background: #090909;
|
background: #090909;
|
||||||
|
107
src/posts/minrss.md
Normal file
107
src/posts/minrss.md
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
<!--- date: 2022-03-26 --->
|
||||||
|
|
||||||
|
<!--- title: feed reader --->
|
||||||
|
|
||||||
|
# minrss
|
||||||
|
|
||||||
|
I used to have [newsboat](https://newsboat.org/) as an RSS/Atom feed reader. However, I was looking for a project to do so I made a replacement.
|
||||||
|
|
||||||
|
minrss is intended to be minimal and small.
|
||||||
|
|
||||||
|
It pulls a lot of inspiration from suckless.org's projects like their IRC clients ii and sic too. A structure similar to these projects is used. Each feed is represented as a folder, and each article as files.
|
||||||
|
|
||||||
|
```
|
||||||
|
rss
|
||||||
|
|--news
|
||||||
|
| |--article1
|
||||||
|
| `--article2
|
||||||
|
`--blog
|
||||||
|
|--post
|
||||||
|
`--other_post
|
||||||
|
```
|
||||||
|
## usage
|
||||||
|
|
||||||
|
minrss will inform the user about new articles. If another action should be done for each article, it can be easily patched in, like any suckless software.
|
||||||
|
|
||||||
|
```
|
||||||
|
$ cd ~/dox/rss
|
||||||
|
$ minrss
|
||||||
|
|
||||||
|
Finished downloads.
|
||||||
|
2 new articles for feed news.
|
||||||
|
2 new articles for feed blog.
|
||||||
|
Finished parsing feeds.
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
After being run, there will be a folder for each feed.
|
||||||
|
|
||||||
|
```
|
||||||
|
$ ls
|
||||||
|
news blog
|
||||||
|
```
|
||||||
|
|
||||||
|
I personally use basic shell utilities to list off the new articles.
|
||||||
|
|
||||||
|
```
|
||||||
|
$ ls -t news/ | head -n 2
|
||||||
|
|
||||||
|
article1.html
|
||||||
|
article2.html
|
||||||
|
|
||||||
|
```
|
||||||
|
Since articles are saved as HTML, I then have w3m parse them. minrss will also provide a link to the original site by default, in case the feed only has summaries of articles.
|
||||||
|
|
||||||
|
```
|
||||||
|
$ w3m news/article1.html
|
||||||
|
|
||||||
|
article1
|
||||||
|
|
||||||
|
|
||||||
|
Link
|
||||||
|
|
||||||
|
Loren ipsum dolor sit amet...
|
||||||
|
```
|
||||||
|
Obviously, all this extra work could be condensed into aliases, or patched into the program.
|
||||||
|
|
||||||
|
## installation
|
||||||
|
|
||||||
|
The installation of minrss is similar to suckless software like dwm or st.
|
||||||
|
|
||||||
|
- Clone the repo.
|
||||||
|
|
||||||
|
```
|
||||||
|
$ git clone https://d.nerdpol.ovh/git/dogeystamp/minrss
|
||||||
|
$ cd minrss
|
||||||
|
```
|
||||||
|
|
||||||
|
- Copy `config.def.h` to `config.h`.
|
||||||
|
|
||||||
|
```
|
||||||
|
$ cp config.def.h config.h
|
||||||
|
```
|
||||||
|
|
||||||
|
- Edit config.h to add your RSS feeds.
|
||||||
|
|
||||||
|
```
|
||||||
|
static const linkStruct links[] = {
|
||||||
|
{
|
||||||
|
.url = "https://news.org/rss/",
|
||||||
|
.feedName = "news",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.url = "https://blog.com/rss/",
|
||||||
|
.feedName = "blog",
|
||||||
|
},
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
- Compile and install the resulting binary.
|
||||||
|
|
||||||
|
Do note that `$PREFIX` is set to `~/.local/bin` in the Makefile because the feed list is generally personal.
|
||||||
|
If you need to install minrss system-wide for whatever reason, change `$PREFIX` to `/usr`.
|
||||||
|
|
||||||
|
```
|
||||||
|
$ make
|
||||||
|
$ make install
|
||||||
|
```
|
Loading…
Reference in New Issue
Block a user