Your music is bad, and you should feel bad
How one blogging tool missed the mark by a lot. Updated 2024-12-13
[…] the supreme goal of all theory is to make the irreducible basic elements as simple and as few as possible without having to surrender the adequate representation of a single datum of experience.
Einstein, probably
Why is blogging software so bad?
One of the biggest hurdles to creating a decent coding blog is — surprisingly — finding an easy-to-use development tool to compile Markdown documents into a blog format. Something with a low upfront commitment that delivers 80% of what you think you need without actually making you think. You know the one. It has a good default style, plus respectable handling of Markdown links, tables and code blocks, maybe a few extras.
It seems like a no-brainer that some developer would have already created such a tool. But then again, any developer who creates his own blogging tool must first embrace the underlying complexity of the endeavor long before than he realises a product which his previously-ignorant self could have used without thinking or learning “too much” about the domain.
By the time he has a half-way decent first approximation of the “simple” tool that we’re all searching for (deep down), he’s also gained enough domain experience to use it effectively without simplifying the interface even a tad. It’s a waste of time to do any UX, right? No one else is gonna use this, after all. Right?
Nevermind the fact that even commercial software rarely escapes this cruel dichotomy: - Tools with low market share are rarely widely appealing - Tools with a large market share are rarely simple to operate, even for a subset of realistic use cases.
I have not yet found a blogging tool that allows me to move forward without either re-writing it or to spend more time reading documentation than it would take to write my own.
Bashblog to the rescue?
One blogging tool that certainly doesn’t escape the norm is bashblog. As I’m writing this, my blog is still not live, because bashblog is not simple enough to use — nor is any other tool I’ve stumbled across.
It has two main flaws that make it absolutely impossible for me to use.
- Its source format is html, not markdown.
- It has no concept of an output folder.
Markdown ain’t your source
Sure: it allows you to type markdown documents, and it even transmutes them into html files that look a lot like blog files. Has some mysterious-looking code that probably handles tags alright.
But! Try deleting all the html and css generated files, and rebuilding from the markdown source. Nope! Doesn’t work. Can’t coax it to, either. Your blog is now gone! You could manually recreate your blog by running
$ ./bb.sh post my-old-post-that-I-wanted-to-keep
and then copy-paste your my-old-post-that-I-wanted-to-keep.md
file into the edit buffer that appears, again and again for every post that is now gone; but if you want it to “remember” that your posts exist, you’re expected to faithfully preserve the generated output files!
As a user, there’s no clarity on whether it uses your Markdown file to regenerate the html, or whether it converts the html back to Markdown format before letting you edit.
Disgusting! Now, you have to commit generated files to your blog repo, and at some point, you’re gonna have to merge changes to those files. Great!
What output?
Given that the html output is the source, you shouldn’t be surprised to learn that bashblog doesn’t separate your markdown posts from your html files. Why should it? They’re both source files.
What? You wanna publish your html files without also uploading all your (duplicate) markdown content? What kind of weirdo wants that?
How can we fix it?
We can’t. In order to allow a user-configurable output subfolder folder in a robust way, the bash script would have to be fundamentally rewritten. Coincidentally, allowing spaces in filenames would also require a complete rewrite.
No use complaining
Honestly, my opinion doesn’t count for much, and it shouldn’t. You read this post because you wanted a distraction — that’s all. I almost left an issue report on the bashblog github that would’ve boiled down to,
Your music’s bad and you should feel bad!
And, nobody needs that nonsense. Why should I frustrate that one blog-software developer when all of them are bad? None are simple to use.