Customization
Change the look, add partials and extend the framework without forking.
On this page
Template overriding
Tartarus is a normal Hugo theme, which means Hugo's lookup order does the work: a file in your project wins over the same path in the theme.
text
layouts/partials/footer.html ← yours, wins
themes/tartarus/layouts/partials/footer.htmlCopy the partial you want to change, edit it, and leave the rest of the framework untouched so upgrades stay boring.
Extension points
| File | Purpose |
|---|---|
layouts/partials/head-extra.html | Fonts, analytics, extra meta — rendered last in <head> |
assets/css/main.css | Design tokens and component styles |
layouts/partials/icons/*.html | Add an icon by dropping in its SVG paths |
Adding an icon
Each icon file holds only the inner SVG paths — the wrapper supplies the viewBox,
stroke and sizing. To add Lucide's
rocket:
html
<!-- layouts/partials/icons/rocket.html -->
<path d="M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91 0"/>
<path d="m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z"/>Then use it anywhere:
go-html-template
{{ partial "icon.html" (dict "name" "rocket" "class" "size-4") }}Custom shortcodes
Shortcodes live in layouts/shortcodes/. A minimal one:
go-html-template
{{/* layouts/shortcodes/version.html */}}
<code class="tt-version">{{ site.Params.version }}</code>md
Tartarus {{< version >}} requires Hugo 0.146.Navbar links
Top-level links come from Hugo's menu system:
toml
[[menu.main]]
name = "API"
pageRef = "/api"
weight = 30Social links
toml
[[params.social]]
name = "GitHub"
icon = "github"
url = "https://github.com/acme/docs"
navbar = true # also show it in the navbaricon must match a file in layouts/partials/icons/.