Hexo
什么是 Hexo?
Hexo 一个基于 Node.js 的静态博客写作工具(大致可以这么理解),轻量,方便,高逼格是其最大的优点。它的主要特点就是将我们书写的 markdown 文档转化为页面,然后可以由我们自由部署到个人的服务器,或者 Github Page。
Hexo 使用
Hexo 具体如何使用,网络上有很多文章,这边也不一一列举。推荐一下mutoe写的博客。
Hexo 更换主题
当我们照着mutoe的文章初始化之后,并且通过 hexo server 运行本地服务之后,就会发现 Hexo 的默认主题,很古老,有点呆板。作为前端 + 强迫症,我并不能接受这种主题,好在 Hexo 给我们提供了更换主题的功能(这也是我觉得 Hexo 最 Nice 的地方!)。
Hexo 社区给我们提供了许多可选主题(感谢这些主题的开发者们,让我们能自己挑选自己喜欢的博客主题!),所有的主题列表可以参考Hexo 主题。
Hexo 更换主题很简单,只需要通过 git clone 命令,将自己喜欢的主题文件 clone 到根目录下面的 themes 文件夹下,然后修改根目录下面的 _config.yml ,找到 theme 选项,将其改为你 clone 下来的主题文件的包名,例如

之后文章均以 melody 主题作为替换之后的主题
当然,Hexo 配置也有几个比较坑爹的地方,比如配置文件中的 keywords,它接受一个数组,但是!!!重点来了, .yml 文件的数组格式是下面这个样子的

如果不按照上面的格式配置 .yml 的数组就会构建报错
配置完这些,然后确认主题文件所需求的依赖都已经安装完毕,我们就可以愉快的把更换主题之后的 Hexo 跑起来了。

这里插播一个安利,安利一首歌,也是我的博客名字,来自歌手青山テルマ的そばにいるね。真的很好听!!!
很多主题都为使用者提供了丰富的插件配置项,使用者可以自由配置。
melody 也一样,具体可以参考melody 文档
Hexo 开启评论功能
首先此功能多数是主题附带的功能,当然也可以独立配置评论插件(这个过程可能会很繁琐)。
这里我们使用 melody 附带的评论系统,它支持很多的评论插件,这里使用gitalk。
首先根据 gitalk 官方的说明文档,我们需要去github 申请一下对应的GitHub Application。
申请完毕之后,我们按照 Hexo 文档配置 gitalk,在主题下面的 _config.yml 中找到下面这段配置,输入自己的信息即可
强烈推荐在 source 文件夹下面新建_data 文件后创建 melody.yml ,然后复制主题文件夹下的(划重点) _config.yml 内容到 melody.yml ,之后所有关于主题的配置均在 melody.yml 下配置修改即可,且可以做到平滑升级。
gitalk: |
配置完以上内容之后,博客的评论系统正常是可以使用了,大概样子如下

但是我们忽略了一点,因为 gitalk 的评论内容是基于 github issue 的,但是 github 的内容不会主动创建 issue,所以,我们就需要写一个博客,自己去创建 issue。。。。
自动创建 issue
对于不能自动创建 issue 的情况,我当然不能忍(因为创建 issue 很麻烦),于是我翻阅资料,终于在 CSDN 上找到一篇文章介绍如何自动创建 issue。
根据上面文章的介绍,依葫芦画瓢,简单分为以下几个步骤(具体内容请翻看下面的文章)
生成 sitemap 站点地图
获取 github 接口的调用权限
安装依赖包
创建脚本文件
调用脚本
由于上文详细的介绍了每个步骤,这里就不重复介绍。
但是依照上面的步骤,根据上文的脚本代码运行脚本会报错
报错信息如下

报错信息很简单,找不到 find 函数。
思考一下 find 函数,find 函数是数组才有的方法,如果找不到这个函数,就意味着 issues 并不是一个数组(实际上去打印 issues 会发现它其实一个对象)
考虑到源代码后续的方法问题,因此,我们只需要加上下面这句话
if (!issues.length) issues = [] |
更新完毕之后的脚本代码如下

然后我们保存 comment.js 文件
确认依赖安装完毕,然后我们执行以下脚本
hexo clean && hexo generate && hexo deploy && node comment.js |
顺利的话这个时候,运行结果应该和下图类似

为了方便起见,我们也可以在 package.json 里面加上下面的脚本,方便以后一键式进行博客的测试部署
"scripts": { |
至此,我们大功告成。成功之后点开博客,会发现博客末尾自动开启了 issue

可能会出现提示还未初始化的问题,这个时候只需要点击一下登录按钮,进行登录即可显示出评论区。
此问题会有概率出现,可能是 github 服务器问题或者国内网络问题。