不像hexo、jekyll等,为了学习,个人博客是用vue
和nodejs
搭建出来的。支持在线编辑和markdown渲染等功能。css
你们若是感兴趣能够看个人博客地址html
最近给本身的博客添加了评论服务,用到的评论服务是Gitalk,它是基于github issue
搭建出来的评论系统。废话很少说,接下来讲说如何使用。vue
固然你也能够直接用你博客所在的仓库,由于个人博客部署到了coding pages
,因此我单首创建了一个仓库用来存放评论。node
Github OAuth application
没有的能够点这里申请git
注册成功后,记录下你的clientID
和clientSecret
。github
有两种方式安装(CDN和npm),你们可自行选择。vue-router
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.css"> <script src="https://cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.min.js"></script> <!-- or --> <link rel="stylesheet" href="https://unpkg.com/gitalk/dist/gitalk.css"> <script src="https://unpkg.com/gitalk/dist/gitalk.min.js"></script>
npm i --save gitalk
考虑到vue
的生命周期等,使用方法上和官方文档给出来的是须要作略微的调整的。npm
//在index.html页面中CDN引入 <link rel="stylesheet" href="https://unpkg.com/gitalk/dist/gitalk.css"> <script src="https://unpkg.com/gitalk/dist/gitalk.min.js"> //在vue中import import Gitalk from 'gitalk'
export default { data(){ return{ gitalk: new Gitalk({ clientID: "你的clientID", clientSecret: "你的clientSecret", repo: "刚刚建立的项目名", owner: "github用户名", admin: ["github用户名"], id: window.location.hash, // 默认为pathname,若是你也是像我这样用vue搭建的,我建议使用hash,缘由具体后面会讨论到。 distractionFreeMode: false // Facebook-like distraction free mode }) } } }
<div id="gitalk-container"></div>
mounted(){ this.gitalk.render("gitalk-container"); }
这个id是用来惟一区分页面的,也就是你不一样的文章确定有不一样的评论数据,Gitalk
要经过这个id来区分是哪一个页面,而后在你的github
仓库建立相应的issue
来存放当页评论数据,id
默认值是window.location.pathname
markdown
可是默认的只适用于采用history
模式的路由,但对于vue-router
这种默认采用hash
模式的就不行了。hexo
举个例子
//在history模式下,路由URL以下格式 www.rychou.xyz/article/69 window.location.pathname;// 值是 /article/69 //在hash模式下,路由变成这样了 www.rychou.xyz/#/article/69 window.location.pathname; // 值是 /
此时,在hash
模式下id
就不具备惟一性了。
建议使用window.location.hash
,此时的值是#/aticle/69
,具备惟一性。
固然你也能够设置vue-router
为history
模式,可是这会有一个刷新页面出现404的BUG,解决办法参考官方文档
我也试过用Gitment
,也成功了,可是有一个很是使人不爽的地方,就是每一篇文章都须要手动初始化(建立相应issue),所以我仍是用了Gitalk
,它会根据你的配置,自动帮你初始化。
有问题的同窗们,欢迎来原文下方提问,同时也至关于帮我测试一下评论服务了。
参考连接: