(templates :variables templates-private-directory "~/.spacemacs.d/templates")
30 August 2020
I was only trying to write that last article, but it took me days to finally do it. I had so much work to do before I got there.
I had come to appreciate Emacs automatically inserting the boilerplate namespace declarations in new Clojure files, and I really thought I needed such convenience for my blog posts written in AsciiDoc in JBake. I dove down a 20-tab-deep, yak-shaving hole to get it done. [1]
I had to figure out the right search terms
and names for what Emacs was doing for me.
I finally found yatemplate
which seems similar to yasnippets.
Spacemacs
has the templates layer
for integrating yatemplate support,
so I added that layer and created a template
for my adoc
files in my .emacs.d
directory.
My simple case worked,
but I recognized
that I’ll want that template
on all my machines,
so having a local copy of it
wouldn’t cut it.
I needed a way to check-in and version more Emacs/Spacemacs files
than just my ~/.spacemacs
files I was previously distributing.
I learned yasnippets would default
to looking in ~/.spacemacs.d/
if the configuration was in there,
so I had to move my ~/.spacemacs
file
over to ~/.spacemacs.d/init.el
.
To have the templates layer source templates
from the .spacemacs.d
directory,
it required an extra bit of configuration
when introducing it to the dotspacemacs-configuration-layers
:
(templates :variables templates-private-directory "~/.spacemacs.d/templates")
At this point,
I could now commit
my .spacemacs.d
directory
with the regular configuration file
and the supporting templates and snippets.
All those files will be cloned
to all my workstations.
I was almost ready to write
that article,
but yasnippet and yatemplate
have this fancy templating language.
I’m sure that can make
my article-creation even smarter!
I read a bit more
and found a couple cool elisp
functions
for automatically filling in the date
and building a title
from the file name.
With the final enhancements
to my adoc
template,
I could write the article,
if I could only remember
what I was trying to do
in the first place.
I hope to at least remember
how to use these snippets and templates
for future work.
06 April 2017
Since the beginning when I rebuilt my blog with JBake, I intended to split and restyle the photography work from the tech work.
The photo work just disappeared from here, so now it can be found at John Flinchbaugh Photography.
Both sites are rebuilt whenever new content is pushed to their respective git repositories.
03 November 2016
JBake 2.5.0 got support for the MarkupTemplateEngine, so I wanted to give it a try, since structured code will be nicer than extreme scriptlet stuff that was happening in the original Groovy template example. The stock MTE example shows off MTE templates, but it also switched to Foundation in place of Bootstrap.
I’ve been looking forward to really learning Bootstrap for work and my personal projects, so I’m not looking to switch frameworks right now, so I rebuilt my own example project with MTE and Bootstrap based on the original Groovy/Bootstrap sample I had previously used.
Hopefully, I’ll get a little feedback and the JBake people will incorporate my contribution.
05 January 2016
I’ve moved the blog to a static site generated by JBake. The source for the content lives in my techblog project in Github, so I have a full versioning of my content for the small price of a git workflow.
I installed JBake using the familiar SDKMan that I already use to manage my Grails and Groovy installations. I initialized it with the Groovy templating engine and have started customizing the templates.
To make sure this thing is easy to update, I keep a local clone of the repo, so I can update it any time and push whenever I’m ready. I have a shell script scheduled to run on the server which basically does:
cd techblog git fetch git merge | grep "Already" > /dev/null || jbake
That little bit of code
only runs jbake
if the git pull
doesn’t say "Already up-to-date".
That provided me a simple little "continuous integration" hook
that polls git for changes to trigger the build.
I’ll probably use this trick in other places.
I brought all my old content from my old database into the new platform using a quick little Groovy script to dump out an HTML file for each article including the header of metadata for JBake’s use. While most of these old articles will remain HTML, I intend to use AsciiDoctor format for all the new stuff.
I’ve been collecting a long list of (mostly technical) articles to write, but replacing the old platform kept trumping my attempts to write. Hopefully, this move can open the flood gates, and eventually, I’ll break out another instance of it for the photography blog. JBake should make it easy and interesting to continue the blogs.