Hugo + Github Pages搭建个人博客
使用Hugo搭建个人博客,并部署到Github Pages上。
安装Hugo等软件
参考Hugo官网安装说明,必要软件包括:Hugo,Go,Git。
Mac用户可直接使用Homebrew进行安装
|
|
在本地创建博客
初始化博客
下述命令将新建一个名为Blog
的文件夹(可以自定义改成其他名字,下文中该文件夹统一都用Blog
这个名称),该文件夹用于存放博客的所有文件。进入到新建的Blog
文件夹中,进行Git初始化。
|
|
使用git submodule add
命令下载主题到themes
文件夹中,并在配置文件hugo.toml
中指定使用的主题的名称,更多主题参考Hugo官网和Github。下述命令下载了一个主题放在了themes/ananke
路径下,并在hugo.toml
中指定了theme
的值为ananke
。
注意
主题的名称可以自定义,例如下述命令中可以将ananke
替换成其他名称。可以安装多个主题,但应注意hugo.toml
文件中theme
的值应该是themes
文件夹下的某个文件夹的名称。
|
|
最后在Blog
路径下运行下述命令,即可在本地运行博客,默认端口是1313
,打开网址http://127.0.0.1:1313
即可预览博客,具体使用的端口详见命令的输出结果。-D
与--buildDrafts
等效,作用是会显示草稿文章。
|
|
新增博客文章
在Blog
路径下执行下述命令,将新建文件content/posts/my-first-post.md
,可将所有后续的所有博客文章都放在content
下的posts
文件夹中。
|
|
注意
默认生成的文章,可以在文章头看到draft
为true
,即为草稿文章,一般发布网站时不发布草稿文章,因此对于要发布的文章,需将draft
值改成false
或者直接删除文章头中draft
这一行配置。
创建Github Pages
创建一个仓库,名称为<username>.github.io
,比如用户名是Huxley927
,那么该仓库的名称应该是Huxley927.github.io
;并且仓库为Public
类型,如下图:
在后续将博客网站的文件上传到该仓库后,<username>.github.io
就是自己博客的网址。
发布网站
注意
手动发布网站的方法可行,但推荐下文提到的用Github Actions自动发布网站,先了解手动发布网站的过程,再看如何用Github Actions自动发布网站
手动发布网站
在Blog
路径下运行hugo
命令将会生成静态博客网站,网站的文件在都在public
文件夹中。
|
|
提示
进入到public
文件夹,比如可以用python -m http.server
命令即可运行一个本地服务器,运行下述命令后就可以在浏览器中打开127.0.0.1:1313
看到Hugo生成的博客
|
|
将public
文件夹上传到上述创建的<username>.github.io
仓库中,首次提交到Github上,在public
文件中需运行以下命令:
|
|
注意
需先配置好Github SSH
以后每次本地博客有修改后,按照以下步骤更新网站:
- 在
Blog
路径下(即上面创建的博客所对应的文件夹)下执行hugo
命令 - 进入到
public
文件夹下,将public
文件夹中的内容提交到Github上的<username>.github.io
仓库中
上述两个步骤是每次更新网站的必要步骤。但是最好还是再创建一个Github仓库(可设置成私有仓库),比如取名为hugo-blog
,用来存放博客的所有文件,这样的话,以后每次本地博客有修改后,需完成的事项有:
- 在
Blog
路径下中执行hugo
命令,并将public
文件夹的内容提交到<username>.github.io
仓库中。(即上面提到的两个步骤) - 将
Blog
文件夹提交到hugo-blog
仓库中
用Github Actions自动发布网站
相较于手动发布网站,用Github Actions自动发布网站达成的效果是,每次需更新网站时,只需将Blog
文件夹上传到hugo-blog
仓库中,之后Github自动就会更新<username>.github.io
仓库中的内容,无需手动将public
文件夹上传到<username>.github.io
仓库中。
创建access tokens
打开Github网页,点击右上角个人头像,进入Settings
界面,点击设置列表中的Developer settings
点击Personal access tokens
下的Tokens(classic)
,然后点击Generate new token
下的Generate new token(classic)
生成access token时,勾选workflow
最后点击页面下方的Generate token
按钮即可。生成完成后如下图,将生成的access token
复制下来,以后这个aceess token
将不可见。
创建Actions Secret
进入到上面提到的hugo-blog
仓库,依次点击Settings
、Secrets and Variables
、Actions
、New repository secret
如下图,输入Name
和Secret
,Name
可自定义,这里取名为HUGO_TOKEN
,Secret
即为上面生成的access token
。
最后点击Add secret
完成。
创建Github Action
在.github/workflows
文件夹下创建一个yaml
文件,比如.github/workflows/hugo_deploy.yaml
,文件的内容如下:
|
|
发布网站
public
和resources
文件夹都是Hugo生成静态网站时创建的,因此在.gitignore
文件中可以添加以下内容
|
|
最后,将Blog
文件夹提交到hugo-blog
仓库中即可,首次提交到Github上,用到的命令如下
|
|
提交到Github上后,稍等一会儿,打开<username>.github.io
就可以看到更新后的网站了。
进一步的配置
参考资料
相关内容
- Hugo博客的配置文件
- Hugo博客文章模板-Archetypes
- GitHub Pages绑定个人域名
- GitHub+jsDelivr+PicGo搭建免费图床
- Jekyll博客中基于LeanCloud统计文章阅读量