-
Notifications
You must be signed in to change notification settings - Fork 274
Description
Slack's RSS feed reader does not render https://clojure.org/feed.xml properly. Some HTML tags are truncated. I think it would be a good idea to make sure the feed renders well in more places.

Reproduce
I have subscribed to the feed in https://clojurians.slack.com/archives/C076654T2LD/p1717409306089639 by seding this message in a Slack channel. Need to wait for the next blog post.
/feed add https://clojure.org/feed.xml
/feed add https://aws.amazon.com/blogs/aws/feed/
Solution
Here are some other RSS feeds that render well in Slack:
It might be worth experimenting with JBake templates (which are excluded via .gitignore). At the moment, the full blog body seems to be included in the <description>
tag, but the feeds that render ok in Slack keep the description short and wrap the blog content inside a <content:encoded>
instead:
The content:encoded element can be used in conjunction with the description element to provide an item's full content along with a shorter summary. Under this approach, the complete text of the item is presented in content:encoded and the summary in description.
https://www.rssboard.org/rss-profile#namespace-elements-content-encoded
Activity
puredanger commentedon Jun 3, 2024
The Rust example is an Atom feed which is a bit different, but the AWS feed is RSS with entity encoded html and looks pretty much the same to me from a formatting perspective as the Clojure news feed (they also include the full post). How do those compare in the Slack reader?
The FTL template for the current feed looks like this:
siadat commentedon Jun 5, 2024
Thanks for looking into it! I created the #testing-rss-feed channel in Clojerians and added those feeds there to test how they look like. Feel free to add/remove feeds there using the
/feed
command.Here's how they look like:
siadat commentedon Jun 5, 2024
Afaict, Slack displays a substring of
<description>
and truncates the rest of it, potentially leaving an incomplete HTML tag e.g.<di
.One thing we could do is to substring
${post.body}
in<description>
ourselves before it is rendered to HTML. Assumingpost.body
is not rendered already:siadat commentedon Jun 5, 2024
But
post.body
might already be rendered to HTML so it will probably not work 🥲Also, it doesn't solve the other problem of the extra whitespace between the lines.