Developing a Custom Theme

5 posts in this series

This series of posts details the process I completed to design the theme for this site. I began exploring how gem-based themes work and build a working theme that contains feature-parity with Minima, Jekyll's default theme. I then move on to add more advanced content, including supporting a series of posts, adding Code Syntax Highlighting, and other features to complement the theme of this site. As I update the theme, I will add more posts to this series. You can always grab the latest copy of this theme's code at GitHub.


The default Jekyll Site uses the minima theme. This theme is great for getting started with the basic content of the site, but I prefer to know what’s going on behind the curtain. What exactly does Jekyll use to convert my markdown files into a complete static site? To learn about this, I made a custom theme for this site. The theme’s source code is posted on GitHub.


Sometimes, it makes sense to relate posts in a series. A continuation of a story or an expansion of a project are all reasons to continue a post. This post is part of the series Developing a Custom Theme, which details all of the steps that resulted in the creation of this site’s theme.



In order to make the site stand out, and also to support media types most common to the internet, I’ve quickly styled up a featured image container. This code uses the assets plugin, and results in a simple styled image at the beginning of each post.


The original menu on the front page was lacking. It only contained a list of the categories of each post I’ve written. However, after adding support for series of posts, I think it would be nice to show the series’ titles in the menu as well. This required making a custom plugin jekyll-groupby and the creation of a new layout called group to display groups of items. The result of the code in this post leads to the menu on the sidebar.