用上Ghost发表第一篇文章以后,突然意识到一个问题,这货没有评论系统?
看了下官网的说明,他们把主要精力都放在了博客系统的基础功能上,对于周边功能可以通过引入第三方功能来实现。例如代码的高亮问题,就可以使用highlight.js等组件来实现[看这里]。
选择Valine
关于第三方的评论系统,网络上大多以多说为例进行的说明。然而多说作为一个多年来使用率第一的第三方系统,竟然已经关闭了评论系统的接入。目前知名的第三方系统大概有:
- 畅言 —— 搜狐出品,目前国内用户量第一
- 来比力 —— 另一家国产第三方评论系统
- Disqus —— Ghost推荐使用的评论系统,经常被墙
根据网络上的反馈,第一想法是使用畅言。毕竟是搜狐出品,品质和功能都是可以保证的。但从服务的可持续性考虑,既然占有率第一的多说都不能通过盈利来维持服务,畅言如果哪一天被停止服务也一点不会让我惊讶。
犹豫间看到了Valine。纯前端,后端数据支持通过LeanCloud来实现。这就打消了我最大的疑虑,而且简洁的风格也非常符合我的审美。
Valine的安装
Valine的安装非常简单,全程参考官网即可以实现。
需要注意的是,Valine的js代码可以通过代码注入的设置来进行引用,但body端的代码则需要下入到post.hbs模板文件当中才可以。(因为普通的代码注入只能注入到footer,而且是全局所有页面,既不能指定评论组件的位置,也必须在所有页面中都引入评论组件。)
引入文件
// 编辑 ghost/content/themes/casper/default.hbs
...
{{# if post}}
<link rel="stylesheet" type="text/css" href="{{asset "css/valine.css"}}" />
<script src="//cdn1.lncld.net/static/js/3.0.4/av-min.js"></script>
<script src='https://cdnjs.cloudflare.com/ajax/libs/valine/1.3.3/Valine.min.js'></script>
{{/if}}
...
引入代码
// 编辑 ghost/content/themes/casper/post.hbs
// 在<section class='post-full-content'></section>中加入
...
<section class="post-full-content">
<div class="post-content">
{{content}}
</div>
// 下面是要加入的内容
<div id="vcomments"></div>
<script>
new Valine({
el: '#vcomments',
appId: '<AppId>',
appKey: '<AppKey>',
notify:false,
verify:false,
avatar:'mm',
placeholder: '请发表您的高见'
})
</script>
</section>
...
修改后保存文件,重启ghost,刷新页面。初次使用,在评论组件的下方位置显示应用初始化中,要等待3分钟。3分钟后,评论系统便可以使用了。
Valine的样式修改
valine可以正常使用了,但字体显示却非常的小,小到几乎看不到。打开开发者工具查看,字体都被设定在了0.875rem的大小。
别的博客系统不知道,但是在Ghost系统上,这样的字体大小几乎没办法看清任何字。可以通过添加CSS样式,来重新调整评论系统的字体大小
/* 创建 ghost/content/themes/casper/assets/css/valine.css */
.v .vinput {
font-size: 1.5rem !important;
}
.v .veditor {
font-size: 1.5rem !important;
}
.v .vbtn {
font-size: 1.5rem !important;
}
.v .vinfo .col {
font-size: 1.5rem !important;
}
.v .vinfo .vcount .vnum {
font-size: 1.5rem !important;
}
.v .power {
display: none !important;
}
.v .vlist .vcard .vhead .vnick {
font-size: 1.5rem !important;
}
.v .vlist .vcard .vhead .vsys {
font-size: 1.2rem !important;
}
.v .vlist .vcard .vh .vtime {
font-size: 1.2rem !important;
}
.v .vlist .vcard .vh .vat {
font-size: 1.2rem !important;
}
.v .vlist .vcard .vcontent {
font-size: 1.5rem !important;
}
重启Ghost后刷新网页,一切搞定!