Get started

Start here: adding the module to a site, then understanding the page layout it renders before tweaking individual options.

Install

Add the module to your site’s hugo.toml:

[module]
  [[module.imports]]
    path = "github.com/saltstack/pydata-hugo-theme"

Then fetch it and its build-time npm dependencies (FontAwesome’s JS+SVG icon kit, Bootstrap’s JS bundle, mounted via [[module.mounts]]):

hugo mod get github.com/saltstack/pydata-hugo-theme
npm install

That’s it — hugo server/hugo build will now resolve the theme.

Offline / reproducible builds

By default Hugo resolves the module (and its npm mounts) fresh at build time, which needs Go and network access. If you’d rather commit a fully offline, reproducible copy — no Go toolchain, no npm, no live fetch during CI — run:

Layout

The theme renders a page as a set of named “slots” — each a list of partial names, resolved via site.Params.* — rather than a single fixed template. Override just the slot lists you care about; everything else falls back to the theme’s defaults.

Page title

ParamDefaultEffect
show_titletrueAuto-renders <h1>{{ .Title }}</h1> before the page content

Resolved page frontmatter → site.Params → hardcoded default, same as other overridable params. To omit the auto-rendered heading on a single page (e.g. because the Markdown body already starts with its own # heading), set show_title: false in that page’s frontmatter. To change the site-wide default, set show_title = false under [params] in hugo.toml.