Hugo的基本用法
Hugo全部功能都使用命令行接口进行交互。
测试安装是否成功
安装Hugo之后,运行命令:
hugo version
如果安装正确会显示类似下面的版本信息:
hugo v0.105.0+extended android/arm64 BuildDate=unknown
查看帮助信息
查看所有可用命令:
hugo help
使用--help
参数查看子命令的帮助信息,如:
hugo server --help
生成网站
首先cd
到要生成项目的根目录,运行:
hugo
默认的hugo命令会将生成的网站文件放入public
目录中。如果要将生成的文件放入其他目录的话有两种方法,一种方法是生成时使用--destination
参数,另一种方法是在项目的配置文件中设置publishDir
参数。
为避免无意中删除手动放入public目录中的文件,hugo生成网站的时候不会清空public目录,虽然有可能会发生覆盖,但不会删除。
根据自己需求,在生成网站之前可以手动清空public目录。
草稿、未来发布和过期内容的处理
Hugo允许在页面首部设置页面属性,draft
、date
、publishDate
和expiryDate
这几个属性会影响页面的生成与否。默认的,当存在以下几种情况hugo不会生成这个页面:
draft
的值是true
date
的时间值是未来某一时刻publishDate
的时间值是未来某一时刻expiryDate
的时间值是之前的某一时刻 如果想强制生成这些内容,可以使用一些特殊的命令参数,如下:
# 在运行hugo生成页面和运行server调试的时候都可以使用这几个参数
hugo --buildDrafts # 或者 -D
hugo --buildExpired # 或者 -E
hugo --buildFuture # 或者 -F
滥用这些参数可能会产生非预期的结果。
Hugo在生成网站的时候不会清空public目录,因此每次生成网站之后都会包含之前生成的内容,包括草稿、未来发布和已过期内容。
普遍的做法是当不想生成草稿、未来文件和过期文件时,在生成之前先将public目录清空。
开发测试方法
在开发布局或添加内容时,要查看实时预览,可cd
到项目目录运行:
hugo server
hugo会在内存中构建网站,并启动内建的小型HTTP服务器。此时会命令窗口会显示本地网站的访问地址,如:
Web Server is available at http://localhost:1313/
建议开发时不关闭服务器,服务器运行时hugo会监视项目目录中的文件变化,一旦发现文件变更,hugo会自动重新生成网站,并通过LiveReload技术自动刷新浏览器。
LiveReload
当服务器运行时,hugo会自动在内存中生成的HTML文档中插入LiveReload的JavaScript脚本。不需要任何手动配置。
自动重定向
如果想在编辑内容时,让浏览器自动跳转到当前编辑的页面,可以运行:
hugo server --navigateToChanged
部署网站
注意,Hugo不会自动清理
public
目录,如果要清除之前生成的草稿、未来内容和过期内容的话需要手动操作。 生成网站:
hugo
运行成功之后的public目录结构,类似:
public/
├── categories/
│ ├── index.html
│ └── index.xml <-- 当前栏目的RSS订阅源
├── post/
│ ├── my-first-post/
│ │ └── index.html
│ ├── index.html
│ └── index.xml <-- 当前栏目的RSS订阅源
├── tags/
│ ├── index.html
│ └── index.xml <-- 当前栏目的RSS订阅源
├── index.html
├── index.xml <-- 整个网站的RSS订阅源
└── sitemap.xml
使用ftp
,rsync
或者scp
等软件上传public目录中的内容到网站服务器中对应的根目录中即完成了部署网站的操作。