Single-location + multi-marker, side-by-side and map-only layouts.
Zero-config — no API key. MapLibre is vendored via vite and loaded
conditionally when a page contains a map block. Provider resolution
is a single switchable function so other tile providers can be added
later without changing the block contract.
Hugo v0.161 dropped the standalone tailwindcss binary; @tailwindcss/cli
npm package is now the only accepted transformer, invoked via
`node --permission` (Node >= 22 required).
- Bump module.hugoVersion.min to 0.161.0 in modules/blox/hugo.yaml;
add comment explaining why security.node.permissions is left to
Hugo's built-in defaults
- Bump hugo_version / HUGO_VERSION / devcontainer image tag to 0.161.0
across all 9 templates (hugoblox.yaml, netlify.toml, devcontainer.json)
- Bump devcontainer base image Node 20 → 22 and default Hugo version
- Add scripts/check-template-deps.mjs to assert every template declares
tailwindcss + @tailwindcss/cli; wire as pnpm check:template-deps
- Harden CI: new audit-template-deps job gates all build jobs; add
`require.resolve('@tailwindcss/cli/package.json')` check after each
pnpm install to catch the exact "binary is not a Node.js script" failure
upgrade @biomejs/biome to ^2.3.2 and migrate biome.json to v2 schema
enable css.parser.tailwindDirectives; ignore .min.css and vendor CSS
remove stylelint deps and .stylelintrc.yaml; switch lint scripts to Biome
update workspace to use Biome for CSS; drop stylelint settings
Refactored from legacy layouts/partials/blox/* system to:
- blox/<block-id>/block.html source structure
- Hugo module mounts to layouts/partials/hbx/blocks/<block-id>/block.html
- Resolver-based lookup
- Support for data-driven pages and client islands
Stylelint added many new default rules
Added some temp rule exclusions until code can be refactored
Ran ESlint and Stylelint auto-fixer to fix any new errors which can be auto-fixed
New shortcode supports
- enable re-usable *optimized* image assets from new primary media library location at `assets/images/`
- new behavior: load image from page dir falling back to media library at `assets/images/` and then to remote URI.
- multi-res support. leading to increased perf.
- custom ID for cross-refs
- efficient, vanilla (non-jQuery), MIT licensed image zooming
- FancyBox now only loaded for Gallery shortcode
- themeable SVG support
- native lazy loading
Experimental, may change.
BREAKING CHANGE:
Move any figure images (i.e. not the `sharing.*` image) from `static/media/` to `assets/images/`
See #2164
Remove Bootstrap from Header and assets.toml
Remove Bootstrap JS CDN version in footer and assets.toml
Add latest Bootstrap v4 SASS files locally
Include Bootstrap JS locally
Convert Academic's CSS to SASS (mainly SASS variables + Go templating)
Convert Academic's theming system to integrate with SASS
Parse SASS in header using Hugo and convert to CSS
Minify and md5 fingerprint bundled CSS
Fix Slider widget (reuses .wg-hero but animation and `clear` removed)
Add Bootstrap files to repo so that Node is not required
See #680