发布日期: 2026-03-16
版本号: v0.158.0

本次发布新增了css.Build功能,可对CSS资源进行快速打包、转换和压缩。同时引入了strings.ReplacePairs函数,用于高效处理多字符串替换。注意事项包括升级至Go 1.26.1以修复安全漏洞。弃用内容主要涉及语言配置项和方法,将使用locale、label、direction等新名称替代。错误修复解决了外部源映射、服务器监听、远程资源超时等问题。改进包括缓存命中时重新发布资源、支持页面自级联、优化CSS加载器解析等。此外还更新了多个依赖库版本。

更新内容 (中文)

此版本新增了 css.Build 功能,可原生且极速地完成CSS资源的打包、转换与压缩。同时还推出了新的 strings.ReplacePairs 函数,在需要执行大量字符串替换时提供了高性能解决方案。

注意事项

  • 升级至 Go 1.26.1 (#14597)(注意) 1f578f16 @bep #14595。此版本修复了 Hugo 所使用的 Go 模板包中的安全问题:https://www.cve.org/CVERecord?id=CVE-2026-27142

已弃用项

以下方法与配置选项已被弃用,将在未来的 Hugo 版本中移除。

另请参阅 此文章

语言配置

  • languageCode → 请改用 locale
  • languages.<lang>.languageCode → 请改用 languages.<lang>.locale
  • languages.<lang>.languageName → 请改用 languages.<lang>.label
  • languages.<lang>.languageDirection → 请改用 languages.<lang>.direction

语言方法

  • .Site.LanguageCode → 请改用 .Site.Language.Locale
  • .Language.LanguageCode → 请改用 .Language.Locale
  • .Language.LanguageName → 请改用 .Language.Label
  • .Language.LanguageDirection → 请改用 .Language.Direction

错误修复

  • tpl/css: 修复外部源映射问题 e431f90b @bep #14620
  • hugolib: 修复服务器无监视功能问题 59e0446f @jmooring #14615
  • resources: 修复使用按请求超时获取远程资源时的上下文取消问题 842d8f10 @bep #14611
  • tpl/tplimpl: 当媒体类型匹配时优先使用早期后缀 4eafd9eb @bep #13877 #14601
  • all: 执行 go fix ./… e3108225 @bep
  • internal/warpc: 修复调度器启动失败时 Close() 中的 SIGSEGV 信号错误 c9b88e4d @bep #14536
  • 修复 fileEventsContentPaths 中的索引越界 panic 错误 f797f849 @bep #14573

功能改进

  • resources: 在转换缓存命中时重新发布资源 3c980c07 @bep #14629
  • create/skeletons: 在主题骨架中使用 css.Build 404ac000 @jmooring #14626
  • tpl/css: 添加针对 CSS 选项变更时重建的测试用例 06fcb724 @bep
  • hugolib: 允许常规页面级联至自身 9b5f1d49 @jmooring #14627
  • tpl/css: 允许用户覆盖单个加载器条目 623722bb @bep #14623
  • tpl/css: 使 CSS @import 和 url() 的默认加载器解析行为保持一致 a7cbcf15 @bep #14619
  • internal/js: 为 CSS 构建添加默认 mainFields 36cdb2c7 @jmooring #14614
  • 新增 css.Build 3e3b849c @bep #14609 #14613
  • resources: 在 Exif 等解码错误/警告消息中使用完整路径 c47ec233 @bep #12693
  • 迁移至新的本地化库并将 CLDR 从 v36.1 升级至 v48.1 4652ae4a @bep
  • tpl/strings: 添加 strings.ReplacePairs 函数 13a95b9c @jmooring #14594
  • github: 移除 pull_request_template.md 54c80487 @bep
  • testing: 使命令测试在 Go 1.26.1 下通过 157bfddd @bep
  • refactor: 弃用语言配置与模板方法 d4f2122d @jmooring #14269
  • 在测试中使用 Meta 替代 Exif 991d2f9a @bep
  • resources: 改进 getImageOps 错误信息 e8577771 @jmooring #14571
  • resources/images: 为 bmp 和 gif 添加 IsImageResourceWithMeta 等测试 44dc3847 @bep #14568

依赖更新

  • deps: 升级 github.com/evanw/esbuild v0.27.3 => v0.27.4 0e46a97e @bep
  • build(deps): 将 github.com/getkin/kin-openapi 从 0.133.0 升级至 0.134.0 c27d9e8f @dependabot[bot]
  • build(deps): 将 golang.org/x/tools 从 0.42.0 升级至 0.43.0 098eac59 @dependabot[bot]
  • build(deps): 将 gocloud.dev 从 0.44.0 升级至 0.45.0 87f8de8c @dependabot[bot]
  • build(deps): 将 golang.org/x/sync 从 0.19.0 升级至 0.20.0 67ef6c68 @dependabot[bot]
  • build(deps): 将 golang.org/x/net 从 0.50.0 升级至 0.51.0 (#14569) b29c2f7a @dependabot[bot]
  • build(deps): 将 github.com/tdewolff/minify/v2 从 2.24.9 升级至 2.24.10 (#14585) e91d1911 @dependabot[bot]
  • build(deps): 将 github.com/bep/imagemeta 从 0.15.0 升级至 0.17.0 (#14584) a8a54bd0 @dependabot[bot]

更新内容 (原始)

This release adds css.Build, native and very fast bundling/transformation/minifying of CSS resources. Also see the new strings.ReplacePairs, a very fast option if you need to do many string replacements.

Notes

Deprecations

The methods and config options are deprecated and will be removed in a future Hugo release.

Also see this article

Language configuration

  • languageCode → Use locale instead.
  • languages.<lang>.languageCode → Use languages.<lang>.locale instead.
  • languages.<lang>.languageName → Use languages.<lang>.label instead.
  • languages.<lang>.languageDirection → Use languages.<lang>.direction instead.

Language methods

  • .Site.LanguageCode → Use .Site.Language.Locale instead.
  • .Language.LanguageCode → Use .Language.Locale instead.
  • .Language.LanguageName → Use .Language.Label instead.
  • .Language.LanguageDirection → Use .Language.Direction instead.

Bug fixes

  • tpl/css: Fix external source maps e431f90b @bep #14620
  • hugolib: Fix server no watch 59e0446f @jmooring #14615
  • resources: Fix context canceled on GetRemote with per-request timeout 842d8f10 @bep #14611
  • tpl/tplimpl: Prefer early suffixes when media type matches 4eafd9eb @bep #13877 #14601
  • all: Run go fix ./… e3108225 @bep
  • internal/warpc: Fix SIGSEGV in Close() when dispatcher fails to start c9b88e4d @bep #14536
  • Fix index out of range panic in fileEventsContentPaths f797f849 @bep #14573

Improvements

  • resources: Re-publish on transformation cache hit 3c980c07 @bep #14629
  • create/skeletons: Use css.Build in theme skeleton 404ac000 @jmooring #14626
  • tpl/css: Add a test case for rebuilds on CSS options changes 06fcb724 @bep
  • hugolib: Allow regular pages to cascade to self 9b5f1d49 @jmooring #14627
  • tpl/css: Allow the user to override single loader entries 623722bb @bep #14623
  • tpl/css: Make default loader resolution for CSS @import and url() always behave the same a7cbcf15 @bep #14619
  • internal/js: Add default mainFields for CSS builds 36cdb2c7 @jmooring #14614
  • Add css.Build 3e3b849c @bep #14609 #14613
  • resources: Use full path for Exif etc. decoding error/warning messages c47ec233 @bep #12693
  • Move to new locales library and upgrade CLDR from v36.1 to v48.1 4652ae4a @bep
  • tpl/strings: Add strings.ReplacePairs function 13a95b9c @jmooring #14594
  • github: Remove pull_request_template.md 54c80487 @bep
  • testing: Make commands tests pass in Go 1.26.1 157bfddd @bep
  • refactor: Deprecate language configuration and template methods d4f2122d @jmooring #14269
  • Replace Exif with Meta in tests 991d2f9a @bep
  • resources: Improve getImageOps error message e8577771 @jmooring #14571
  • resources/images: Add IsImageResourceWithMeta etc. tests for bmp and gif 44dc3847 @bep #14568

Dependency Updates

  • deps: Upgrade github.com/evanw/esbuild v0.27.3 => v0.27.4 0e46a97e @bep
  • build(deps): bump github.com/getkin/kin-openapi from 0.133.0 to 0.134.0 c27d9e8f @dependabot[bot]
  • build(deps): bump golang.org/x/tools from 0.42.0 to 0.43.0 098eac59 @dependabot[bot]
  • build(deps): bump gocloud.dev from 0.44.0 to 0.45.0 87f8de8c @dependabot[bot]
  • build(deps): bump golang.org/x/sync from 0.19.0 to 0.20.0 67ef6c68 @dependabot[bot]
  • build(deps): bump golang.org/x/net from 0.50.0 to 0.51.0 (#14569) b29c2f7a @dependabot[bot]
  • build(deps): bump github.com/tdewolff/minify/v2 from 2.24.9 to 2.24.10 (#14585) e91d1911 @dependabot[bot]
  • build(deps): bump github.com/bep/imagemeta from 0.15.0 to 0.17.0 (#14584) a8a54bd0 @dependabot[bot]

下载链接