Hugo是一个用Go语言编写的静态站点生成器,运行速度快,而且拥有相当丰富的主题。本博客就是基于hugo搭建,使用 hugo-thme-jane 主题,部署于阿里云。发布博客一般本地编辑好博客文章,然后部署到服务器上,本人是使用webhook实现的自动化部署。
快速搭建
安装hugo
使用Homebrew安装hugo,Mac用户安装 Homebrew ,Linux用户可以参考 Homebrew-on-Linux
|
|
创建博客
创建博客站点很简单,直接运行 hugo new site kxcsblog
即生成站点目录。生成的站点目录结构如下:
|
|
设置主题
本博客使用的主题为 hugo-thme-jane,到themes目录,将主题clone到该目录。
|
|
创建文章
hugo使用Markdown作为书写标记语言,然后将Markdown渲染成html。下面的命令将在content/post/目录下生成 welcome.md 文件,编辑该文件输入您的内容。
|
|
测试博客
使用 hugo server
就会在本地 1313 端口起一个 http server,浏览器打开 http://localhost:1313 就能看到自己博客的效果。
博客部署
一般书写博客都是在本地编辑完成,然后部署到服务器。这里介绍使用github webhooks来实现网站的自动化部署。
- 在github新建一个repo,将博客目录托管到github,代码仓库可以为private。
- 在服务器上运行一个接收webhooks的服务,这里我是用golang写的,使用的第三方webhooks library,参考下面的代码,比较简单。
- 在github kxcsblog 仓库添加webhooks,本人设置的只监听push event,这样当有更新push到仓库时,github将发送POST请求到webhooks提供的url地址,如下图。
- 服务器上运行的服务接收到webhooks事件,从github pull最新代码,执行hugo生成最新的博客页面。
- hugo生成的页面位于public目录,将该目录的内容copy到nginx server location即可,或者直接从nginx server location 建一个软连接到public目录。
- 验证,下图Recent Deliveries是github webhooks发送结果,可以看到已经正确返回。
|
|
参考
https://github.com/go-playground/webhooks
以上,欢迎学习交流 lzhujian#gmail.com