So those of you who may have actually read my blog would be aware that I used Pelican to generate my blog for a while. It always worked well when I used it. But it never really gelled with my workflow. I tried several things, like publishing my first Python package, but I could never get Pelican to stick.
As you probably know, I'm a huge fan of Draft as a text editor. It's a minimalist editor that's easy to use and pretty darn fantastic. And it offers a very, very cool capability to publish your post to whatever WebHook you desire. Which means minimal friction for me. Since I'm using Draft to compose my posts (and as a bonus, it supports Markdown which I love so very, very much) what I really needed was a way to generate my site from Draft.
I came across a blog post that I wish I could find again (if I ever come across it, I'll be sure to update this post) - but the guy wrote his own blog software and basically said, "It's easy to do, and you'll end out with exactly the features you want and need." Well, that was enough motivation to get me to shift myself and just write my own software.
It's really simple and (mostly) just works. At the moment it's called Simpyle Blog, because that's what I liked when I started it. And it describes what it is. It's about the simplest thing that can possibly work. I have a Flask application that listens for POST and checks the incoming request that it's A-OK. If it is, it generates my site. Currently that takes about 2 seconds for all of the blog posts that I have. Which really doesn't seem that bad at all. Even if I create a ton more articles I still don't think it will be very much of a pain.
And if things really start slowing down I expect that doing something like adding multiprocessing would speed things up quite a bit - I expect the IO and Markdown/CommonMark rendering process are the two biggest pieces, but since it runs fast enough I'm not worried about that yet.
And it works.
I only have two outstanding issues:
- The title URL is broken for some reason. I'll have to fix that and take 2 seconds to re-render my blog.
- I need to make it auto-generate a topic on my Discourse site at http://discuss.waynewerner.com to use for comment/discussion.
Simpyle Blog is definitely not ready for release to the public as a package yet - it's actually pretty hideous to look at, code wise. I'm pretty sure I'm violating every rule in PEP8, but all I wanted was something that would let me post!
I kind of need to post.
I think this is the beginning of something beautiful.