The previous version of this site went up in February 2022 and was never touched again.
It worked, mostly, but it was published by hand: someone ran Hugo locally, copied the
public/ folder into a repository, and pushed that. The source project is gone. The
generated HTML was all that survived.
That arrangement fails quietly. Favicon paths pointed at a directory that no longer existed and returned 404 for four years. Analytics and site-verification tags shipped with the theme’s example placeholders still in them.
What changed
The repository now holds the actual source, and GitHub Actions builds it:
git clone --recurse-submodules https://github.com/carlklier/carlklier.com.git
cd carlklier.com
hugo server -D
Push to main and the site rebuilds and deploys on its own.
Writing here
New posts go in content/posts/ as Markdown with front matter:
hugo new content posts/some-title.md
Posts start as draft: true. They stay invisible to the production build until that
flips to false — hugo server -D shows drafts locally.
Notes to self
- Theme changes for this site only belong in
layouts/ - Theme changes for all my sites belong in the fork
- Never edit files inside
themes/— it is a submodule and the changes will be lost
The full setup is written down in the repository’s README, which is where to start after a long time away.