diff options
-rw-r--r-- | TODO.md | 2 | ||||
-rw-r--r-- | content/posts/2021-11-05-feed-bloater.md | 81 | ||||
-rw-r--r-- | content/projects/feedbloater.md | 8 | ||||
-rw-r--r-- | content/projects/hugo-shortcode-table.md | 5 | ||||
-rw-r--r-- | data/projects.yaml | 5 | ||||
-rw-r--r-- | static/files/posts/feed-bloater/llvmweekly-new.png | bin | 0 -> 169466 bytes | |||
-rw-r--r-- | static/files/posts/feed-bloater/llvmweekly-old.png | bin | 0 -> 120169 bytes |
7 files changed, 96 insertions, 5 deletions
@@ -58,7 +58,6 @@ this stuff may not make any sense. content of paper itself * detailed results are interesting * my tools 2021 (vim, irssi, screen, mutt/offlineimap/notmuch, irb, git, bash) -* feedbloater ## done * add project folders @@ -80,3 +79,4 @@ this stuff may not make any sense. * table shortcode (`hugo-shortcode-table`) * removed `script-src unsafe-inline`, A+ score on securityheaders * fix RSS to show full feed +* feedbloater diff --git a/content/posts/2021-11-05-feed-bloater.md b/content/posts/2021-11-05-feed-bloater.md new file mode 100644 index 0000000..b26ebfe --- /dev/null +++ b/content/posts/2021-11-05-feed-bloater.md @@ -0,0 +1,81 @@ +--- +slug: feed-bloater +title: "Feed Bloater" +date: "2021-11-05T23:49:56-04:00" +draft: false +--- +In addition to [fixing the RSS feed for this site][site-rss], I also +created a simple command-line tool named [Feed Bloater][] +which expands truncated [RSS 2.0 feeds][rss] by doing the following: + +1. Fetch the contents of the feed. +2. Fetch the [HTML][] from the `<link>` for each feed item. +3. Filter the [HTML][] from the previous step based on a [CSS selector][]. +4. Replace the truncated item descriptions with the [HTML][] from the + previous step. +5. Write a new [RSS][] feed to the given output path. + +[Feed Bloater][] maintains an internal cache and respects the +[`ETag`][etag] and [`Last-Modified`][last-modified] headers, and by +default it won't update the output file if the source feed has not +changed. + +Here is an example that uses [Feed Bloater][] to expand the truncated +[LLVM Weekly][] [RSS feed][rss]: + +```sh +feedbloater https://llvmweekly.org/rss.xml div.post path/to/llvmweekly.xml +``` + + +Here's what the original [LLVM Weekly][] [RSS feed][rss] looks like in +[The Old Reader][]: + +{{< figure + src="/files/posts/feed-bloater/llvmweekly-old.png" + class=image + width=1013 + height=623 + caption="Truncated LLVM Weekly RSS feed, viewed in The Old Reader." +>}} + +Here's what the expanded [RSS feed][rss] generated by the example above +looks like: + +{{< figure + src="/files/posts/feed-bloater/llvmweekly-new.png" + class=image + width=1046 + height=673 + caption="LLVM Weekly RSS feed, expanded by Feed Bloater, and viewed in The Old Reader." +>}} + +Much better! I've been happily using [Feed Bloater][] to expand several +truncated feeds for about a week. + +If you're interested in trying [Feed Bloater][], you can find +installation, usage, and configuration instructions in the documentation +on the [Feed Bloater GitHub Repository][feed bloater]. + +[site-rss]: {{< ref "/posts/2021-10-26-rss-feed-no-longer-annoyingly-trunca.md" >}} + "RSS Feed No Longer Annoyingly Trunca..." +[rss]: https://en.wikipedia.org/wiki/RSS + "Really Simple Syndication" +[feed bloater]: https://github.com/pablotron/feedbloater + "Expand truncated RSS feeds." +[html]: https://en.wikipedia.org/wiki/HTML + "HyperText Markup Language" +[css selector]: https://en.wikipedia.org/wiki/CSS#Selector + "Cascading Style Sheet selector." +[llvm weekly]: https://llvmweekly.org/ + "LLVM Weekly newsletter." +[the old reader]: https://theoldreader.com/ + "Web-based RSS reader." +[bundler]: https://bundler.io/ + "Ruby dependency manager." +[etag]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag + "ETag HTTP header." +[last-modified]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Last-Modified + "Last-Modified HTTP header." +[url]: https://en.wikipedia.org/wiki/URL + "Uniform Resource Locator" diff --git a/content/projects/feedbloater.md b/content/projects/feedbloater.md new file mode 100644 index 0000000..ff408be --- /dev/null +++ b/content/projects/feedbloater.md @@ -0,0 +1,8 @@ +--- +title: "Feed Bloater" +slug: "feedbloater" +active: true +repo: "https://github.com/pablotron/feedbloater" +text: "Command-line tool and Ruby library to expand truncated RSS feeds." +--- +Command-line tool and Ruby library to expand truncated RSS feeds.
\ No newline at end of file diff --git a/content/projects/hugo-shortcode-table.md b/content/projects/hugo-shortcode-table.md index b15ada0..011ce10 100644 --- a/content/projects/hugo-shortcode-table.md +++ b/content/projects/hugo-shortcode-table.md @@ -5,7 +5,4 @@ active: true repo: "https://github.com/pablotron/hugo-shortcode-table" text: "Table shortcode for Hugo." --- -Table shortcode for [Hugo][]. - -[hugo]: https://gohugo.io/ - "Hugo static site generator." +Table shortcode for Hugo.
\ No newline at end of file diff --git a/data/projects.yaml b/data/projects.yaml index 69d210d..18f8aed 100644 --- a/data/projects.yaml +++ b/data/projects.yaml @@ -26,6 +26,11 @@ repo: "https://github.com/pablotron/zipstream-php" text: "Streaming zip file generator for PHP." +- name: "Feed Bloater" + slug: "feedbloater" + repo: "https://github.com/pablotron/feedbloater" + text: "Command-line tool and Ruby library to expand truncated RSS feeds." + # # - name: FreeType2-Ruby # slug: ft2-ruby diff --git a/static/files/posts/feed-bloater/llvmweekly-new.png b/static/files/posts/feed-bloater/llvmweekly-new.png Binary files differnew file mode 100644 index 0000000..f49271d --- /dev/null +++ b/static/files/posts/feed-bloater/llvmweekly-new.png diff --git a/static/files/posts/feed-bloater/llvmweekly-old.png b/static/files/posts/feed-bloater/llvmweekly-old.png Binary files differnew file mode 100644 index 0000000..1cfeadd --- /dev/null +++ b/static/files/posts/feed-bloater/llvmweekly-old.png |