Hugo快速开始-基本用法
基本用法
使用命令行界面 (CLI) 执行基本任务。
测试安装
安装 Hugo 后,通过运行以下命令来测试您的安装:
hugo version
您应该会看到如下内容:
hugo v0.123.0-3c8a4713908e48e6523f058ca126710397aa4ed5+extended linux/amd64 BuildDate=2024-02-19T16:32:38Z VendorInfo=gohugoio
显示可用命令
要查看可用命令和标志的列表,请执行以下作:
hugo help
要获取有关子命令的帮助,请使用 –help 标志。例如:
hugo server --help
构建您的网站
要构建您的站点,cd 进入您的项目目录并运行
hugo
hugo 命令构建您的站点,将文件发布到 public 目录。要将站点发布到其他目录,请使用 –destination 标志或在站点配置中设置 publishDir。
Hugo 在构建您的网站之前不会清除 public 目录。现有文件将被覆盖,但不会被删除。此行为是有意为之,以防止在构建后无意中删除您可能已添加到 public 目录的文件。
根据您的需要,您可能希望在每次构建之前手动清除 public 目录的内容。
草稿、未来和过期内容
Hugo 允许您在内容的 front matter 中设置 draft、date、publishDate 和 expiryDate。默认情况下,Hugo 在以下情况下不会发布内容:
- draft 值为 true
- date是将来的
- publishDate 是将来的
- expiryDate 是过去的
Hugo 发布 draft、future 和 expired node 页面的子体。要防止发布这些子体,请使用 cascade front matter 字段将构建选项级联到子体页面。
您可以使用命令行标志覆盖运行 hugo 或 hugo server 时的默认行为:
hugo --buildDrafts # or -D
hugo --buildExpired # or -E
hugo --buildFuture # or -F
尽管您也可以在站点配置中设置这些值,但除非所有内容作者都知道并理解这些设置,否则这可能会导致不需要的结果。
如上所述,Hugo 在构建您的网站之前不会清除 public 目录。根据上述四个条件的当前评估,在构建之后,您的 public 目录可能包含来自先前构建的无关文件。一种常见的做法是在每次构建之前手动清除 public 目录的内容,以删除草稿、过期和将来的内容。
开发和测试您的网站
要在开发布局或创建内容时查看站点,cd 进入您的项目目录并运行:
hugo server
hugo server 命令使用最小的 HTTP 服务器构建您的网站并提供您的页面。当你运行 hugo server 时,它将显示你本地站点的 URL:
Web Server is available at http://localhost:1313/
当服务器运行时,它会监视您的项目目录,以查找对资源、配置、内容、数据、布局、翻译和静态文件的更改。当检测到更改时,服务器会重建您的站点并使用 LiveReload 刷新您的浏览器。
大多数 Hugo 构建都非常快,除非您直接查看浏览器,否则您可能不会注意到变化。
LiveReload
当服务器运行时,Hugo 将 JavaScript 注入生成的 HTML 页面。LiveReload 脚本通过 Web 套接字创建从浏览器到服务器的连接。您无需安装任何软件或浏览器插件,也不需要任何配置。
自动重定向
编辑内容时,如果您希望浏览器自动重定向到您上次修改的页面,请运行:
hugo server --navigateToChanged
部署站点
如上所述,Hugo 在构建您的网站之前不会清除 public 目录。在每次构建之前手动清除 public 目录的内容,以删除草稿、过期和将来的内容。
当您准备好部署站点时,请运行:
hugo
这将构建您的站点,并将文件发布到 public 目录。目录结构将如下所示:
public/
├── categories/
│ ├── index.html
│ └── index.xml <-- RSS feed for this section
├── posts/
│ ├── my-first-post/
│ │ └── index.html
│ ├── index.html
│ └── index.xml <-- RSS feed for this section
├── tags/
│ ├── index.html
│ └── index.xml <-- RSS feed for this section
├── index.html
├── index.xml <-- RSS feed for the site
└── sitemap.xml
在简单的托管环境中,您通常将文件 ftp、rsync 或 scp 连接到虚拟主机的根目录,public 目录的内容同样也许如此。
我们的大多数用户使用 CI/CD 工作流部署他们的站点,其中向他们的 GitHub 或 GitLab 存储库推送会触发构建和部署。受欢迎的提供商包括 AWS Amplify、CloudCannon、Cloudflare Pages、GitHub Pages、GitLab Pages 和 Netlify。