先决条件

在使用或开发 HB 及其模块之前,请确保你满足先决条件。

必要配置

hugo.toml

1[build]
2  writeStats = true

hugo.yaml

1build:
2  writeStats: true

hugo.json

1{
2   "build": {
3      "writeStats": true
4   }
5}
  • 参数 build.writeStats 用于收集站点所使用到的 classes、ids 和 tags,以供 PurgeCSS 清除未使用的 CSS。

构建工具

名称版本描述
HugoVersion用于构建站点。
Go>=1.12用于安装 Hugo 模块
Git-版本控制系统。
NodeJS>=16用于构建 JavaScript。
PostCSS CLI-用于转变样式。
RTLCSS-将 LTR CSS 转换为 RTL,如果你没有 RTL 网站则可选。
Autoprefixer-解析 CSS 并在 Can I Use 规则中添加供应商前缀。
PurgeCSS-移除未使用的 CSS。

推荐尽可能使用以上构建工具的最新版本。

HB 并不需要 NPM 或 Yarn,但建议有一个,以便用一个命令安装 PostCSS CLI、RTLCSS、Autoprefixer 和 PurgeCSS。

1npm i postcss-cli @fullhuman/postcss-purgecss autoprefixer rtlcss

你也可以使用 -g--global 标志于在全局范围内安装这些软件包。

You can also install those packages globally (with -g or --global flag).

1sudo npm i -g postcss-cli @fullhuman/postcss-purgecss autoprefixer rtlcss

注意

请勿于语言范围配置中修改 hbhugopress 参数

HB 依赖于跨模块的配置,但有一个已知的问题,即语言范围内的参数将覆盖参数,而不是深度合并,这将破坏跨模块的配置。

比如以下的配置例子是允许的。

hugo.toml

1[language]
2[[language.en]]
3  [language.en.params]
4    [language.en.params.hb]
5      foo = 'bar'
6    [language.en.params.hugopress]
7      foo = 'bar'

hugo.yaml

1language:
2  en:
3  - params:
4      hb:
5        foo: bar
6      hugopress:
7        foo: bar

hugo.json

 1{
 2   "language": {
 3      "en": [
 4         {
 5            "params": {
 6               "hb": {
 7                  "foo": "bar"
 8               },
 9               "hugopress": {
10                  "foo": "bar"
11               }
12            }
13         }
14      ]
15   }
16}