Terminal RSS Reader With Nom

I stumbled across nom today, which is a lightweight TUI application written in go that allows you to read RSS feeds in your terminal.
It seems that every few years I get so tired of the bullshit that I decide to get back into using terminal apps. Working in a terminal allows me to pretend that I live in one of those fallout vaults and keep a diary in the black and green terminal that you find next to the stimpacks and radroaches sometimes. I somehow always find my way back to regular applications for one reason or another, but for now I am going to enjoy the comfort and simplicity of the terminal while it lasts.
Of course, this comfort and simplicity comes at a price. Namely, it is uncomfortable and complicated.
Out of the gate I ran into issues. I am not sure if me and every blog I read is doing it wrong, or if this particular app has its schema messed up, but nom looks for content in an xml field called <encoded>
and if it does not find it, then it will fall back and show you a link that you need to open in a browser. A lot of the blogs that I read do not use this field at all and instead put the content of the post in the <description>
xml tag.
I patched nom to show me the link and the description instead and things seem to be working how I expect them to now. If you are running into a similar issue you can apply the patch below.
diff --git a/internal/commands/commands.go b/internal/commands/commands.go
index 54af59e..2b5dcaf 100644
--- a/internal/commands/commands.go
+++ b/internal/commands/commands.go
@@ -365,6 +365,8 @@ func glamouriseItem(item store.Item) (string, error) {
mdown += "\n"
mdown += item.PublishedAt.String()
mdown += "\n\n"
+ mdown += item.Link
+ mdown += "\n\n"
mdown += htmlToMd(item.Content)
out, err := glamour.Render(mdown, "dark")
diff --git a/internal/rss/rss.go b/internal/rss/rss.go
index 1628b27..87cf395 100644
--- a/internal/rss/rss.go
+++ b/internal/rss/rss.go
@@ -65,7 +65,7 @@ func feedToRSS(f config.Feed, feed *gofeed.Feed) RSS {
if it.Content == "" {
// If there's no content (as is the case for YouTube RSS items), fallback
// to the link.
- ni.Content = it.Link
+ ni.Content = it.Description
} else {
ni.Content = it.Content
}
Thank you for reading! Share your thoughts with me on bluesky, mastodon, or via email.
Check out some more stuff to read down below.
Most popular posts this month
- 2024
- Reinstalling Windows at 1am
- SQLite DB Migrations with PRAGMA user_version
- My Custom Miniflux CSS Theme
- How to Disable Wayland in Debian Testing
Recent Favorite Blog Posts
This is a collection of the last 8 posts that I bookmarked.
- Future Fonts from Blog – Brad Frost
- 21st Century C++ from Communications of the ACM
- Submarines DevCon 2025 Keynote Speech from JoshHaines.com
- How I Use AI: Meet My Promptly Hired Model Intern from Armin Ronacher's Thoughts and Writings
- DeepSeek from Maggie Appleton
- Digital Reality Digital Shock from Christopher Butler
- 10 habits to help becoming a Debian Maintainer from Optimized by Otto
- Tiny corners from Manuel Moreale RSS Feed
Articles from blogs I follow around the net
Be Mindful of What You Make Easy
Carson Gross has a post about vendoring which brought back memories of how I used to build websites in ye olden days, back in the dark times before npm. “Vendoring” is where you copy dependency source files directly into your project (usually in a folder c…
via Jim Nielsen’s Blog April 16, 2025It’s Storytime with Wil Wheaton episode 4 – The Hidden Heart of Brass Attending by Christopher Scott
It’s Wednesday (it’s only Wednesday? It’s only Wednesday.) and that means we have a new podcast for you! This week, it’s The Hidden Heart of Brass Attending, by Christopher Scott. […]
via WIL WHEATON dot NET April 16, 2025Released a new tool: llm-url-markdown
Recently I started using Simon Willison ’s CLI tool which is conveniently called llm . He introduced a particularly useful fragments feature in a recent version of the tool, that allows the user to provide extra information to the llm when working with long…
via Saeed Esmaili April 16, 2025Generated by openring