博客程序有很多,有Wordpress、Emlog、Ghost、Typecho等这些动态博客程序,也有当下流行的静态博客程序,比如Jekyll、Hexo、Hugo、Octopress等等。当然这些程序都很优秀,但是在重新搭建博客时,考虑到页面生成速度,以及自己使用Golang的背景,最终选择了Hugo。
Hugo的优点
- 安装方便,只需一个二进制文件即可用于本地调试和页面生成
- 多平台兼容,包括Windows、Linux、Mac,下载不同的二进制文件即可
- 页面生成效率高,几乎是瞬间完成
- Hugo的Server自带watch调试模式,有任何修改,无需刷新即可在浏览器呈现效果
- 易于配置、易于扩展,功能强大
快速搭建
下载安装
安装方式可以直接下载二进制文件,也可以源码编译安装。这里选择相对更方便的第一种方式,不同平台的二进制文件可以到Hugo Releases进行下载。
当然如果你使用的是Mac OS,可以直接运行 brew install hugo
来进行安装。
创建博客
1.创建博客目录
创建博客站点很简单,直接运行 hugo new site blog
即可生成站点目录。目录结构如下:
archetypes
config.toml
content
data
layouts
public
static
themes
2.选择模板
接下来就是选择博客模板,可以在 Hugo themes 选择自己喜欢的模板,比如我们选择Jane,下载下来。
cd blog
git clone https://github.com/xianmin/hugo-theme-jane.git --depth=1 themes/jane
复制模板的配置文件,并根据自己需要修改配置文件。
cp themes/jane/exampleSite/config.toml ./
3.创建文章
创建自己的第一篇文章,只需要运行 hugo new post/first_post.md
命令,就会在 content/post
文件夹下生成一个 first_post.md 的文件,编辑该文件,输入自己要写的内容,保存。
4.测试博客
测试博客也非常容易,只需要运行 hugo server
,就会在本地起一个端口为1313的server,在浏览器访问 http://localhost:1313
就可以看到自己的博客效果了。
这个server会监控你文件内容的变化,任何的修改,都不需要手动刷新页面,就可以在浏览器里实时看到效果。
发布部署
因为大部分人都是在本地书写博客文章,但是如果要给外部人看,我们还是要把我们的页面放到网上。怎样做最方便呢。
最方便的就是存放在 Github Pages 或者 Coding Pages 等类似的静态托管服务上面,这个网上有很多的教程,在此不多说,可以自行搜索。
这里重点说,如果你有自己的服务器的情况,讲一下本站采用的方式:
- 博客目录提交到Coding私有git仓库
- 在服务器运行了一个使用golang写的简单的接收webhook的服务。
- 在Coding后台添加webhook
- 每次写完文章就push到Coding,webhook接收到push事件,就执行
git pull
拉取最新的文件 - 服务器拉取到最新文件后,执行
hugo
生成静态页面。
这样做的好处是,我只需要专注于写作,写完提交到coding即可,剩下的都是自动完成,不需要自己来做处理。
评论的选择
曾经国内的评论应用遍地开花,多说、友言、网易云跟帖、搜狐畅言等等,但是由于无法盈利,纷纷关闭,现在只剩下搜狐畅言了。国外的Disqus又因为众所周知的原因在国内无法使用。
但是广大程序员发挥自己的聪明智慧,使用 Github Issue 曲线实现评论功能,比如 GitTalk 和 Gitment。
本站使用Disqus实现评论功能,为了方便大陆用户的使用,在香港服务器部署 disqus-php-api ,这样当无法加载Disqus的时候就会加载简易评论,并通过香港机器转发,实现Disqus评论的可用性。