最近有点空了又开始折腾个人博客了,听闻hugo有上升的趋势,于是就去体验了一把。
hugo是用go语言编写的项目,帮助用户以很快的速度搭建静态站点。方式是和hexo一样,生成静态html文件。与hexo的区别在于,在达到千级别的文章数量以后,hexo的性能就跟不上了。又由于大火的go语言,所以hugo开始崭露头角。
hugo使用和环境搭建
这里以windows环境为例,并默认你已经有github账户和掌握基本的编程知识。
- 先下载hugo https://github.com/gohugoio/hugo/releases ,选择自己对应的操作系统安装包
- 解压,把hugo.exe加入环境变量。
- 把hugo.exe放到
C:\hugo\
下 - 然后在环境变量的path环境变量中添加这个路径
- 然后在cmd中测试,输入命令
hugo version
- 把hugo.exe放到
- 在你自己想要的目录下打开cmd输入
hugo new site hugo-blog
,hugo会自动生成一个hugo-blog文件夹 - cd到目录下,cmd输入
hugo hello.md
,hugo会在content目录下新建一个hello.md文件。这就是写文章。里面的内容自己编辑,可能会带有draft=true的参数,表示这是一篇草稿。 - cmd输入
hugo -d
在public目录生成静态站点文件,这里面的所有文件就是你要push到github page上的静态文件。也可以使用hugo -d blog
自定义生成文件的路径为blog文件夹 - cmd输入
hugo serve
就可以在 http://localhost:1313 进行本地预览。注意如果你的md文件是草稿,是看不到的,此时有2个办法:一个是删掉那一行,还有一个是使用hugo serve --buildDrafts
命令 - 使用
hugo serve -w
命令可以进行实时预览,当文件保存以后,1313端口的本地页面会自动刷新
hugo自定义
主配置文件在config.toml
里,可以自己修改host、网站标题、描述等
主题:自行搜索,或者去(https://themes.gohugo.io/ )自己挑一个。
主题下载以后解压,将主题文件夹整个放到根目录的themes 目录下,然后去根目录的config.toml
下加一行:
theme = "hyde"
,我这里用的是hyde主题(https://github.com/spf13/hyde/)
以上内容的参考资料来自 这个网站
利用travis-ci自动部署到github page
正常情况下我们只需要hugo -d,然后把生成的文件全部push到 username.github.io仓库下就可以了。但是每一次这样做很不方便,于是就使用了持续集成。
我们先把整个hugo-blog目录也做成一个git仓库,我的地址: https://github.com/lzh77/hugo-blog
然后创建travis-ci所需的配置文件,如下: https://raw.githubusercontent.com/lzh77/hugo-blog/master/.travis.yml
你可以直接使用他,注意自己改成自己的 git用户名 和 github page 仓库地址。
配置文件中有一个GITHUB_TOKEN变量,我们需要自己申请一个token用于travis-ci:
- 到 https://github.com/settings/tokens 选择
access tokens
,新建一个,权限选择除了delete_repo以外的全部。复制下它,因为返回以后你自己也看不到它了,只能重建一个。
进入 https://travis-ci.org/ ,选择github账户登录:
- 进入我们的
hugo-blog
项目,是空白的,点击中间的绿色按钮 active 将它激活为一个travis-ci 项目。如果你没有先写好.travis.yml
文件,则会激活失败。
右上角点击进入setting 页面,填入自定义的环境变量:
- 在Environment Variables 下新建环境变量 GITHUB_TOKEN 填入我们刚刚申请的token即可。
- 在General 下保证
Build pushed branches
和Build pushed pull requests
都开启。
然后回到 hugo-blog 的git仓库,进行一个新的push,刷新 travis-ci.org 的页面,你会看到正在进行自动部署。这样我们每一次新的文章被push上去,博客就会自动更新。
以上的内容参考 https://blog.csdn.net/woblog/article/details/51319364
下面是我的博客:https://lzh77.github.io/