Fexo的主题的评论数量显示的Hexo默认的评论系统disqus,国内还是用多说的多一些,Fexo主题集成了多说插件(其实就是内嵌的一段js代码),但是并不是用的这个路径下的themes/fexo/layout/_partial/duoshuo.ejs而包含的component中的duoshuo.ejs,对web前端不了解,尝试修改了一下,因为查看多说的官方文档的时候,说评论数依据的是data-thread-key(标识文章的唯一ID),一个样式表中的class的名字,而Fexo真正包含的那个duoshuo.ejs并没有设置data-thread-key的值,所以手动改一下,我改成了page.path,文章的路径用来做唯一key(年月日加文章名,重复的机会不太大),这样重新hexo clean再hexo g,就能生成唯一data-thread-key值了。
Fexo默认是评论次数是显示的disqus的,没有对多说进行处理,这里改动一下themes/fexo/layout/_partial/路径下的article.ejs的20行左右,将其自定义的disqus的评论数改为多说的评论数量显示,根据多说文档,加入一个带data-thread-key的class的span标签即可:
1 | <% if (theme.duoshuo_shortname && theme.url){ %> |
还有一个需要注意的是,这里的data-thread-key与刚才设置的data-thread-key要完全一致(针对每篇文章),同时在主题的_config.yml中定义的duoshuo_shortname要与申请的多说二级域名的完全一致,不然也会导致评论数不正确,可以先创建一个简单的md生成一个页面,然后回复一个评论,再去多说的管理后台去看对应的data-thread-key是否正确,只有key和short完全一致,对应的文章才能获取正确的评论数。
踩坑完毕!