快速开始

blog 之前用的是 hexo 来实现,但换新环境都要搞一大堆东西,很麻烦,所以荒废了好久没写什么东西了。

这段时间打算迁移到 hugo1,一个 go 写的生成静态博客的工具,生成速度极快,且能关联到 github-pages

这篇文章简单记录如何使用 hugo,以及如何与 github-pages 打通。

hugo 具体使用可参考官方文档,上手及其简单,我使用的是 next 主题2

github pages

配置 github-pages 也较简单,且支持多种配置方式,我采用了GitHub User or Organization Pages3 的方式,大体步骤如下:

  • 新建一个 blogrepo,将本地的 hugo 目录导入至该 repo

  • 添加 public 目录至 gitignore,保存官网提供的 deploy.sh ,然后提交到远程。

  • github-pagesreposubmodule 引入至 hugopublic 目录,注意,如果需要先删除本地的 public 目录(如果存在)。

  • githubrepo 作为 submodule 引入至 public,这样每次 hugo 生成的静态文件就直接 push 到了该 repo

  • 关键操作如下

1
2
3
4
5
6
git remote add origin https://github.com/liuyu121/blog.git
echo "public" >> .gitignore
vim depoy.sh

rm -rf public
git submodule add  -f  -b master https://github.com/liuyu121/liuyu121.github.io.git public

以上,操作简单方便,没有一堆 nodejs 的依赖,生成速度极快,可见即所得。

添加评论系统

开源的评论系统很多,我选择用 utterances,一个依托于 github-issues 的评论系统,配置及其简单。

修改 config.toml 文件,这里我直接使用 liuyu121.github.io 作为 repo

注意:这里的 repo 填写的是名称,而不是全地址,否则会加载不出来。

1
2
3
  [params.utterances]       # https://utteranc.es/
    owner = "liuyu121"              # Your GitHub ID
    repo = "liuyu121.github.io"

图片处理

  • 图片都放在 static/img 目录下,在文章引用方式为:![](/img/tcp-segment-header.png)
  • archetypes/default.md 文件添加 typora-root-url: ../../static

这样,我们就可以正常的在 MD 文件插入图片,而服务器与本地都能正常展示了。

脚手架

deploy && publish

改写了下 官方的 deploy.sh,支持 publishdeploy,脚本很简单,本质就是封装一系列命令。

1
2
3
4
5
$ ./deploy.sh
Usage: deploy.sh
        a : publish && deploy
        p : publish
        d : deploy

push && new post

  • 生成新的 md ,并自动打开(将 .md文件默认打开方式设置为Typora
  • 自动 pull
1
2
3
4
$ ./util.sh
Usage: util.sh
        new md-file-name : create the md file at content/post/md-file-name.md
        pull : pull repo && submodules

  1. hugo 官网 ↩︎

  2. hugo-theme-even ↩︎

  3. hosting-on-github ↩︎