Skip to content


Switch branches/tags


A minimal and beautiful Jekyll theme best for writing and note-taking.

The original purpose of this theme is to be a replacement of the default Jekyll theme -- Minima. Hamilton is an enhancement of Minima but still, keep in minimal.

Please check out the demo.

Skins Displays
Daylight screenshot
Sunrise/Sunset screenshot
Midnight screenshot


Table of Contents


You can choose one of the following methods to install Hamilton:

  • Directly specify the jekyll-theme-hamilton gem.

    1. Add gem 'jekyll-theme-hamilton' into your Gemfile.

    2. Add the below lines into your _config.yml.

        - jekyll-theme-hamilton
  • If your site is hosted on GitHub Pages, you can use jekyll-remote-theme to import the master branch of Hamilton.

    1. Add gem 'jekyll-remote-theme' into your Gemfile.

    2. Add the below lines into your _config.yml.

        - jekyll-remote-theme
      remote_theme: ngzhio/jekyll-theme-hamilton


After installation, you can run jekyll serve to check out your site, but before that, make sure the below required parameters are configured in your _config.yml.

Parameters Types Specifications
title string The site title
disqus string The Disqus shortname; Unless you don't want to enable the comments system, you must specify this parameter. It is used in the production environment.
google_analytics string The Google Analytics tracking ID; It is used in the production environment.

Optional Parameters

Parameters Types Specifications
author string The name of the author of the site; It would be showed in the copyright statement.
avatar string The avatar of the author of the site.
email string The email of the author of the site.
location string The current living location of the author of the site.
skin string The skin name. See more information on the Customization section.
lang string The language of the site; The default value is en.
paginate int The number of posts on each page.
date_format string The date format; The default value is %b %-d, %Y.
subscribe boolean Show the subsribe feed button.

Archive Pages

Hamilton implements some archive templates in pure Liquid. For example, if you want to create a category archive page, set the below parameters on that page:

layout: archive-taxonomies
type: categories

Or a tag archive page:

layout: archive-taxonomies
type: tags

Or archive by years:

layout: archive-years


You can enable MathJax on each post or page, just set math: true on that page.


If you want to show the Table of Contents of a post or page on the left sidebar, just set toc: true on that page.



You can create a file _includes/custom-head.html in your repository, and add any metadata into that page, e.g. favicons.


You can create a file _data/navigation.yml to configure links to some pages. For example,

- title: About
  url: /about/
- title: Categories
  url: /categories/
- title: Tags
  url: /tags/

The navigation bar also supports dropdown submenus:

- title: About
  url: /about/
- title: Categories
  url: /categories/
- title: Tags
  url: /tags/
- title: More
    - title: FAQ
      url: /faq/
    - title: Docs
      url: /docs/

Social Media

You can create a file _data/social.yml to configure links to your social media. For example,

- title: Twitter
  icon: fab fa-twitter
- title: GitHub
  icon: fab fa-github


You can select a skin by setting skin in _config.yml. The built-in skins include daylight, midnight, sunrise, and sunset. If you don't specify any skin, Hamilton would dynamically select one in these built-in skins according to different hours in a day.

You can also customize a new skin, for example, a skin called solarized. You need to copy _sass/hamilton/skins/daylight.scss into your repository and then rename it to solarized.scss, and adjust some colors in that file. Finally, specify skin: solarized in _config.yml.

More Customized Styles

If you want to create more CSS styles in your site, creating a file _sass/hamilton/custom-styles.scss, and putting your code in there, Hamilton would automatically refer to them.


The theme is available as open source under the terms of the MIT License.