PyATOM for static site syndication
Bitten by the bug to write more and for others, I've brought back syndication (via Atom rather than RSS) to the blog. I found a few hundred subscribers still checking in on me, so thanks to you all for sticking around. As I run a static site, generating RSS can be a bit of a pain.
After a brief search of not finding anything for generating RSS or Atom for static blogs, I started writing something in Go which would take a YAML file and dump it into an ATOM format. A bit demoralized with the state of YAML parsers (nothing seemingly working), I swapped over to python. I was about to write a naive Atom dumper with a small templating language, when I came across PyAtom. Thanks to Python's readable syntax, it makes for a fantastic feed writing format. As an example, this is the atom feed of this blog with the last entry populated.
from pyatom import AtomFeed import datetime feed = AtomFeed(title="Justin Abrahms", feed_url="http://justin.abrah.ms/feed", url="http://justin.abrah.ms", author="Justin Abrahms") # Do this for each feed entry feed.add(title="Why I made pisces, a testable web framework", content="Pisces is a Python web framework that was written with testing in mind. It was birthed as a reaction to the typical workflow in a Django project, which I've come to dislike as it encourages you to make your code tightly coupled and less testable.", content_type="text", author="Justin Abrahms", url="http://justin.abrah.ms/python/why_pisces.html", updated=datetime.datetime(2013, 7, 9, 12, 00)) print feed.to_string()