My personal website.
It's a static site built using Hugo with Kayal theme.
To build it, you only need to:
-
git clonewith--recursiveflag (downloads the theme as a git submodule). -
Install Hugo (at the right version! See below).
-
Follow the Hugo documentation and work with Hugo as normal.
There are no more additional dependencies or custom build steps.
To deal with breaking changes in Hugo, I only use and support one specific version at time.
For reliable builds, I recommend installing the same Hugo version as I use.
Check the version in the .hvm file.
Choose an installation method that won't auto-update Hugo. If you use
hvm (recommended), it will use the right
Hugo version automatically. Alternatively, you can pin Hugo in your package
manager, or sidestep the package manager and download the Hugo binary from
Github releases. This is the right
way to install unstable software.
Hugo has three "editions" with different feature sets. The minimal "standard" edition is enough to build this website. Any edition should work.
The site is deployed on Github Pages. Deploy happens automatically on every push
to master. See .github/workflows/hugo.yaml
for details.
For the comments to work, I also went through the Giscus confuguration guide. It requires a public Github repository with Discussions enabled. It can be any (even empty) repository. But I've simply connected this main repository.
Comments are powered by Github Discussions on the repo. To comment, you need a Github account.
You can either browse and comment directly on Github, or use the Giscus comment widget on my website. It's configured in ./layouts/partials/comments.html.
Before committing changes, I run ./review_staged_changes.sh to generate the old and the staged version of the site and then manually review the diff in VSCode.
The markdown writing in content/ is licensed under
CC BY 4.0.
The software part is licensed under the MIT
License. That includes Hugo config/,
custom templates, HTML, CSS, JS, shell scripts.
I reserve all rights to the other materials I own, just in case I forget to explicitly license them here.