Minimalistic theme for personal sites built with Hugo. The goal of minimis is to be:
- Small, so that the codebase is very easy to understand and easily understandable
- Focused to avoid feature bloat. The goal is to build a theme for a personal page and software engineering blog.
- Simple: no complicated and large CSS frameworks, JavaScript libraries and heavy dependencies.
This theme is heavily inspired by bearblog and hugo-bearblog, but is focused on features that I was missing and wanted to change/adjust to my liking. bearblog is a prime example of something that looks very good with minimal CSS configuration, so realized I don't need a complicated CSS framework to make a good looking site.
I am not a professional web developer, so I am sure there are many things that could be improved. If you have any suggestions, please open an issue or a pull request: I am happy to accept contributions.
The theme is still in development, but the following features are already implemented:
- Tags and filtering
- Custom links in the main menu
- Google Analytics, Twitter cards support
- RSS support
- Favicons
- Math rendering with KaTeX
- Diagram rendering with Mermaid.js
- Mastodon verification
- Adding HTML to Markdown pages
If you want to use this theme and are missing something, feel free to create a GitHub Issue.
The example site is a good place to start. It showcases the features of the
theme and is a good starting point for your own site. The source code for the
example site is available under exampleSite and it is uploaded
to kirillbobyrev.github.io/minimis on
every commit to main
branch through GitHub Actions workflow:
build-and-deploy.yml.
Whenever you make a change to the theme, you can test it by running
hugo server --source exampleSite --watch
if you are in the root directory of the repository or just
hugo server --watch
If you are in the exampleSite
directory.
Minimis powers my personal site and blog at kirillbobyrev.com. I use it to write about software and hobbies. The source code for the site is available at github.com/kirillbobyrev/kirillbobyrev.com. It doesn't differ much from the example site, but it has some customizations such as resume page, favicons and custom domain usage. It is a good example of a real-world usage of minimis.
Hugo documentation is very extensive and I can't recommend it enough to understand the whole system and how to use external themes.
Here is a quick start guide if you are already familiar with Hugo and want to start using minimis:
hugo new site $YOUR_SITE_NAME
The easiest way to use the theme is through Hugo modules:
Add the following to your hugo.toml
/config.toml
:
theme = 'github.com/kirillbobyrev/minimis'
And then run
# Initialize hugo module for your site.
hugo mod init github.com/$YOUR_GITHUB_ACCOUNT/$REPO
# Fetch the theme.
hugo mod get -u
Alternatively, you can use the theme as a git submodule and put it under
themes/minimis
. Check out Hugo
docs for more information.
The theme is configured through params
in hugo.toml
/config.toml
. Check out
exampleSite/hugo.toml for an example configuration of
the demo site. For a full list of available options, check out params
in
hugo.toml.
For deployment, I recommend using GitHub Pages. You can check out Hugo docs on how to set it up, but I think the provided GitHub Actions workflow is unnecessarily complicated. Here is the workflow that powers deployment of minimis demo: build-and-deploy.yml