这篇文章目的是记录创立博客的过程以及踩的各种坑
1. 博客创立的初衷
在浏览52pojie论坛的时候,无意中发现有人用hexo搭建了博客,虽然之前也有搭建博客的想法,但是国内服务器需要备案,国外服务器不稳定,价钱也是一个问题,在简单的搜索了解之后,发现hexo不仅美观简单,最主要的是免费,只需要部署在github即可,对于我这个充满挑战精神(其实是穷)的大龄后端程序员来说,真的是完美适合,本以为搭建起来很简单,但是也遇见了好多坑,废话不多说,让我们开始记录这次博客之旅吧。
2. hexo以及Butterfly主题的本地安装
安装参考的官方文档: hexo 以及 Butterfly
在此,还是要记录一下,自己前期嫌麻烦,没有好好阅读官方文档,遇见问题就百度,浪费了好多宝贵的时间,一定要好好阅读官方文档!
3. hexo的启动
3.1 hexo的一些命令
清除缓存
1 | $ hexo clean |
生成html文件
1 | $ hexo g |
hexo本地启动,端口号4000
1 | $ hexo s |
hexo发布git(需要安装插件,详情参考官方文档)
1 | $ hexo d |
3.2 启动后遇到的问题
3.2.1 点击tags和category报错404
参考文档,要好好阅读文档,自己在这上面浪费了太多时间
4. 对于Butterfly主题的修改
大部分修改遵循官方文档即可,但是这里,我发现了一个bug,如下所述
4.1 bug
我们在修改butterfly.yml的美观设置时,打开美观渲染过多,发现首页的打字效果连字都不显示了,F12之后,发现html居然加载不全??!吓的我赶紧打开source/路径下生成的html文件,居然发现source下面的html正常,好端端的浏览器就是加载不完全!!!可惜的是当时没有截图,这个问题困扰了我好久,但是对于一个实在不怎么了解前端的人来说,实在是排查不了,也只能折中处理,少打开一些渲染,关闭了繁简转换开关,让html加载完全吧
ps: 这个破bug可能和本地环境有关系,在又遇到这坑爹情况后,本来想给Bufferfly作者提交issue,但是在由本地部署到git之后,这个奇怪的bug消失了,也就是说,只在本地存在,可能是nodejs缓存太小了?whatever,没有了就行
4.2 对于博客图床的建立
对比了什么乱七八糟的七牛云,又拍云,我依旧把目光集中在了免费的github上,哈哈,谁让咱穷呢。解决方案: jsDelivr + Github
步骤:
- 1.建立新仓库用于存放图片
- 2.上传图片到git
- 3.发布版本,这里一定要release,不然取不到图片
- 4.地址格式:
https://cdn.jsdelivr.net/gh/你的用户名/你的仓库名@发布的版本号/文件路径,例如:https://cdn.jsdelivr.net/gh/TRHX/CDN-for-itrhx.com@1.0/images/trhx.png
4.3 对于评论系统的设置
我选择的是Valine,按照官方文档配置,实名认证后就看可以使用了
5. 域名的配置以及发布
- 1.新建仓库
github新建一个仓库,仓库名为<user-name>.github.io格式,其中user-name是自己的github的昵称 - 2.部署hexo
这里参考了官方文档,安装相应模块,使用
1 | git d |
来部署到git仓库
- 3.申请个人域名
去各大域名厂商申请个人域名,很早以前在腾讯云申请过域名,刚刚好用得上。 - 4.配置域名解析
这里执行
1 | ping <user-name>.github.io |
就可以拿到github对应的ip地址,然后添加A记录,记录值设置成刚刚拿到的IP地址
- 5.在博客根目录的source/文件夹下,新建CNAME文件(注意:没有扩展名,就叫CNAME),编辑CNAME,内容为A记录的域名
- 6.打包重新发布到github,使用自己的域名登陆,大功告成
6. 为自己的域名配置https
又遇到了国内的坑爹备案机制,由于自己的域名在腾讯云,需要备案后才能申请ssl证书,这里选择国外的Cloudflare代理形式
- 1.到Cloudflare官网注册;
- 2.根据指引点击Add Site,添加自定义域名,会自动开始扫描DNS解析记录;
- 3.扫描完成后,Cloudflare会选择给我们分配两个NS地址,登陆腾讯云控制台,将自己域名下的DNS解析地址换为Cloudflare分配的地址
- 4.等待DNS解析生效,大概十几分钟就ok了,然后登陆Cloudflare控制台,选择SSL/TLS菜单,将加密模式改为完全,大功告成
改造完成后,实测发现网站加载速度变慢了,但是这博客也就自己用,还能接受吧
7.hexo的文章加密插件
这款插件可以加密自己的博文,但是有几个问题,
- 1.自己的站点必须支持https。这也是为什么在第6步改造https的原因
- 2.老版本ie没办法解密,谷歌浏览器实测没问题
7.1 插件的安装
参考github,按照步骤来就行
8.hexo的多媒体标签
参考,按照步骤一步一步来就可以
后记
虽然说这个博客搭建很简单,但是也浪费了自己好多时间,不过,不积跬步无以至千里,慢慢的积累,总有飞翔的一天,给自己加油!