Espanso, Sublime Text, iA Writer - How I write Jekyll posts
Blogging should be easy. But they’ve put a price tag on easy so here’s how I do it.
Skip the prose and…
- jump to espanso handling jekyll yaml
- jump to espanso handling jekyll paste images
- jump to sublime text handling jekyll tags
- jump to iA Writer for nothing
I run my blog for mostly for free which comes with some inconveniences but also some nice things. I own all the files that I’ve written. I’ve configured it in a way that it’s super easy searchable, I try to tag well and I just couldn’t find another solution that the setup I use: It’s a jekyll site – which means I write plain-text files and develop them with a command-line tool called Jekyll. That means, I don’t get a shiny app to input my writing.
If you’ve used a CMS like Wordpress before, you know the CMS makes stuff easy for you, like you can drag and drop a picture into your editor or there is a form where you just have to input your tags and post title.
This website is run with jekyll, a cms that mostly lives in the Terminal.
That means from a usability point of view, I’m kind of loosing versus shiny web applications.
But I use espanso, to make it slightly easier. Espanso is a text-expander for Windows, macOS and Linux that lets you do stuff like, type :date
and it outputs “2024-12-07” or whatever the current date is.
It still feels like magic every time.
Its a very handy tool that you can use for anything that you type repeatedly. I have it setup for my phone number, my adress and I let it tell me poor dad jokes.
Yea, quality isn’t guaranteed on this one.
I use espanso to fill in some things around this jekyll site. Thoughts and suggestions are welcome.
Adding metadata
This one is the basic functionality as shown above or below.
Typing :newpost
prints a yaml header for a jekyll blog post. You then have to go back and fill it in. Its similar to the command
The espanso trigger for this is the following.
1
2
3
4
5
6
7
- trigger: ":newpost"
replace: "---\ndate: \nauthor: \ntags:\ncategory:\ntitle:\n---"
vars:
- name: mydate
type: date
params:
format: "%Y-%m-%d"
You can download the package on espanso hub.
Easy image handling
Typing 
*putyourcaptionhere*
yields a basic markdown image prompt but points to my central storage for images, where I can paste the image title directly, because the pointer moved there directly. I then fill in alt-text and can publish a caption. It appears just as it does below this gif.
I don’t quite remember how I implemented these captions. It had something to do with manipulating css files. I will have to dig to document that another time.
The espanso trigger for this is below. I will upload as a package soon.
1
2
- trigger: ":img"
replace: "\n*putyourcaptionhere*"
Tags made simpler
I start my writing mostly in SublimeText. It allows to autocomplete tags. I don’t know how it does that.
seriously, no clue but sets it appart from iA Writer. I think Visual Studio can do something similar.
iA Writer for the view,
I mean, I don’t know. Its just quite pretty and I use it for most of my writing anyway. I have the _posts
folder setup as one of my locations. Its okay.