Back

Next Gen Static Blogging

2021-01-09 mmackh

TL;DR

Take a look at the source code of this page - I rely mostly on CSS for the rendering of this article.

The CSS property powering this article,

white-space: pre-line
, has existed since the IE8 days.

Background

My first programming exercise was to code a blog using PHP. Add text files to a folder via FTP, scan the directory and generate the HTML dynamically. How about adding an admin frontend? Or a database as a backend? All good and well, but when do you find the time to actually write your articles?

If it's one thing I learnt over the past years of coding is that simplicity is key. You don't need a lot of CSS or HTML Tags to make a page look pretty. It may not be the absolute correct way to do it, but look at the source code of this page. It's tiny!

My Solution

Instead of nesting

<div>
after
<div>
or
<p>
to create paragraphs, I stumbled upon
white-space: pre-line
. To quote the MDN Web Docs - "Sequences of white space are collapsed. Lines are broken at newline characters, ..." - and that is key. I use HTML tags like
<em>
or
<b>
for emphasis only.

Every paragraph is initiated with a newline character. The experience to writing this blog entry is very similar to using a dedicated word processor. Except you have much more control, more settings you can tweak and more visuals you can add.

A similar technology I can think of is Markdown. Except you have to run it through a parser before seeing the result. Also, different flavours produce different outputs. All rather messy for me. My workflow consists of pressing CMD+S, switching to Safari and reloading the page. What you see now is what I get.

Managing this blog is a little more involved than dynamically generating everything. The design could also be a little prettier.

More Benefits

The overall page size is tiny. No need for JavaScript or any other complicated backend or client-side frameworks. I can use PHP to introduce dynamic elements to the page, but that's optional. Maybe you might be inspired a little and move your blog off centralised platforms like Medium, etc. and start embracing the simplicity of creating compelling pages with very little code. Simplicity is key.