Fri, 06 May 2022 FULL POSTS ARE NOW RENDERED INSIDE RSS READERS Your subscribers can now read your full articles without leaving the comfort of their RSS readers. I have finally succeeded after fighting with properly rendering full post content directly _inside_ RSS readers. I struggled with this implementation far longer than I'd like to admit. Although, that's to be expected with my caveman knowledge of RSS feeds and my simple monkey brain. But here we are! We made it. INSPIRATION ----------- The thought of rendering all the content within users' RSS readers was always something I wanted for the initial launch of Shinobi Website. It was taking me a while to understand the layout issues caused by articles being pure plain text, so I ended up giving up for version "1.0". Then fellow web-minimalist Matthew Graybosch kindly reached out and showed off his own beautifully crafted shinobi website[0]. Browsing through his site and articles I quickly realized a few rendering woes of my own: 1. Having set the reading length to 72, I was hurting the reading experience for mobile users 2. Matthew was doing a lot more cool things on his site (D&D style tables, separating specific feeds into their own directories) Shortly after this exchange I was contacted by another plain-text web enthusiast, Koray Er[1]. They were inspired to start building out their own Shinobi Website. This is where the question was brought up regarding full post rendering: > i want the entire content in my rss reader - not just one line. the best i could do was put $(tail -n +4 $file) in the description. that works, but without line breaks. is it possible to fix that in rss.sh? i don't want to change the txt - it's so pure. This was the final straw. I _needed_ to get this working in _some_ capacity. CDATA TO THE RESCUE ------------------- I played around with converting plain text to HTML and pasting it inside the XML at build time. This created more problems than it fixed. But finally, after roughly 2 hours of going down multiple rabbit holes of failure, I mashed together a few concepts from everyone's trusty copy/paste site: stackoverflow. Take a look at the newly updated shell script here: > https://shinobi.website/script.sh The only change I have made is inside the `description` tag within the individual `item` elements. Take a look if you're interested. Wait, what the heck that CDATA junk, you might be asking? > CDATA is defined as blocks of text that are not parsed by the parser, but are otherwise recognized as markup. After that we use `sed` to swap out any newlines with HTML line break elements. Nothing crazy there. NOTE: As you may have noticed on the main page of this project, the `rss.sh` code snippet has been replaced with a direct link to a new `script.sh`. Those wishing to implement this new style of formatting will need to make the shell changes manually. CAVEATS ------- Please note that if you are planning to render your content this way there are minor things to look out for. 1. Pasting code examples is a big no-no. The content will be mangled and the reader will try to render example snippets as HTML elements. Your best bet is to link directly to example files elsewhere in your directory. ^ THIS IS NO LONGER TRUE. See details below.[2] 2. This may not work for every single RSS Reader. I can't test every application out there in the wild nor can I double check different operating systems. All I know is this renders fine for me on macOS using NetNewsWire. FOOTNOTES --------- [0]: https://matthewgraybosch.com/ [1]: https://korayer.de/ [2]: This issue has been fixed thanks to Matthew Graybosch's excellent patch. See patch notes here: https://git.sr.ht/~tdarb/shinobi-script/log?from=7e2f8bd312d648ff1c8d3cf dc747d2e5634100d7#log-7e2f8bd312d648ff1c8d3cfdc747d2e5634100d7 Thanks for reading my humble blog (maybe directly in your RSS reader this time too!), -- Brad