I built a handy tool to generate cover images for stories downloaded from AO3, making them easier to browse. Along the way, I learnt about how EPUBs work, the power of static sites, and some gotchas of async JavaScript.| alexwlchan.net
An extremely fast Python linter and code formatter, written in Rust.| docs.astral.sh
For some time now I’ve been unhappy with how much more friction there is when posting to my blog[1] than posting to twitter[2]. I keep wanting to blog more but I don’t. Part of the problem is content. I did blog more in 2018, when I was working on projects that had more to share. Part of the problem is expectations. On Twitter it’s expected that I write very little (280 character limit, up to 4 images or 1 animation). That constraint makes it easier to post. On my blog I tend to write l...| www.redblobgames.com
Learn how to extract website content using lxml and Requests.| Apify Blog
How to parse XML using CSS selectors, XPath and language native tools in Python, Php, javascript and other languages. Complete XML parsing guide.| ScrapFly Blog
Writing Extensions for Python-Markdown¶| python-markdown.github.io