# 压缩配置
> 通过 minify 配置精简站点输出的各类资源。
- 官方英文原文：https://gohugo.io/configuration/minify/
- 本页规范地址：https://hugozh.cn/configuration/minify/
- 最近更新：2026-10-02
- 最后提交：912b1d3 chore(site): 添加 static/CNAME（hugozh.cn），供 GitHub Pages 等平台绑定自定义域名
- 站点：Hugo 中文文档（https://hugozh.cn/）· 社区维护的非官方中文翻译，如有出入以官方英文原文为准

---
`[minify]` 用于在发布阶段压缩输出资源。默认配置如下：

```toml
[minify]
disableCSS = false
disableHTML = false
disableJS = false
disableJSON = false
disableSVG = false
disableXML = false
minifyOutput = false
```

## 内容类型开关

| 键名 | 类型 | 默认值 | 说明 |
| --- | --- | --- | --- |
| `disableCSS` | `bool` | `false` | 是否禁用 CSS 压缩。 |
| `disableHTML` | `bool` | `false` | 是否禁用 HTML 压缩。 |
| `disableJS` | `bool` | `false` | 是否禁用 JavaScript 压缩。 |
| `disableJSON` | `bool` | `false` | 是否禁用 JSON 压缩。 |
| `disableSVG` | `bool` | `false` | 是否禁用 SVG 压缩。 |
| `disableXML` | `bool` | `false` | 是否禁用 XML 压缩，例如 RSS 输出。 |
| `minifyOutput` | `bool` | `false` | 是否在渲染时直接压缩输出，而不是在写入文件时压缩。 |

所有这些开关默认都是 `false`，即各类资源的压缩默认开启，只有把对应开关设为 `true` 才会跳过该类型。

## 底层压缩器选项

`[minify.tdewolff]` 下的键会原样传给 [tdewolff/minify](https://github.com/tdewolff/minify) 项目，默认值如下：

```toml
[minify.tdewolff.css]
inline = false
precision = 0
version = 0

[minify.tdewolff.html]
keepComments = false
keepConditionalComments = false
keepDefaultAttrVals = true
keepDocumentTags = true
keepEndTags = true
keepQuotes = false
keepSpecialComments = true
keepWhitespace = false
templateDelims = ['', '']

[minify.tdewolff.js]
keepVarNames = false
precision = 0
version = 2022

[minify.tdewolff.json]
keepNumbers = false
precision = 0

[minify.tdewolff.svg]
keepComments = false
keepNamespaces = ['', 'x-bind']
precision = 0

[minify.tdewolff.xml]
keepWhitespace = false
```

关键点说明：

- `css.inline` 属于内部使用，修改它不会产生任何效果。
- `html.keepConditionalComments` 已弃用，请改用 `html.keepSpecialComments`。
- `precision` 用于控制压缩后数值保留的小数位数，`0` 表示由压缩器自行取舍；`js.version` 指定 JavaScript 的版本年份，`2022` 表示按 ES2022 语法压缩。

## 使用示例

只在 HTML 与 XML 输出上启用压缩，跳过 CSS 与 JS：

```toml
[minify]
disableCSS = true
disableJS = true
minifyOutput = true
```

如果要保留 HTML 中的注释和空白（例如某些依赖注释的第三方脚本），可以局部覆盖底层选项：

```toml
[minify.tdewolff.html]
keepComments = true
keepWhitespace = true
```

