为Hexo的Next主题增加畅言评论的支持

为什么选择畅言

多说评论最近总是故障频繁,据说多说、友言由于找不到盈利的突破口,均已不在维护了.现在有两个大牌可以考虑:网易的跟帖搜狐的畅言。对比之下我选择了畅言,因为畅言支持微信登录还是比较方便的。
畅言

主题配置文件

next主题的配置文件_config.yml增加配置:

#changyan
changyan_appid:
changyan_appkey:

changyan_appid,changyan_appkey分别是畅言的appid和appkey,可以从畅言后台的左侧菜单”后台总览”获取.
获取畅言appid和key

添加畅言评论框

增加文件layout/_scripts/third-party/comments/changyan.swig

{% if theme.changyan_appid and theme.changyan_appkey %}
{% if is_home() %}
<script id="cy_cmt_num" src="https://changyan.sohu.com/upload/plugins/plugins.list.count.js?clientId={{theme.changyan_appid}}"></script>
{% else %}
<script type="text/javascript">
(function(){
var appid = '{{theme.changyan_appid}}';
var conf = '{{theme.changyan_appkey}}';
var width = window.innerWidth || document.documentElement.clientWidth;
if (width < 960) {
window.document.write('<script id="changyan_mobile_js" charset="utf-8" type="text/javascript" src="https://changyan.sohu.com/upload/mobile/wap-js/changyan_mobile.js?client_id=' + appid + '&conf=' + conf + '"><\/script>'); } else { var loadJs=function(d,a){var c=document.getElementsByTagName("head")[0]||document.head||document.documentElement;var b=document.createElement("script");b.setAttribute("type","text/javascript");b.setAttribute("charset","UTF-8");b.setAttribute("src",d);if(typeof a==="function"){if(window.attachEvent){b.onreadystatechange=function(){var e=b.readyState;if(e==="loaded"||e==="complete"){b.onreadystatechange=null;a()}}}else{b.onload=a}}c.appendChild(b)};loadJs("https://changyan.sohu.com/upload/changyan.js",function(){window.changyan.api.config({appid:appid,conf:conf})}); } })(); </script>
<script type="text/javascript" src="https://assets.changyan.sohu.com/upload/plugins/plugins.count.js"></script>
{% endif %}
{% endif %}

修改文件layout/_partials/comments.swig,在id为comments的div中最后增加

{% elseif theme.changyan_appid and theme.changyan_appkey %}
<div id="SOHUCS" ></div>

添加后如
添加畅言评论框

增加畅言评论调用

修改layout/_scripts/third-party/comments.swig,底部增加

{% include './comments/changyan.swig' %}

增加评论统计数

修改layout/_macro/post.swig,增加如下代码,作用是为文章和列表增加评论统计数

{% elseif theme.changyan_appid and theme.changyan_appkey %}
<!--noindex-->
<span class="post-comments-count">
<span class="post-meta-divider">|</span>
<span class="post-meta-item-icon">
<i class="fa fa-comment-o"></i>
</span>
{% if is_post() %}
<a href="{{ url_for(post.path) }}#SOHUCS" itemprop="discussionUrl">
<span id="changyan_count_unit" class="post-comments-count hc-comment-count" data-xid="{{ post.path }}" itemprop="commentsCount"></span>
</a>
{% else %}
<a href="{{ url_for(post.path) }}#SOHUCS" itemprop="discussionUrl">
<span id = "url::{{ post.permalink }}" class = "cy_cmt_count" data-xid="{{ post.path }}" itemprop="commentsCount" ></span>
</a>
{% endif %}

添加后如
评论数

效果展示

评论数
评论框

贡献已被采纳

第一次提交pull request并被采纳,纪念一下。已被官方采纳合并,如图
畅言pull-request
但根据建议,原作者做了些许改动,由于本文是微信公众号同步发布,就不做变动了,仅供参考,作者改动配置以及相应的判断,如

chanyan:
enable: false
appid:
appkey:

后续

2017-03-21
突然收到多说的邮件,官方声明即将下线!在此留下悲伤的见证….
多说即将关闭

2017-05-17
由于最新版的next主题已经集成了我贡献的畅言评论,只需配置即可,无需再改源码。有些朋友按照我文章内的路径找不到部分文件,那是因为最新版的Next主题目录已经改变。
请知悉…

翟前锋 wechat
欢迎订阅我的微信公众号:zhaiqianfeng!