无论是 Gitalk 还是 Gitment ,甚至是 Giteement 都只能手动初始化所有文章的评论
我觉得这件事情非常麻烦,所以就有了这篇文章自动化初始评论的脚本
获得 Issues 操作权限
- 在使用该脚本之前, 首先要在 GitHub 中创建一个新的
Personal access tokens
私人密钥
https://github.com/settings/tokens
- 选择
Generate new token
,在当前的页面中为该 Token 添加所有 Repo 的权限
- 在这里创建之后,点击界面最下的面
Generate token
按钮获得一个新的 token, 一定要保存这个token,只显示一次
编写自动化初始化脚本
因为评论服务是通过 GitHub 提供的 API 创建含有相应标签的 issue,所以我们应该也可以直接使用 GitHub 的 API 创建所有博客文章对应的 issue,这与通过评论插件创建 issue 是完全一样的,在创建之后无论是 Gitalk 还是 Gitment 都可以通过对应的标签直接在仓库中找到对应的 issue 了
- 为 hexo 添加生成 sitemap
由于脚本是基于网站sitemap的批量创建issue的,所以需要安装该插件
https://phantomt.github.io/2019/05/02/Hexo-001-sitemap/
- 使用 MD5 加密文章ID
因为在脚本中的id一栏设置了对 pathname
进行MD5加密,因此在自动初始化的脚本中,也要相对的在label
里对path
进行MD5处理
如果脚本中不进行MD5加密,那么创建的 Issue 的 label 就会是原始的文章地址,而 Gitalk 并不识别这个 Issue,还是需要手动初始化(两个 Issue 是不会合并的)
因此,如果在Gitalk 和 Gitment 里设置了 MD5,那么在脚本里同样要进行 MD5,同一文件的 MD5 摘要是一样的
- 安装脚本依赖组件
1 | npm install request xml-parser yamljs cheerio --save |
- 下载保存脚本文件
下载地址:giteement&gitalk.js
- 配置脚本参数
编辑下载好的脚本文件, 并根据自己的情况进行配置
1 | username: "YourGithubUserName", // GitHub 用户名 |
其中token就是上面申请并保存的 Token, 没有 token 是无法使用API的,token 错误会导致 issues 变量内容错误
- 执行脚本
1 | node giteement&gitalk.js |
等待 40 秒后,批量自动生成正确的 Issue
当然如果想要部署博客的时候自动运行可以在 Hexo 根目录的 package.json 文件里加入
1 | "scripts": { |
之后直接输入 npm run deploy
即可直接执行
Giteement 自动初始化
如果需求量大,我会将 Giteement
批量初始化脚本公布, 也同样是基于 nodejs 编写的