What is Hugo Hugo is a fast static site generator, written in Go.
It turns Markdown + templates + config into a static website.
Install Use the extended build if you process SCSS (this theme does):
1# binary 2curl -L https://github.com/gohugoio/hugo/releases/download/v0.154.3/hugo_extended_0.154.3_linux-amd64.tar.gz | tar -xz 3sudo mv hugo /usr/local/bin/hugo 4 5# or snap 6sudo snap install hugo You also need Dart Sass and Node/npm for SCSS + PostCSS.
New site 1hugo new site myblog 2cd myblog Content 1hugo new posts/first-post.md # draft: true by default Serve / Build 1hugo server -D # dev server, include drafts 2hugo # build into public/ 3hugo --gc # build + garbage-collect cache 4hugo --minify -e production # production build Layout 1content/ source markdown 2layouts/ templates (override the theme) 3static/ files copied as-is (images, favicons) 4data/ site data (.yaml/.json/.toml) 5config/ configuration (hugo.yaml, params, menus) 6public/ generated site (gitignored) Front matter 1--- 2title: "First Post" 3date: 2026-01-01T00:00:00+02:00 4draft: true 5--- 6 7Content. Templates & partials layouts/_default/single.html, list.html, baseof.html Override anything from the theme by mirroring the path in layouts/. Partials: {{ partial "name" . }} Useful functions 1{{ .Title }} {{ .Content }} {{ .Params.custom }} 2{{ range ... }} {{ if ... }} {{ with ... }} 3{{ resources.Get "x" | minify | fingerprint }} Modules 1hugo mod get -u ./... # update modules 2hugo mod tidy 3hugo mod graph # list the module graph Key notes _index.md = section page; index.md = leaf bundle page. draft: true pages only appear with hugo server -D. The ./-relative image paths resolve against static/, not the content bundle.