
Hugo+Github Pages+Github Action博客方案之一——使用Hugo搭建个人博客
花了一些时间用hugo重新搭建了猫狗窝,托管在github page上,又利用github action实现了CI/CD。非常省心!做到了专注写文,直接发布的效果。本篇记录就是写一点发布一点,陆续成文。
下面就把这一次趟坑的过程总结一下,本系列包括三部分:
- 搭建本地服务
本篇为第一部分——搭建本地服务
为什么重建
19年的时候,用leanote做私有笔记服务,这样可以直接把笔记发成web页面,省去很多维护公共平台账号之类的杂事。但个人站点随之而来的维护工作,又让我陷入繁琐,违背了使用leanote是为了专注在写作上的初心。最终个人站还是荒废了。
今年决定重启blog,作为记录和写作的练习地。
为了避免又一次陷入泥潭,这次的笔记方案要满足以下几个需求:
- 支持md,并且要保证将来可以方便的迁移
- 可实现服务托管
- 源文件和站点文件都能够完全掌控
- 框架要有良好的社区支持
框架选择
基于希望专注写作的考虑,首先排除了wordpress,因为它太重了,提供的管理服务太灵活了,非常容易让人分心。我需要的博客引擎,一定要提供最简单的写作体验。
一番寻找之后,锁定了三个引擎:jekyll、hexo、hugo,这是目前码农最喜欢用的三个博客生成器。下面就对它们做个简单的对比。
关于编译速度的差别,原因在于Hugo使用go语言开发,go是一种编译型语言,执行速度非常快。而Jekyll使用ruby,Hexo使用nodejs,这两种语言都是解释型语言,执行效率比go低很多。而nodejs又比ruby快一些。从上面的数据可以看到,Hugo比Jekyll快了近10倍,完全不是一个量级的比较。
最终,我选择了Hugo。虽然上手可能需要一点时间,但几乎所有维度的比较,都让Hugo成为我的第一选择。
本地搭建
下面就开始Hugo的探索之旅。
安装hugo
非常简单的安装。我使用的是 macOS,官方推荐用 homebrew 方式。
完成后,可使用以下命令进行验证:
创建站点
hugo new site 给博客起个名字执行后会创建一个文件夹,与命令中的名字同名,包括以下内容:
其中
config.toml: hugo配置文件
content: md文件和html
static: 静态资源
themes: 主题
其他的可先不管。
选择主题
Hugo没有默认主题,所以需要自己安装主题。我使用的是hugo-theme-cleanwhite 。官网主题库:Hugo Themes
启动 Hugo 服务器,在 http://localhost:1313/ 将会看到由主题生成的示例网站
或只需要
即可。
配置hugo
配置文件在网站根目录下 config.toml , 根据自身需求进行修改。在 hugo-theme-cleanwhite 主题下的 exampleSite 文件夹中的文件可作为参考。默认的文章将存储在 ./content/post 中,每当写完文章,运行 hugo 命令,Hugo 将自动生成静态网站到 public 文件夹中,我们只需要将该文件夹的内容发布在网络上即可。
更多关于主题的配置可以参考 hugo-theme-cleanwhite README.md
更详细的配置规则,可参考Hugo官方文件
写作
hugo new post/hello-world.md本地部署
本地调试命令,执行它,就可以直接通过 http://localhost:1313 地址访问本地预览网页。
本地发布命令,执行它,就能在public/目录下生成整套静态网站,可以直接复制到web服务器中。
至此,Hugo本地方案的搭建过程完成!


