利用Hugo搭建博客系统
选择的两种静态网页博客系统比较
- Octopress
Octopress 是一款基于Jekyll 的静态站点生成系统,使用ruby编写的,使用这个博客系统需要对ruby语言有一定的掌握。因为自己也学习过ruby,而且现在有个朋友正在使用octopress 2.x作为他的博客系统,所以这次的首选是octopress,但是安装过程稍显复杂,目前octopress 3.x版本的安装相关说明基本上没有,加上很多人抱怨octopress的在post数量超过一定数量后,每次生成页面的速度很慢,综合考虑后放弃octopress。
- Hugo
利用Go语言编写的静态站点生成系统,从速度上来说Hugo完胜,网上对octopress的速度很多人不满,150个post的情况下,octopress生成网页的速度大概需要40秒,而hugo不到一秒就完成页面的生成了,因此也有不少人从octopress换到Hugo,与其到时候更换,还不如从刚开始就选择Hugo,所以最终决定使用Hogo。目前来说只有一个post的情况下,速度方面有多少优势目前还不得知,但是目前来说,速度,发布方式各个方面还是比较满意。
Hugo的安装
安装环境
OS: OS X Yosemite 10.10.4
Ruby: ruby 2.2.2p95
Homebrew: 0.9.5
因为已经安装过Homebrew了,所以最简单的办法就是利用Homebrew安装
如果未安装过Homebrew,可以按照Homebrew官网的指示进行安装(注意:安装Homebrew之前需要安装Ruby)
brew install Hugo
如果没有安装过Homebrew,不想折腾安装Homebrew,可以直接从https://github.com/spf13/hugo/releases下载最新的binary版本。
安装后,执行下面的命令
hugo version
如果命令能够正确执行并输出安装的hugo版本表示安装成功,接着就可以利用Hugo生成site。
博客site的生成
生成site
hugo new site <path>
此命令的目的在path生成site的scaffolding,生成的的文件结构如下
|- archetypes
|- content
|- data
|- layouts
|- static
|- config.toml
进入path目录,接下来,安装主题(themes)
git clone --recursive https://github.com/spf13/hugoThemes themes
这个将从github下载所有的Hugo主题,大小大概有230M左右,下载完成需要等待一段时间。 themes下载完后,修改config.toml的配置
baseUrl= "http://kevensya.github.io/" -- 发布时的博客url
languageCode = "zh-cn" -- 语言(目前还没有发现有什么特殊的作用)
title = "苦X工程师" -- 博客标题
theme = "greyshade" -- 主题名
Paginate = 10 -- 分页大小
[author]
name = "kevenxia"
email = "xxxx@mail.com"
[params]
githubName = "kevensya"
description = "Java,VC++,C++,ObjC,C#使用中" -- 博客的描述
disqusShortname = "crazykeven"
github_user = "kevensya"
excerpt_link = "[阅读全文]" -- 博客首页显示博客概要时代替Read More的文本
每个主题的配置方法都稍微有些不一样,需要研究主题的layout以及官方关于Template的说明进行配置,我这里使用的是greyshade主题。
配置好后,可以生成一个post测试一下。
hugo new post/welcome.md
进入content/目录,多了一个post目录,post目录下多了一个welcome.md文件。
启动本地预览服务器
hugo server -w
这里加上了-w option,这样编写的博客或者layout有变化后能实时反映到web页面上,不用每次重新启动服务器(但是修改了config.toml文件就必须重新启动服务器后修改才能得到反映)。
在浏览器输入 http://localhost:1313 就可以看到博客的首页了,首页上显示了刚才生成的welcome的博客。
发布到Github
每个github账号可以发布一个个人页面的站点(Github pages),我就利用这次这个功能发布hugo生成的静态页面。首先在github建立一个repository,这个repository的名字必须是下面两种格式。
github账户名.github.com
github账户名.github.io
创建完repository后,暂时回到本地进行操作
hugo -t greyshade
利用主题greyshade生成静态html页面,所有的静态页面都在public/中。
进入public目录,创建本地git仓库
git init
将.DS_Store文件添加到忽略列表中(.DS_Store是OSX的系统文件)
echo ".DS_Store" >> .gitignore
执行下面的命令将生成的页面添加到git仓库
git add -A
git commit -m "Initial commit"
将github仓库添加到本地仓库的远程服务器中
git remote add origin https://github.com/kevensya/kevensya.github.io.git
将本地仓库推送到github
git push -u origin master
这样就能通过 kevensya.github.io 来访问博客了,如果博客有更新,可以利用下面的命令再次push到github。
hugo -t greyshade
git add -A
git commit -m "Update public files"
git push
参考文档
Hugo官方文档:http://gohugo.io/overview/introduction/
Hugo静态网站生成器中文教程:http://nanshu.wang/post/2015-01-31/