Hugo 基本用法

简介

Hugo 是一款命令行工具。网站创建、生成以及发布等工作都在命令行写来进行,虽然 Hugo 提供了丰富的命令,但常用的命令比不多,所以不熟悉命令行的朋友并不需要太担心。要查阅 Hugo 提供的全部命令,在命令行下输入 hugo help ,就可以看到详细的命令使用帮助指南。

网站预览

在将网站发布到互联网之前,往往需要自己先预览检查一下。Hugo 提供了在本地电脑预览网站的功能,只需要在网站根目录下输入命令:hugo server 就可以在自己电脑上用浏览器打开链接 http://localhost:1313 来查看网站。

Hugo 提供的不仅仅是预览网站,而且是实时的预览,也就是说在运行过预览命令后,任何对网站根目录下文档的编辑更改,会立马在预览网站中看到相应的改变,这样就可以为写作者提供一种及时的反馈体验,免去了重复运行预览命令的麻烦。

不过实现这个功能是以牺牲性能为代价的,如果你的网站使用 Hugo 来充当服务器,为了提升性能可以关闭这个实时预览的功能,为预览命令添加选项 --disableLiveReload ,也可以通过网站配置文件的配置项 disableLiveReload 来关闭。当然对于没有使用 Hugo 来充当服务器的情况来说,完全没必要担心这点,因为预览阶段只发生在自己电脑上写作期间,最终发布的网站文件都是静态文件,不存在编辑更改、实时变化的情况。

网站生成

我们创建好网站目录、添加了主题和内容文档、并对网站做了一些配置,使用 Hugo 提供的预览功能,在自己电脑上查看过网站的显示效果。然后当我们准备要发布网站之前,首先要做的是将网站目录中的内容转换为可以发布的网站内容。Hugo 提供了为这个最常见的需求,提供了最为简洁的命令:hugo ,只需要在网站内容的根目录运行该命令,很短很短时间内,就可以得到一个子目录 public ,该目录内存放了最终用来发布的网站文件。

更改网站内容路径

默认情况下使用 hugo 命令生成网站时,会从命令行所在的当前目录读取网站内容(源目录),并将生成好的网站内容写入到当前目录的子目录 public 中(目标目录)。

Hugo 同时也支持明确指定网站的源目录和目标目录,在运行 hugo 命令时,通过选项 -s your-site-folder -d your-public-folder 来分别指定源目录和目标目录,这里指定的参数可以是相对路径或者绝对路径。此外还可以通过网站配置文件中的配置项 publishDir 来控制目标目录的位置。

控制文档的生成

一般情况下,没有人会发布草稿文档。因此 Hugo 默认在生成网站时,是不会去处理草稿文档的。除了草稿文档外,Hugo 默认也不会处理发布日期标记为未来时间的文档,以及失效日期标记为过去时间的文档。

文档的草稿状态、发布日期以及失效日期都是可以通过文档头来进行标记的,相应的字段是 draft , publishdate , expirydate ,其中只有 draft 字段是在通过 Hugo 创建文档时会被自动添加到文档头部的,如果有需要可以自己在文档头部添加另外两个字段(日期格式为 2012-04-06)。

如果某些情况下,确实想要发布这三类文档的话,Hugo 也为此提供了支持,分别为网站生成命令 hugo 添加选项 --buildDrafts , --buildFuture , --buildExpired 来生成它们(可以一起使用或单独使用)。此外还可以通过网站配置文件中的配置项 buildDrafts , buildFuture , buildExpired 来控制这些文档的生成。

开发模式

在每次运行 hugo 生成网站时,Hugo 是不会把 public 目录删除再重新创建的,而是将新的内容添加到该目录下。这样在某些情况下会出问题,比如说无意间强制生成了草稿文档,那么在最终发布网站时这些草稿文档就会被发布出去了。也许你想要在每次生成网站前,手动去删除 public 目录,但这样会带来很多问题,比如使用了 Github 来发布网站,也就意味着 public 目录其实是一个本地的 Git 代码仓库目录,删掉它后需要额外的步骤才能再次将它跟 Github 上面的远程代码仓库关联起来。

更好的办法是,在创作网站时和发布网站时,指定不同的网站生成位置,比如在创作网站期间生成网站运行命令:hugo -d dev ,在最终生成发布的网站时运行命令:hugo

Previous
Next