文档章节

命令

Hugo 命令行界面的整体结构与各命令索引。

Hugo 的命令行界面(command line interface,CLI)构建在 Cobra 之上。构建站点、本地预览、创建内容这些日常工作,都可以在项目根目录下用少数几条命令完成。本节先说明 CLI 的组织方式,再分别给出各命令的参考页面。

命令的分层

Hugo 的命令分为父命令与子命令两层,子命令会共享父命令的选项:

  • hugo 是主命令,用来构建项目;hugo build 是它的显式子命令,两者行为一致。
  • hugo server 启动内置的 Web 服务器;hugo server trust 负责把本地 CA 证书装入系统信任库。
  • hugo new 用来创建新内容;hugo new content 与 hugo new project 是它下面的子命令。

除本节收录的命令之外,CLI 还提供 completion、config、convert、deploy、env、gen、import、list、mod、version 等命令,它们的工作方式与本节各页所述一致。

全局选项

不少选项定义在根命令 hugo 上,并会被子命令继承,例如 --config、--configDir、--logLevel、--quiet、-s / --source、--themesDir、--clock、-e / --environment、-M / --renderToMemory、-d / --destination、--noBuildLock 与 --ignoreVendorPaths。各子命令的参考页面会把这些选项单独列为「继承自父命令的选项」,因此不必在每条命令下重复查阅。

执行位置

这些命令都应当在项目根目录下执行:Hugo 从当前目录开始向上查找配置文件,并据此确定项目根目录,以及 content/、layouts/、static/ 等目录的位置。如果确实需要在其他位置执行,可以先用 --source / -s 指定要读取的目录。

示例

在项目根目录构建站点:

hugo

启动开发服务器,并让草稿内容也参与构建:

hugo server --buildDrafts

依据原型创建一篇新内容:

hugo new content posts/my-first-post.md

查看帮助

任何命令都可以通过 --help 查看它自己的参数列表与可用子命令:

hugo --help
hugo server --help

本节命令

本章内容

  • hugo hugo 主命令:构建整个 Hugo 项目。 (今天)
  • hugo build hugo build 子命令:显式构建整个项目。 (今天)
  • hugo server hugo server:启动内置服务器并实时预览。 (今天)
  • hugo server trust hugo server trust:把本地 CA 装入系统信任库。 (今天)
  • hugo new hugo new:创建新内容与项目骨架。 (今天)
  • hugo new content hugo new content:依据原型创建内容文件。 (今天)
  • hugo new project hugo new project:在指定路径创建新项目。 (今天)
  • hugo new theme 在当前项目的 themes 目录下创建一个可用的新主题骨架。 (今天)
  • hugo config 显示项目最终生效的配置,包含默认值与自定义值。 (今天)
  • hugo config mounts 打印项目最终生效的文件挂载配置,便于核对挂载来源与目标。 (今天)
  • hugo env 显示 Hugo 的版本与环境信息,提交缺陷报告时常用。 (今天)
  • hugo version 显示当前 Hugo 的版本号,以及编译进该版本的相关信息。 (今天)
  • hugo list 列出站点内容的父命令,需搭配 all、drafts 等子命令使用。 (今天)
  • hugo list all 列出站点的全部内容,包含草稿、未来内容与已过期内容。 (今天)
  • hugo list drafts 列出被标记为草稿的内容文件及其相关时间信息。 (今天)
  • hugo list expired 列出过期日期已过去、正常构建不再发布的内容。 (今天)
  • hugo list future 列出发布日期位于将来、尚未发布的内容。 (今天)
  • hugo list published 列出既非草稿,也不是未来或过期内容的内容文件。 (今天)
  • hugo convert 把内容的前置元数据转换为另一种格式的父命令。 (今天)
  • hugo convert toJSON 把内容目录中的前置元数据统一改写为 JSON 格式。 (今天)
  • hugo convert toTOML 把内容目录中的前置元数据统一改写为 TOML 格式。 (今天)
  • hugo convert toYAML 把内容目录中的前置元数据统一改写为 YAML 格式。 (今天)
  • hugo deploy 把构建好的项目部署到云端提供商的命令。 (今天)
  • hugo gen 生成文档与语法高亮样式的父命令,需搭配子命令使用。 (今天)
  • hugo gen chromastyles 为 Chroma 代码高亮器生成 CSS 样式表。 (今天)
  • hugo gen doc 为 Hugo 命令行界面生成 Markdown 文档。 (今天)
  • hugo gen man 为 Hugo 命令行界面生成 man 手册页。 (今天)
  • hugo import 从其他系统导入项目的父命令,需搭配子命令使用。 (今天)
  • hugo import jekyll 从 Jekyll 项目导入内容并生成 Hugo 站点。 (今天)
  • hugo mod 管理项目依赖图中模块的父命令,需搭配子命令使用。 (今天)
  • hugo mod clean 删除当前项目的 Hugo 模块缓存,并可限定要清理的模块路径。 (今天)
  • hugo mod get 解析并获取当前 Hugo 项目的模块依赖,可指定版本或递归更新。 (今天)
  • hugo mod graph 打印模块依赖关系图,并标注模块处于禁用还是 vendored 状态。 (今天)
  • hugo mod init 把当前项目初始化为 Hugo Module,可显式传入模块路径。 (今天)
  • hugo mod npm 提供与 npm(Node 包管理器)相关的辅助子命令。 (今天)
  • hugo mod npm pack 把各 Hugo 模块的 Node.js 依赖合并进一个 npm workspace。 (今天)
  • hugo mod tidy 删除 go.mod 与 go.sum 中不再使用的模块条目。 (今天)
  • hugo mod vendor 把所有模块依赖复制到项目的 _vendor 目录,使构建无需联网。 (今天)
  • hugo mod verify 校验本地缓存中的模块依赖在下载后是否被改动过。 (今天)
  • hugo completion 为指定 shell 生成 hugo 命令的自动补全脚本。 (今天)
  • hugo completion bash 生成 bash 的 hugo 补全脚本,并说明如何加载进会话。 (今天)
  • hugo completion fish 生成 fish 的 hugo 补全脚本,并说明如何加载。 (今天)
  • hugo completion powershell 生成 PowerShell 的 hugo 补全脚本,并说明如何加载。 (今天)
  • hugo completion zsh 生成 zsh 的 hugo 补全脚本,并说明如何加载。 (今天)