* My Blog/Phlog Workflow
I only started really writing anything down with intention for myself
in the past few months. I'm slowly trying to ramp up and write a bit more.
I'm a very talking oriented person if that makes sense, and I find it
difficult to write things that I think are coherent. I also tend to be
a rambler in person who constantly over-explains. This also doesn't
translate well to writing.
To that point, I think part of why I talk so much is because it helps
me organize my thoughts. They rattle around in my head in an incoherent
jumbled mess and spewing them out helps me to hear what they actually are.
However, it's not always easy to talk to people. Maybe people aren't around,
maybe they don't want to talk, maybe they do but not about what you want
to talk about, etc etc.
To that end I figured I should try and write more things, even if no one
ever reads them, just so I can practice that act of thoughtfulness and
trying to codify my thoughts.
Preamble aside, I figured I'd write something about my blog posting
infrastructure which may be of some interest. I have two places I
post my blogs:
- https://spwbk.site
- gopher://chate.io
Because the files that represent the blog posts for these platforms
are pretty different, I needed a way to be able to write a post in a
comfortable, ergonomic way and then "deploy" it to the various places
I want it to be visible from. Here's what I came up with:
I write my blog posts in Emacs, in org-mode. I like org-mode and use it
for other stuff, and it's an environment I'm comfortable with. Additionally,
I can export org mode documents as HTML, which helps a lot.
So after I'm done writing my post, I save my .org file, and then export it
to HTML.
From there I do some minor edits on the HTML manually. This is just to update
some <style> tags for the HTML version so that it's not so utiltarian. If
I understand correctly, there should be a way to configure org so that it
puts my <style> values in, but I'm not sure how to do that yet. Something
to look into later.
After I tweak the HTML file, I now have 2 files:
- blog_post.org
- blog_post.pretty.html
Typically I still have both of these open in buffers in Emacs, so I
wrote a little elisp shell wrapper to shell out to rclone, which posts
the file in the buffer to a bucket in BackBlaze B2.
Every few minutes on my respective servers, a little script runs that
gets any new blog posts.
On the HTTP server it grabs the .pretty.html file, and on the gopher
server it grabs the .org file, and places them in their respective places.
Once this is done, the script uses https://ntfy.sh to send me a notification
that the files have been deployed.
To review, the process essentially looks like this:
Write in emacs -> save as .org file -> export .org as .html -> modify
html <style> -> upload to B2 -> wait a few minutes.
I can do all of my blogging from Emacs without ever having to touch anything
else, and I get a notification on my phone to confirm that the blogs have
been uploaded successfully!
I really like this system, and because it feels easy to use for myself,
I find myself blogging more and more!
Thanks for reading!