My New Blog
Finally, I've got my new blog up and running. It's been a while since I wrote my last article and I took the chance to come up with some new ideas, both technical and from a content point of view.
Published by Philipp Trommler. This article has also been translated to: de.
I've written my last post in 2016, a test of my - at that time - new smartphone. I still use that device, though my thoughts about it have changed a lot. But this is nothing I want to write about in this article, I'd rather focus on what I want to write about, how I want to write and why.
Reasons to start all over¶
My last blog had a clear goal: Provide beginner-friendly blog posts about Vala and Gtk development in German. 'Why in German?' you may ask. Because in my opinion language can be a huge barrier while learning things, especially for beginners. Having to concentrate on both the topic and the foreign language at the same time can be difficult even for reasonably fluent speakers. And since there were more than enough blogs in English I thought I'd do native Germans like me a favour and provide the information in our mother's tongue.
I've always been attracted to embedded and low-level development, but I've never felt proficient enough to write about it. But since I do exactly this for a living for almost three years now, my feelings have changed. Of course I am by no means an "old hand" by now but nevertheless I think I've reached a level of knowledge that is worth sharing. So no more Vala and Gtk development tips here, sorry (at least not primarily).
With the change of the main topic comes a change of the main language. First, because the topic is even more niche than before and a German-only blog would have a really small readership. Second, because the count of international (English) blogs about this topic is way lower, so there's still room for one more. Still, I want to provide German translations for all of my articles since the reasons for blogging in German initially still hold true.
All these changes don't mean that I'm embarrassed by what I've written more than three years ago. You can currently still access my old blog at its original address. But since I plan to re-use the subdomain, I've asked the Wayback Machine to make a copy of it and thankfully it helped me out. So you can still access my writings about Gtk and Vala in German even when I pull the plug.
A new technical foundation¶
A new direction in terms of topics after a long pause offers the possibility to change the technical foundation of a blog at the same time. I took this chance and used the last two weeks for building my custom Pelican site.
Pelican vs. Jekyll¶
My old blog has been powered by Jekyll just as many others. It has met all my needs then and would have probably met all my needs now, as well. But I never felt comfortable using it. Instead I felt somewhat limited, especially because I hosted the site at Github (for example back then no custom themes could be used with the automatic site generating). I'm almost sure that everything that made me dislike Jekyll was not the generator's fault but rather the fault of the circumstances (I ended up generating my site locally and pushing the result to Github 🤢...), still I wanted something new.
On the search for that new thing I stumbled across Pelican. Markdown? Check! Written in a non-obscure language (looking at you, Hugo!)? Check! List of plugins? Exhaustive! And most importantly (for the reasons see above): An i18n plugin! So I sat down and started creating a minimal yet technically modern template.
The result is what you see right in front of you and I have to say that I'm
slightly disappointed. The Pelican ecosystem couldn't stand to its promises.
The Pelican core is thoughtfully designed, easy to use and sufficiently
fast. pelican-quickstart
is really great and the basic "generator"
functionality just works. But when it comes to the Pelican plugins and more
complex setups (I wouldn't call my setup complex, though) things get worse
rapidly.
Here's a (non-exhaustive) list of things that didn't/don't work (as expected/yet[?]):
- The blog contains no
schema.org
microdata yet. Whilst there is a pelican-microdata plugin for Pelican, it has been abandoned in early 2017, only supports RST files and of course has no support for JSON-LD. Well, Philipp, back to writing some Jinja2 templates! - Feed generation and linking is not at the point where I want it to be. That's why there are no visible links to the feeds yet (they're in the code, though, your reader should find them).
- I currently cannot use the
better_code_samples
plugin because it destroys my HTML structure (it inserts superfluous</body></html><body>
tags). Sorry mobile readers, code samples overflow the page for now... - The
image_process
plugin resets my generated HTML (wrong/no indentation, tag attributes re-written in a different order). - I have to write inline HTML in my markdown files if I want more than
<p><img ...></p>
for my images (e.g.<figure>
and<figcaption>
; hello, semantics!) filetime_from_git
generates (at least locally) timestamps that are not W3C conform (they have more than two sub-second digits).- The
sitemap
plugin doesn't pick up the i18n subsites. - The author/category/tag pages are rudimentary but I don't understand the
documentation of the
autopages
plugin 🤷♂️... - While the i18n plugin works well all in all it generates a language subsite for the default language. I don't get that. Let's see what the search engines think about it.
- I want to provide some kind of "translator" pages analog to the "author" pages but I don't know how or if it's even possible without patching Pelican.
- I have no favicon yet. Is this still a thing nowadays? Which icon sizes do I need for those Firefox new tab icons?
Honestly, I've been a bit stunned by the condition of the Pelican ecosystem but admittedly that resembles my experiences with Jekyll and what I've read about other SSGs: basic functionality is split out into plugins that are for their part sparsely maintained (at best). My problems may partly be caused by the ancient version of Pelican that I'm using (3.7.1, don't blame me, I'm bound to Ubuntu LTS on WSL because of hardware reasons at the moment 😩), but that cannot really explain the plugin-related issues I'm facing.
Sourcehut vs. Github¶
To really start all over again I not only changed the topic and generator but also my Git hosting service. I've been unhappy with Github for quite a while now. You know, because of big, Microsoft-owned evil-corp and stuff. Luckily Drew DeVault did his magic again some time ago and created Sourcehut, a no-nonsense, no JavaScript, email-first Github alternative. And it's great! I use it both for hosting my Pelican files and generating the HTML files via the built-in build service.
The actual hosting is done via Namecheap, no special reason for this, except that I host my domains there, as well. The combination of Sourcehut and Namecheap gives me a split setup that should be a bit more resilient than having everything under one hood.
Conclusion¶
Despite my strong feelings about the Pelican ecosystem I have to admit that I'm kind of pleased with my new set-up. This is mostly due to the automatic publishing that I've achieved but I also like the user-facing outcome of my rework and I think that even Pelican will do its job once it's configured completely. I hope that especially the automation will sustain my blogging ambitions.
Man, that blog title is lame!¶
Well, yes, it's not exactly inventive. But because this blog is about me, things that I find interesting and the things that I've done and since I don't want to sell anything here, the title is quite accurate 🙄.
What to expect¶
I already have some things planned for the next articles. I want to to give a multi-part introduction about a little known meta build tool named "Bob", I have some thoughts about the now complete C++20 standard and I have ideas for two or three recurring categories. I hope that I stick to blogging long enough this time that I finish these goals at least. I invite you to find it out together with me!
Filed under Meta. Tags: namecheap, pelican, pelican-plugins, publishing, sourcehut.
Want to comment on this article? Write me at blog [at] philipp-trommler [dot] me!