I redesigned my site again, and this is it…for a while. I’ve rebuilt my site at least a dozen times in the last three years. This time it is different because I have a good idea of what I want my site to contain as well as the platform I want to use for it.
Static Site Generators
I’ve tried other static site generators and content management systems and I keep coming back to Jekyll. It was my first static site gen.
I dig Python as a language, and in the Python world I experimented with Pelican, Cactus, Nikola, and Hyde. I’m trying to recall by memory here so bare with me if I make a few mistakes about the generators while describing my experience. Also, all of these SSGs are built well and I’m more concerned about the workflow experience, researching documentation, and mindshare.
Cactus was actually one of my more favorite Python SSG’s. The project structure was really simple and closer to Jekyll than the rest, from what I can remember. At the time I was leaning toward Django development and when I read that Cactus used Django’s templating system I thought “Sweet! I can prototype in Cactus also and move my designs easily to my web app”…nope. For some reason the tool felt clunky. Also it was really difficult to set up a nice dev workflow. The Cactus plugins didn’t seem to work right, particularly the SASS plugin. Also, their website has been down for almost two years.
Nikola was pretty fun. I like the commands that made it easy to create a new
$ nikola new_post. I really liked how it also had the metadata in the
post generated for you and ready for you to edit. I noticed it favored Mako
templating system over Jinja2 and I really didn’t want to learn it so I set up
a site with Bootstrap and Jinja2 via a pre-made theme. I also like the
configuration to you can do with things like images. reStructuredText
Extensions has some pretty cool features but I’m not a fan of reST.
Pelican seemed to be the more popular SSG for Python. I didn’t like how you could not run Pelican until you created some content. Also, there was quite a bit of configuration prior to developing and I didn’t like the default theme that it started you our with. I prefer something a bit more minimalistic and barebones.
One thing that all these had in common was Jinja2 templating system. Quite frankly, I realized I just wasn’t fond how you developed in it. I didn’t like how you extended layouts and having to add those content blocks. Liquid and ERB templating made a lot more sense to me when I worked with Jekyll, Middleman, and Rails.
Which brings me to Middleman. This SSG was awesome! I loved it and still do. The only reason I left it and back to Jekyll was that Jekyll was designed to be a blog, and it does it better than Middleman. I really dig Middleman for prototyping a website if I need to take a mockup and convert the design into HTML files, one page brochure/landing page type sites, or for creating documentation. But for a blog, I’m diggin’ the Jekyll.
I enjoy Jekyll because when I start up the project I can just start blogging
instantly. I enjoy the project file structure and approach to developing with
SASS and Liquid. I has some include files ready to go with Disqus, Google
Analytics which is pretty sweet. Liquid is awesome, I really enjoy it’s approach
to templating and in conjuction with Yaml it makes for a really nice experience.
I like how I can mix Liquid, HTML, and Markdown in a file ending with any
extension and Jekyll know what to do with it. Creating Collections is really
straight forward and super simple, you just create the files and folder and add
a few lines to the
_config.yaml file and you are set. I like how I can add
published: false on a blog post and it removes it from the readers view,
avoiding the need to move a file manually to the
_drafts folder. Calling data
_data directory is also awesome. I know Middleman does this but I’m
not sure about the others.
I even though my site has been down for a while, I’m glad I have tried out different static site generators. I know I haven’t tried all of them. Hugo is one of them. I know, build times are really fast. There is actually nothing I found unattractive about Hugo other taking the time to learn it’s templating language and other nuances. Frankly, I’m a little burned out trying the other ones that I just want to start blogging again. I think in the future if I get really fed up with slow build times with Jekyll I might make that switch, but until then I’ll stick with Jekyll.