使用Hugo生成静态博客
Contents
一直都想有一个博客,一是自己做一些记录防止以后遗忘,二是和大家做一下分享交流。博客终于建好了,那除了第一篇Hello World,这一篇我就写一下博客搭建的过程。
我还是很菜,好多东西都没有弄明白,只有以后慢慢摸索补充了。
这次打算使用的工具有:
Hugo
Hugo是一款开源使用Go语言写的静态网站生成器,适合数据量不大的个人博客使用。一开始我是了解的Jekyll,因为它被GitHub Pages原生支持,它的书写语言是Ruby,在后面的搭建中,我发现Jekyll的依赖环境比较难以搭建。我又开始比较Hugo、Jekyll、Hexo,最后我选择了不需要搭建并且建站速度非常快的Hugo。
GitHub Pages
GitHub Pages是GitHub提供的一个网页寄存服务,于2008年推出。可以用于存放静态网页,包括博客、项目文档甚至整本书。
Git
Git是由Linux之父Linus Torvalds创作的一个分布式版本控制软件。
Typora
Typora 是一款支持实时预览的Markdown 文本编辑器。
一、网站搭建
安装Git并配置好GitHub
按照GitHub Pages的规则,在GitHub中创建一个username.github.io的仓库,建成后这个仓库名就是你的 GitHub Pages域名,可以直接访问。
接下来我们配置Git,首先在本地创建ssh key
1
$ ssh-keygen -t rsa -C "your_email@youremail.com"
回车确认之后会要求确认路径和输入密码,这里我们使用默认的一路回车就行。成功之后按照显示的路径,找到并打开id_rsa.pub,复制里面的key。
回到GitHub上,进入Account Settings(账户配置),左侧栏选择SSH Keys,点击Add SSH Key,名称任意输入,粘贴你在电脑上生成的Key。
为了验证是否成功,输入以下命令:
1
$ ssh -T git@github.com
如果是第一次会提示是否continue,输入yes就会看到:You’ve successfully authenticated,but GitHub does not provide shell access. 这就表示已经成功连上GitHub。
接下来,我们要做到就是把本地仓库传到GitHub上去,在此之前还需要设置username和email,因为GitHub每次commit都会记录它们。
1 2
$ git config --global user.name "your name" $ git config --global user.email "you_email@youremail.com"
到了这里GitHub的账户就配置好了。
安装Hugo
使用Go语言开发编译后的二进制文件并不需要任何依赖,直接在官网上下载,把下载好的程序解压到C:\Hugo\bin,在系统信息里找到高级系统设置—>高级—>环境变量,在用户变量中的PATH上双击,把Hugo的目录添加上并保存,这样Hugo就安装完 成了。
建站
建立一个名称是example的博客
1
$ hugo new site example
此时会在当前工作目录生成一个example文件夹
安装主题并生成本地网站
对于我这种新手来说,选择一个好的主题是比较重要的一步。对我来说一个符合自己的主题要有一下几点:
- 主题要符合自己的审美
- 主题功能要完善,配置项目要丰富
- 主题要能持续更新并且bug较少
- 主题要有完善的文档
这里我选择的是MemE,主题比较简洁,并且支持暗黑模式。开发者reuixiy的博客也经常更新。
- 安装主题
1 2
$ git init $ git submodule add --depth 1 https://github.com/reuixiy/hugo-theme-meme.git themes/meme
在主题文件夹中找到\config-examples\en\config.toml文件复制替换网站根目录中的配置文件,复制主题文件夹中\exampleSite\resources文件夹到网站根目录。
如果下载主题失败,我们也可以直接下载该主题的zip打包文件,并解压到themes目录。
- 发布文章
1 2
$ hugo new posts/new-post.md $ hugo new about/_index.md
第二步是创建About页面的文章。
创建好文章好,我是用Typora来编辑的。
预览网站
1
$ hugo server -D
这样我们就可以在浏览器中预览网站的效果,默认是http://localhost:1313/,后面的-D参数为的是预览草稿文章。
二、网站发布
编译网站
1
$ hugo
Hugo将编译所有文件并输出到public目录。
推送网站
1 2 3 4 5 6
$ cd public $ git init #如果在安装主题时初始化过仓库,就不需要这一步 $ git remote add origin https://github.com/username/username.github.io.git $ git add -A $ git commit -m "first commit" $ git push -u origin master
推送成功后稍等片刻,我们就可以打开username.github.io来观看实际的效果了。
如果自己有域名的话,可以在DNS设置CNAME记录到username.github.io,然后在仓库的CNAME处设置好域名就可以用自己的域名访问博客了。
更新文章
1 2 3 4 5
$ cd public $ git add . $ git status $ git commit -m "add blog post" $ git push
参考
Author Xin Sun
LastMod 2020-04-06