Date: 2023-08-12
I’ve been itching to do some writing lately. And not a lab report or documentation—something more creative and opinionated. The last time I had to write that type of text was around two years ago in English class. But I did not appreciate writing then. Partly because I did not care about the topics I was writing about, and partly because I felt pressure since it was graded. Now felt like the time to start writing again, and a blog seemed like a good place to start.
I have always thought about starting a blog. After all, according to those tech career gurus, it’s a good way to build a personal brand. That idea was never enough to make me start because I just did not like the idea of writing. But that changed when I got into reading books. I started to appreciate how writers wonderfully weave words together to open a window to their thoughts or to a completely different world. I wanted to do that too.
However, just wanting to do it was not enough—I still had stage fright. Instead of my English professors grading my work, it would be the public judging me (or so I told myself). So I decided to call this blog “Notes to Self.” I’m writing this for me. Of course, I am open to criticism—that’s why this is a blog and not a journal in my drawer—but the primary audience for this blog is myself. I’ll write about things that I want to write about, be they tech-related or in another field entirely, and I will make it enjoyable for me to read. If other people like it, too, that’s just icing on the cake. I won’t limit the form of the content I write; there will be classic blog posts like this one, but if I want to write a short story or a comic, I’ll drop that here too.
I probably should have used a blogging platform such as Medium, but where’s the fun in that? So I decided to build the site myself. And I probably should have used an SSG such as Astro, but where’s the fun in that? So I decided to build the site with vanilla HTML and CSS, Pandoc to transform Markdown into HTML, and a Python script to glue it all together.
I found a way to include HTML files from this blogpost from CSS-Tricks, which links to this one by Scott Jehl. For now, I only use it for the header, but it allows me to use vanilla HTML, which makes this site really simple: I write HTML files for the static pages such as the home page for this site, and for pages that depend on Markdown content, I use a Python script.
In that Python script, I call Pandoc to generate HTML from Markdown based on a template, which I saw from this blogpost by Arthur Koziel and the Pandoc docs (the Pandocs?). Blogposts are automagically generated by Pandoc based on a template with no fiddling from me, but I still had to write the code to generate the index page for this blog. With only this blog post, the script finishes instantly, but I tried it with the 4000 Markdown files in this SSG benchmark repo, and it finished in around 50 seconds. It could be faster, but it is fast enough for now, and I like how simple it is.
I wanted the site to be minimalist with sharp corners and a splash of pastel, so I made it minimalist with sharp corners and a splash of pastel. Like my other web projects, I started with normalize.css and then styled from there. I added a header, cards, and some light animation.
I only planned to have a light theme because that is what I use 90% of the time, but I saw this Hacker News comment that showed how easy it was to have a dark mode. To support it, I only needed to add a separate set of colors, which was simple since I had variables for my colors (seriously, why don’t all minimalist websites do this?).
I’m excited to be writing again, especially without the pressure of a potentially low grade looming over me. Now that this site is built, there are no excuses for me not to start writing, but I won’t force myself since that’s a surefire way to suck the fun out of it.