Skip to content

kirillbobyrev/minimis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

minimis

Build and deploy

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.

Features

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.

Live demo

exampleSite

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.

My personal site

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.

Using the theme

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:

Create a new site

hugo new site $YOUR_SITE_NAME

Add the theme

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.

Configure the theme and your website

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.

Deployment

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