aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--TODO.md2
-rw-r--r--content/posts/2021-11-05-feed-bloater.md81
-rw-r--r--content/projects/feedbloater.md8
-rw-r--r--content/projects/hugo-shortcode-table.md5
-rw-r--r--data/projects.yaml5
-rw-r--r--static/files/posts/feed-bloater/llvmweekly-new.pngbin0 -> 169466 bytes
-rw-r--r--static/files/posts/feed-bloater/llvmweekly-old.pngbin0 -> 120169 bytes
7 files changed, 96 insertions, 5 deletions
diff --git a/TODO.md b/TODO.md
index 239e6b1..3e60e85 100644
--- a/TODO.md
+++ b/TODO.md
@@ -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
+```
+&nbsp;
+
+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
new file mode 100644
index 0000000..f49271d
--- /dev/null
+++ b/static/files/posts/feed-bloater/llvmweekly-new.png
Binary files differ
diff --git a/static/files/posts/feed-bloater/llvmweekly-old.png b/static/files/posts/feed-bloater/llvmweekly-old.png
new file mode 100644
index 0000000..1cfeadd
--- /dev/null
+++ b/static/files/posts/feed-bloater/llvmweekly-old.png
Binary files differ