Hamilton is a minimal Jekyll theme for writing and note-taking, built as an enhancement of the default Jekyll theme Minima. It turns a standard Jekyll site into a clean, content-focused blog with configurable skins, archives, and built-in integrations.
What is Hamilton?
Hamilton is a Jekyll theme that produces a static blog or notes site from Markdown posts and pages. It takes Jekyll configuration files (_config.yml), posts, and pages as input, and outputs a static website with RSS feed, sitemap, SEO metadata, and optional comments. The theme runs on Jekyll, a Ruby-based static site generator, and can be installed either as a Ruby gem (jekyll-theme-hamilton) or remotely on GitHub Pages via jekyll-remote-theme. The theme is developed by the GitHub user ngzhio, and was originally created to replace Jekyll's default Minima theme while keeping the same minimal aesthetic.
Key Features
- Jekyll SEO Tag — injects structured metadata and Open Graph tags for better search engine and social sharing previews.
- Jekyll Feed — automatically generates an RSS feed from your posts.
- Jekyll Sitemap — produces a
sitemap.xmlso search engines can index every page. - Google Analytics — add your tracking ID once in
_config.ymland page views are recorded in production. - MathJax — enable per-post math rendering with
math: truein front matter. - Disqus comments — requires a Disqus shortname; comments appear on posts in production.
- Four built-in skins —
daylight,midnight,sunrise, andsunset, with optional dynamic selection based on hour of day. - Archive pages in pure Liquid — category, tag, and year archives without any plugins.
- Configurable navigation — define links and dropdown submenus in
_data/navigation.yml. - Customizable head and styles — add metadata via
_includes/custom-head.htmland extra CSS via_sass/hamilton/custom-styles.scss. - Font Awesome icons — used for social media links in
_data/social.yml. - Table of contents — show a TOC on the left sidebar by setting
toc: trueon a post or page.
Who is it for?
- Personal bloggers who want a distraction-free Jekyll theme with standard blog features like archives, RSS, and sitemap without building them from scratch.
- GitHub Pages users who want a remote theme that requires no local build setup beyond pointing
remote_theme: ngzhio/jekyll-theme-hamiltonin their configuration. - Technical and academic writers who need LaTeX math notation on specific posts via the built-in MathJax integration.
- Note-takers who maintain long Markdown documents and want a left-sidebar table of contents for quick navigation.
What can you do with Hamilton?
- Writers: publish posts with category, tag, and year archive pages generated purely in Liquid, and let readers subscribe via the RSS feed button.
- Developers: customize the whole look by creating a custom skin from
daylight.scss, or inject analytics and SEO tags without touching core templates. - Site maintainers: configure a dropdown navigation menu and social media links through simple YAML data files.
- Anyone on GitHub Pages: get a production-ready blog by adding the remote theme and two required config fields (
titleanddisqus).
How does Hamilton work?
Install the theme by adding gem 'jekyll-theme-hamilton' to your Gemfile, or use jekyll-remote-theme and set remote_theme: ngzhio/jekyll-theme-hamilton in _config.yml. Then configure the required parameters title, disqus, and google_analytics, and run jekyll serve to preview the site locally. Optional front matter flags control per-page features: math: true for MathJax and toc: true for a table of contents.
FAQ
Is Hamilton free?
Yes, Hamilton is open source and released under the MIT License, so you can use, modify, and redistribute it freely.
Which Jekyll version does Hamilton require?
The theme is designed as a standard Jekyll gem theme and works with Jekyll's usual gem-based theme system; it also supports GitHub Pages through jekyll-remote-theme.
Can I create my own skin?
Yes. Copy _sass/hamilton/skins/daylight.scss into your repository, rename it (for example solarized.scss), adjust the colors, and set skin: solarized in _config.yml.
Does Hamilton support comments?
Yes, through Disqus. You must set the disqus parameter in _config.yml to your Disqus shortname, and comments are enabled in the production environment.
How do I add a table of contents to a post?
Set toc: true in the front matter of any post or page, and Hamilton will render the TOC on the left sidebar.








