Why I Chose Pelican

In this post I'd like to give some background about my choice of Pelican as the site generator for my website.

I've been considering and planning a website/blog for over a year now as a hobby. There were some practical reasons for having a website that appealed to me: collecting references for projects, documenting steps for projects, detailing my preferences among competing softwares (mostly in Linux), posting code I've generated. This last reason was one of the main drivers that lead to my current configuration: using GitHub to host the site. Like the entire programming world, I've maintained code on GitHub - nothing fancy and mostly under previous handles which I've since deleted as I tried to debug my website generation. GitHub also provides hosting of static websites (which you most certainly know since you've arrived at such a site), so it was natural to go this route and keep my code base and (possibly) related blog discussions in close quarters.

My first attempts at creating a site on GitHub used the default Jekyll templates. Since these were experimental days - trying to figure out what I was doing - I broke the site on multiple occasions. At various points I deleted my GitHub accounts and created new accounts in order to start completely from scratch - so far down the rabbit hole I was in breaking and "fixing". This isn't really a commentary on Jekyll as a tool for newbies, i.e. I'm not complaining that it's too difficult to use (though frankly I don't remember). However, I didn't stick with Jekyll predominantly because...well, because it's predominent. That's just my style. If everyone else is doing it, then I figure everyone else is wrong - or I at least seek the underdog. So I sought something else.

With that said, Pelican is by no means an underdog. In fact, it's a very popular static site generator. I chose it since it's written in Python, and I'm currently teaching myself Python. I thought it would be fun to delve into the source code for Pelican as I learned Python...which to date I haven't even done. There's really nothing "Pythony" I've encountered in Pelican other than the configuration file, which is merely "Pythony" since it ends in .py.

There are a grip of templates available for Pelican, and it can be overwhelming to make a choice. I currently use the blueidea template, mostly because it was the most visually appealing of the templates which presented my basic content without any errors.

I think Go is an intriguing language to learn as well, and the most popular static site generator written in Go appears to be Hugo. I considered using Hugo to generate my site, and it's certainly still possible I'll do so. At this point, it's merely a success for me to have a site, being blogging and adding features, and have some fun, no matter the language of the static site generator. I realized I was getting wayyyyy too caught up in that choice, so for now, Pelican it is.

I've found it difficult at times managing the GitHub repositories with my current setup - all source files in one repository and output files (generated by Pelican) in the required repository (username.github.io). I'll discuss this in a follow-up. In the meantime, feel free to check out my GitHub site and view the source code. There is nothing even remotely unique about my codebase at this point, but it's a proud feeling to have content displayed which represents my interests and for which the sky is the limit. Ad astra per aspera.

Thanks for reading.

-Edward

blogroll

social