First post with Hyde

Nearly ten years ago, I wrote my first post on this blog. It was about just having configured Jekyll as my static site generator for this blog. Jekyll is also the main driver for github pages where my website lives. Since then I have tried to twist and turn Jekyll into something that would meet all my goals. But I haven't been able to. So I decided to write my own static site generator: Hyde. Currently it is a very specialized piece of software - it compiles only this webpage.

I started out with one goal when I sat down and started writing Hyde: To take the same input files that I have been using with Jekyll for the last ten years and compile the same page. I didn't want to go back and change the format of my old posts or change the layout system. I have now reached that goal. This post is compiled with Hyde. I have replaced Jekyll with Hyde.

Background

I picked Rust as the language for Hyde. Rust is quickly becoming my new favorite language over C++. It feels like a modern approach to both high-level and low-level coding. It has a very nice package manager called Cargo. This is also a very nice exercise for me while learning the language: To create an actual product which will live longer than just the hours it takes for me to create it and run the program for a solution.

As mentioned the first goal for Hyde was to eat the same input as Jekyll did. Jekyll uses markdown and liquid. Liquid is a template language which I have used to write my layouts in. A layout is the container for the content of the page - essentially the HTML with my menu and the like so I don't have to write that more than once. It was easy to compile markdown to HTML. I found pulldown-cmark and saw it easily translated a markdown document to HTML. There are some very minute differences in the output from Jekyll and pulldown-cmark, but nothing noticeable. Compiling liquid required a bit more work from me - it wasn't just plug'n'play. I wrote about it in my previous post. But once I figured it out things started to work pretty quickly.

The Future

So now that I have a working prototype of my static site generator, what is next? The reason I moved away from Jekyll was because I was missing features. So implementing these features is my next goal. I want to have a wikipedia-like page linking to pages where I can write notes about links, articles and books. I also want to add a configuration file so I can change things on my page much easier.

I can't see anyone ever using Hyde over the million other static site generators out there, but I want to aim for making Hyde production ready for other users. I need to create a test suite. I need to make Hyde much general purpose than "compile madsravn.dk". I might also need to find another name since Hyde exists - even though it is 6 years in the grave.

Discussion, links, and tweets

I'm a developer and CS graduate. Follow me on Twitter; you'll enjoy my tweets.

I also keep an "ask me anything" type of project in a repository on GitHub (naturally!). Feel free to ask me a question.