Release Notes
BREAKING CHANGE: Ananke is now using the latest css.Build functionality of Hugo. This means that the old SASS/SCSS pipeline is removed and you need to update your build process if you were relying on it.
Configuration Changes
custom_cssmoved toananke.custom_css.custom_cssexpects a list of paths to CSS files inassetsand/or HTML files inlayouts/_partials.
Example:
[params]
custom_css = ["ananke/css/custom.css", "custom-css-partial.html"] # old, deprecated
[params.ananke]
# looks for custom.css in `assets/ananke/css` and for custom-css-partial.html in `layouts/_partials`
custom_css = ["ananke/css/custom.css", "custom-css-partial.html"]SASS/SCSS changes
If you don't use SASS/SCSS then you can ignore this section.
Ananke itself is NOT processing any Sass/SCSS files. This means we can rely on the standard Hugo CSS pipeline and remove the dependency on Hugo Extended. This also means that you can use any CSS preprocessor you like, as long as you place the output in assets/ananke/css/ or load it as a separate partial in our pipeline.
If you are using SASS/SCSS then put something along the lines of this in a partial inside of layouts/_partials/:
{{ $opts := dict "enableSourceMap" true }}
{{ return resources.Get "sass/main.scss" | css.Sass $opts }}Make sure that the partial returns the processed CSS, NOT the SASS source. Your original SASS file in the example above is located at assets/sass/main.scss. You also MUST install the Extended Hugo version and have the sass binary available in your system for this to work. It is NOT Anankes task to help you with that, please refer to the Hugo Community if you need help setting up SASS to work with Hugo.
Development vs Production
- Source maps are linked in development and disabled outside development.
- Production output gets fingerprinted.
hugo serverruns the development pipeline by design.
Further Notes
- Custom CSS that is found in
assets/ananke/css/is processed by Hugo and emitted as a single theme file. This allows you to write your own custom CSS and have it included in the build without needing to change any of the Ananke templates. - Custom CSS that is not found in
assets/ananke/css/is emitted as a separate<link>AFTER the Ananke theme CSS. This allows you to override Ananke styles with your own custom CSS. - The resulting theme file is now
theme.cssinstead ofmain.css. This is a cosmetic change and only breaking your build if you were assuming the name somewhere in your system. - Any other post processing? That should work the same way you would add SASS to the pipeline: Add your processor as a partial and add it to the custom CSS pipeline.
- If you
@imported font files in your previous setup from thestaticfolder, you need to move them now into theassetsfolder and import them from there. Having those files in thestaticfolder will lead tojs.Builderrors when processing the CSS.
Further Reading
Requirements
- Hugo v0.161+
Changelog
2.16.0 (2026-05-16)
Features
- rework stylesheet pipeline (f78134c)
Build
- deps: update bundled Tachyons from 4.9.1 to 4.12.0 (433ef8f)
- fix: run test only on main branch push hook (148aa95)
- fix: update version numbers and fix release setup (29f0f4d)
Full Changelog: v2.15.0...v2.16.0