评论系统
为hexo增加评论功能
添加disqus评论
使用该评论功能需要“科学上网”。
1.注册disqus账号https://disqus.com
2.在disqus设置页面中点 Add Disqus to your site 添加你的网站地址(即为https://yourname.github.io), 和设置Choose your unique Disqus URL, 你所填写的unique Disqus URL即为hexo配置文件中需要修改的short_name字段。
3.评论预审核可以不填写
4.第一次需要验证邮箱
5.打开hexo/themes/next/_config.yml主题配置文件,修改下面字段:1
2
3
4
5#Disqus
disqus:
enable: true
shortname: #shortname即为你上面填写的唯一disqus路径,填上就好
count: true
添加Hypercomments
来自俄罗斯,提供付费和免费的服务
添加Valine
基于LeanCloud,也支持阅读量等,免费版有一定限制首先API请求每天30000,存储10G
修改next主题配置文件
1 | # Valine. |
appid,appkey 填写leancloud的应用注册后提供的即可,参考另一篇博客或者站内搜索
添加Gitment
基于github的issue实现的,不再维护
添加Gitalk
基于github的issue实现的,有人维护
登陆GitHub,然后点击头像,然后Settings,Developer settings,然后,点击OAuth Apps,New OAuth App创建1
2
3
4
5参数说明:
Application name: # 应用名称,随意
Homepage URL: # 网站URL,如https://asdfv1929.github.io
Application description # 描述,随意
Authorization callback URL:# 网站URL,https://asdfv1929.github.io
创建完成后client id和client secret在配置文件中需要使用
修改next主题配置,新增
1 | # Gitalk评论 |
gitalk.swig如果已经配置css和js可以省略,md5加密ID可以解决gitbub对Issue label长度最多50的限制。
另外可以参考next对于gitment等其他评论插件的集成。
配置主题方法一
找到NexT的主题目录,然后进入这个路径/next/layout/_custom/下,应该有head.swig,header.swig,sidebar.swig这三个文件。
这三个文件应该就是自定义布局的位置。然后,在sidebar.swig里面添加如下代码:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25{% if page.comments and config.gitalk.enable %}
<link rel="stylesheet" href="{{ config.gitalk.gitalk_css }}">
<script src="{{ config.gitalk.gitalk_js }}"></script>
<script src="{{ config.gitalk.md5 }}"></script>
<script>
var gitalk = new Gitalk({
clientID: '{{ config.gitalk.clientID }}',
clientSecret: '{{ config.gitalk.clientSecret }}',
repo: '{{ config.gitalk.repo }}',
owner: '{{ config.gitalk.owner }}',
admin: '{{ config.gitalk.admin }}',
id: md5(location.pathname),
distractionFreeMode: 'true'
});
var div = document.createElement('div');
div.setAttribute("id", "gitalk_comments");
div.setAttribute("class", "post-nav");
var bro = document.getElementById('posts').getElementsByTagName('article');
bro = bro[0].getElementsByClassName('post-block');
bro = bro[0].getElementsByTagName('footer');
bro = bro[0];
bro.appendChild(div);
gitalk.render('gitalk_comments');
</script>
{% endif %}
参考:https://yunhao.space/2018/07/04/hexo-next-gitalk-comments-tutor/
配置主题方法二
以NexT主题做示范,毕竟其他的也是大同小异。
在主题的\layout_third-party\comments目录中,新建一个gitalk.swig文件,文件内容如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17{% if page.comments && theme.gitalk.enable %}
<link rel="stylesheet" href="https://unpkg.com/gitalk/dist/gitalk.css">
<script src="https://unpkg.com/gitalk/dist/gitalk.min.js"></script>
<script src="{{ theme.gitalk.md5 }}"></script>
<script type="text/javascript">
var gitalk = new Gitalk({
clientID: '{{ theme.gitalk.ClientID }}',
clientSecret: '{{ theme.gitalk.ClientSecret }}',
repo: '{{ theme.gitalk.repo }}',
owner: '{{ theme.gitalk.owner }}',
admin: ['{{ theme.gitalk.admin }}'],
id: md5(location.pathname),
distractionFreeMode: '{{ theme.gitalk.distractionFreeMode }}'
})
gitalk.render('gitalk-container')
</script>
{% endif %}
还是,在主题的\layout_third-party\comments目录中,找到一个index.swig的文件,打开,添加这一行代码:1
{% include 'gitalk.swig' %}
接着,在主题的\layout_partials目录中,找到comments.swig文件,打开,找到
1 | {% elseif theme.valine.appid and theme.valine.appkey %} |
在空了一行的地方加上以下代码:1
2{% elseif theme.gitalk.enable %}
<div id="gitalk-container"></div>
新建/source/css/_common/components/third-party/gitalk.styl文件,添加内容:
1 | .gt-header a, .gt-comments a, .gt-popup a |
修改/source/css/_common/components/third-party/third-party.styl,在最后一行上添加内容,引入样式:
1 | @import "gitalk"; |
添加百度分享功能
百度分享功能的添加可以参考下面这篇博客。Hexo+Github搭建个人博客(三)——百度分享集成
百度统计访客访问量功能
其他酷炫小功能参考hexo的next主题个性化教程:打造炫酷网站。