使用hugo+netlify部署个人主页
本文为原创文章,转载注明出处,欢迎关注网站https://hkvision.cn
前述
起了无数次搭博客的心,前两天才下定决心用hugo弄个博客出来,毕竟码了几年的代码,也需要记点东西。 去年用django写了个博客的半成品,被老师吐槽了审美,也没兴致继续弄下去了。前段时间学了go语言,发现了hugo这个东西,听说这玩意生成网页很快,打算用这个弄。大家实践过程中如果出错了,可以先看一下后面我遇到的坑,也许对你有所帮助。
Hugo
Hugo是由Go语言实现的静态网站生成器。简单,易用,高效,扩展性好,快速部署
Hugo安装
安装方式很多,如果你是Mac,可以选择用brew
安装,类似的linux可以用软件包管理工具安装(apt
,yum
)
|
|
可以选择去github上下载编译好的二进制包,如果你有golang
的环境,可以选择源码编译
|
|
生成站点
使用Hugo快速生成站点,使用命令
hugo new site /blog
这样在/blog
下生成了初始站点,cd
进去
cd /blog
使用主题
到主题列表中选择你喜欢的主题,这里我选择maupassant
这个主题,有读者可能发现了,这个主题并没有提交到官方网站,选择这个主题主要是因为和网上推崇的casper
主题比起来,这个主题是国人从hexo的主题迁过来的,比较符合国人的博客口味。国外的主题如果你没有fb,推特的账号的话基本上这个主题一半的功能就废了
下面我们来安装主题
|
|
安装好的主题放在themes
下
接着是配置主题
网站根目录下新建config.toml
文件,具体配置可看GitHub
的说明,下面是我的配置
|
|
配置默认Front Matter
写文章之前我们先配置一下文章的默认Front Matter
网站根目录下新建文件archtypes/default.md
,下面是我的配置
|
|
写文章
OK前期所有的工作都完成了,我们可以开始愉快的写文章了,执行下面命令
|
|
命令会在根目录下新建content
目录,这个目录保存了你所有的文章内容,会新建一个目录post
,下面则是你的各篇文章
打开first.md
你会惊奇的发现自动给你添加了Front Matter
,你根据你这篇文章的内容修改相应的头,例如这篇文章的头
|
|
然后开始写你的文章主体。
运行
文章写完后就可以开始运行了
|
|
这个命令用于开启本地调试,还可以自动更新,得益于Hugo的高效,你可以一边写文章一边实时的查看你的文章的网页表现
浏览器里打开: http://localhost:1313
这里插一句
归档
页面的事归档
页面需要你在content
下新建archives
目录,新建index.md
,然后填入以下内容
|
|
这样才能正常归档
部署netlify
我博客部署在netlify
上面,不选GitHub Pages
主要是因为百度收录不了GitHub Pages
,具体原因参考参考,作为“内事不决问百度,外事不决问谷歌”
的“内事”
,百度还是不能随便放弃的,于是我打算用netfily
,当然你也可以用Coding
了。
Netlify
官网:https://app.netlify.com
进去后直接用Github
登录,安装Github app
,反正按照流程来就行了,记得直接将网站所在的repo作为持续部署的库,会自动识别这个库是Hugo的库,command那里会自动填充Hugo
,Publish directory
那里会自动填充public
一切顺利的话你的网站已经成功部署了,netlify也提供二级子域名供你使用,如果你有自己的域名的话,也可以自定义域名,然后在域名服务商那里调整一下解析路线。
netlify
提供持续集成,自动HTTPS,检查是否混用等实用功能,当你更新文章后直接推送到github仓库,netlify
会自动重新构建,构建成功会自动发布,非常方便。当然GitHub Pages
也可以做持续集成,自己写一个小shell
就行,网上教程很多,就不列举了。
几个坑
BaseUrl
一定要配置好,特别是后面用自己的域名的时候,或者你一开始就准备好了部署的域名。若出现更换域名的情况,则除了修改DNS以外,还要修改BaseUrl
,重新发布。- 大家可能发现
关于
页面,工具
页面好像返回的404
。其实这是因为你还没有写对应的文章,你可以在content
下新建一个about
目录,然后新建index.md
,这里写自己的关于页面,工具
页面同理 - 用
git clone
下来的主题其实都是submodules
,但是没有相应的.gitmodules
文件,而netfily只认submodules
,只认.gitmodules
文件,所以在下载主题的时候,要么用git add submodules
命令,要么就手动添加一个.gitmodules
文件,文件内容如下
[submodule "themes/maupassant"]
path = themes/maupassant
url = https://github.com/rujews/maupassant-hugo
这是最大的坑,很折磨人,尤其是我对git的子模块一点不熟
- 有些人可能会问我明明添加了文章但是为什么不显示呢?通常这是因为文章的
draft
参数没有设置为false
,设置为true
的时候代表是草稿,是不会渲染的,所以你看不到。其实这个很简单但是刚开始用的时候总是会忘。 - 如果你看不到
netlify
的部署日志(我在网上搜了无数次都没人提到这个),显示Deploy logs are currently unavailable. We are working on resolving the issue.
,那是被墙了。
祝大家每一步都顺利
- 原文作者:HaoKunT
- 原文链接:https://hkvision.cn/2019/07/27/%E4%BD%BF%E7%94%A8hugo-netlify%E9%83%A8%E7%BD%B2%E4%B8%AA%E4%BA%BA%E4%B8%BB%E9%A1%B5/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。