HUGO
Menu
GitHub 87548 stars Mastodon

基本用法

使用命令行界面(CLI)执行基本任务。

测试安装

安装 Hugo 后,通过运行以下命令测试您的安装:

hugo version

您应该看到类似这样的输出:

hugo v0.155.3-8a858213b73907e823e2be2b5640a0ce4c04d295+extended linux/amd64 BuildDate=2026-02-08T16:40:42Z VendorInfo=gohugoio

显示可用命令

查看可用命令和标志的列表:

hugo help

要获取子命令的帮助,使用 --help 标志。例如:

hugo server --help

构建站点

要构建站点,进入项目目录并运行:

hugo

hugo 命令构建您的站点,将文件发布到 public 目录。要将站点发布到不同的目录,使用 --destination 标志或在站点配置中设置 publishDir

Hugo 在构建站点之前不会清除 public 目录。现有文件会被覆盖,但不会被删除。这种行为是有意为之,以防止意外删除您在构建后可能添加到 public 目录的文件。

根据您的需求,您可能希望在每次构建之前手动清除 public 目录的内容。

草稿、未来和过期内容

Hugo 允许您在内容的 front matter 中设置 draftdatepublishDateexpiryDate。默认情况下,Hugo 在以下情况下不会发布内容:

  • draft 值为 true
  • date 在未来
  • publishDate 在未来
  • expiryDate 在过去

Hugo 会发布草稿、未来和过期 节点 页面的子页面。要防止发布这些子页面,使用 cascade front matter 字段将 构建选项 级联到子页面。

运行 hugohugo server 时,可以使用命令行标志覆盖默认行为:

hugo --buildDrafts    # 或 -D
hugo --buildExpired   # 或 -E
hugo --buildFuture    # 或 -F

虽然您也可以在站点配置中设置这些值,但除非所有内容作者都了解并理解这些设置,否则可能会导致不需要的结果。

如上所述,Hugo 在构建站点之前不会清除 public 目录。根据上述四个条件的 当前 评估,在构建之后,您的 public 目录可能包含来自以前构建的多余文件。

常见的做法是在每次构建之前手动清除 public 目录的内容,以删除草稿、过期和未来内容。

开发和测试站点

在开发布局或创建内容时查看您的站点,进入项目目录并运行:

hugo server

hugo server 命令构建您的站点并使用最小化的 HTTP 服务器提供页面。运行 hugo server 时,它将显示您本地站点的 URL:

Web Server is available at http://localhost:1313/

服务器运行时,它会监视项目目录中资产、配置、内容、数据、布局、翻译和静态文件的变化。当检测到变化时,服务器会重新构建站点并使用 LiveReload 刷新浏览器。

大多数 Hugo 构建速度非常快,除非您直接看着浏览器,否则可能注意不到变化。

LiveReload

服务器运行时,Hugo 将 JavaScript 注入到生成的 HTML 页面中。LiveReload 脚本通过 WebSocket 在浏览器和服务器之间创建连接。您不需要安装任何软件或浏览器插件,也不需要任何配置。

自动重定向

在编辑内容时,如果您希望浏览器自动重定向到最后修改的页面,运行:

hugo server --navigateToChanged

部署站点

如上所述,Hugo 在构建站点之前不会清除 public 目录。在每次构建之前手动清除 public 目录的内容,以删除草稿、过期和未来内容。

当您准备部署站点时,运行:

hugo

这将构建您的站点,将文件发布到 public 目录。目录结构看起来像这样:

public/
├── categories/
│   ├── index.html
│   └── index.xml  <-- 此分类的 RSS 源
├── posts/
│   ├── my-first-post/
│   │   └── index.html
│   ├── index.html
│   └── index.xml  <-- 此分类的 RSS 源
├── tags/
│   ├── index.html
│   └── index.xml  <-- 此标签的 RSS 源
├── index.html
├── index.xml      <-- 站点的 RSS 源
└── sitemap.xml

在简单的托管环境中,您通常通过 ftprsyncscp 将文件复制到虚拟主机的根目录,public 目录的内容就是您需要的所有文件。

我们的大多数用户将站点部署到 CI/CD 平台,推送到远程 Git 仓库会触发构建和部署。在 托管和部署 部分了解更多信息。


Last updated: January 1, 0001
Improve this page