Social media fixes

While tracking down what turned out to be a caching issue, I realized that CSS inlining in RSS (which I use for making tables more readable) and the og:image attribute for social media previews were broken–when there was no “hero” image (or any image at all) the code fell back to generating a text-based preview, and failed.

As it turns out, Pillow deprecated the old way of doing text metrics and I missed that when updating dependencies a few weeks back, so I had to figure out the new approach and fix the code. CSS inlining was trickier, but as it turns out inlinestyler is unmaintained and breaks with modern versions of lxml.

So CSS inlining is now done using css-inline rather than inlinestyler.

May the Fourth be with you!