In love with Emacs
For years now I’ve had this on-again-off-again relationship with Emacs. I was first introduced to Emacs—more specifically org-mode—by a Hulu Software Engineer during a Lunch and Learn. I was immediately hooked.
From day one I was capturing TODO’s, meeting notes and jamming stuff into an org-journal file. The org-agenda kept me on task and organized. And then, a year or so later I realized I wasn’t even opening Emacs any longer. So, I dusted off the old config, updated my .emacs
and jumped right back in. And then the same thing happened, I simply wasn’t using it anymore.
So here we are again, that little purple icon in my dock called out to me and I answered. But this time I went with a completely new overhaul: Doom Emacs!
As someone who uses VIM at least multiple times a day, Doom’s “always Evil mode” approach suits me well. So I ported into my config.el
only the portions of my old Emacs config that were important—mostly org-mode stuff—and I went to work adapting to Doom.
I love it.
I knew I’d need something to keep me motivated to use Emacs, so I decided to use Emacs to write and host a blog. This blog.
Yep. This blog is written in org-mode, translated to a web page via ox-hugo, and then shipped up to AWS where I host it via S3 and Cloudfront.
I will explore this process in detail in a later post, but the beauty of this is that the only real portion I’m concerned with—the blog posts—is maintained in a single org file. I simply add a new sub-heading as a blog title, drop in some necessary hugo matter, and start writing the post. Once I’ve finished the post and want to publish, I toggle the heading state to DONE
which adds a timestamp, I export the file, let hugo build it and then sync it to AWS. If I have a post that I want to keep as a draft, I can toggle its heading state to TODO
and hugo will not export it to HTML until I toggle it to DONE
.
I need to finesse the final “deployment” steps to AWS, but for now this is working very well. And, it’s keeping me inside of Emacs, which was the whole point.