Dune's theme library has two families for the same upstream design. Sirocco is inspired by Hugo PaperMod — a Dune-native theme that borrows the idea and rebuilds it its own way. This theme is the other kind: a faithful port, meaning the goal isn't "similar," it's "the same," down to the pixel.

The stylesheet is unmodified

static/style.css is upstream PaperMod's actual CSS bundle — every core/, common/, and includes/ file Hugo would normally emit separately, concatenated in the same order Hugo's asset pipeline uses. Nothing was rewritten or "cleaned up." If a class name exists in upstream PaperMod, it exists here, doing the same thing.

Markup matches 1:1

Every template in this theme reproduces its upstream layout's HTML structure and class names exactly — single.html, list.html, archives.html, search.html, 404.html. Hugo's own template constructs ({{ if }}, {{ range }}, partials) map onto Dune's equivalents, but the output is what upstream PaperMod would render for the same content and options.

Shortcodes carry over

Upstream PaperMod content can use Hugo shortcodes — {{< figure >}}, {{< collapse >}}, and so on. This port exposes the same set as MDX components (Figure, Collapse, Video, Audio, Ltr, Rtl, InTextImg) usable in .mdx content, with markup identical to the originals.

Config options keep their upstream names

Nearly every config_schema option here — and every per-page frontmatter field (showToc, hideMeta, cover: {...}, shareButtons: [...], and so on) — uses the exact same name as the corresponding upstream Hugo param. If you've configured PaperMod before, you already know how to configure this.

Not everything could carry over unchanged, though — see the next post for the handful of places this port had to adapt to Dune's architecture.