2020-08-16

评论系统和站点访问统计功能实现

评论系统

实现评论系统的方式有很多,常见的有gitalk,gitter,Valine,disqus等。本人使用的是Valine。它是基于leancloud的无后端评论系统,支持MarkDown语法,较安全快速。

获取LeanCloud的APP ID和APP Key

  1. LeanCloud中注册一个账号,并选择创建应用,填写你的应用名称,选择开发版后点击创建。在这里插入图片描述
  2. 进入创建的应用,点击存储,并创建Comment类(属性为默认值)
    在这里插入图片描述
  3. 然后进入设置栏安全中心板块,关闭除数据存储外的所有服务,最后点击应用Key获得AppKey和AppID。
    在这里插入图片描述

配置Hexo主题文件

首先打开 https://www.jsdelivr.com/package/npm/valine 获取最新的 valine.min.js 的cdn地址:
在这里插入图片描述

然后打开themes/next(主题文件)/_config.yml文件,进行如下配置

 # valine
  # See: https://github.com/xCss/Valine
  # Example:
  # valine: //cdn.jsdelivr.net/npm/valine@1/dist/Valine.min.js
  # valine: //cdnjs.cloudflare.com/ajax/libs/valine/1.3.4/Valine.min.js
  valine: https://cdn.jsdelivr.net/npm/valine@1.3.9/dist/Valine.min.js

再配置Valine相关功能参数

# Valine
# You can get your appid and appkey from https://leancloud.cn
# More info available at https://valine.js.org
valine:
 # 功能开关
  enable: true # When enable is set to be true, leancloud_visitors is recommended to be closed for the re-initialization problem within different leancloud adk version
  appid:  # Your leancloud application appid #LeanClound获得的appid
  appkey:  # Your leancloud application appkey #LeanClound获得的appkey
  notify: false # Mail notifier. See: https://github.com/xCss/Valine/wiki # 邮件提醒
  verify: false # Verification code 
  placeholder:  欢迎在此留下您的足迹# Comment box placeholder
  avatar: mm # Gravatar style #默认头像设置
  guest_info: nick,mail,link # Custom comment header
  pageSize: 10 # Pagination size
  language: zh-cn # Language, available values: en, zh-cn # 语言,设为zh-cn
  # 是否开启当前文章阅读量统计
  visitor: false # leancloud-counter-security is not supported for now. When visitor is set to be true, appid and appkey are recommended to be the same as leancloud_visitors' for counter compatibility. Article reading statistic https://valine.js.org/visitor.html
  comment_count: true # If false, comment count will only be displayed in post page, not in home page

配置完成效果图如下:
在这里插入图片描述

站点访问统计

本人采用的是不蒜子提供的网页计数功能。

  1. 在themes\next\layout_partial\footer.swig中加入如下代码
<script async src="https://dn-lbstatics.qbox.me/busuanzi/2.3/busuanzi.pure.mini.js"></script>

2.修改主题配置文件(themes\next_config.yml)中参数

busuanzi_count:
  enable: true
  total_visitors: true # 访客数
  total_visitors_icon: user
  total_views: true # 访问量
  total_views_icon: eye
  post_views: false
  post_views_icon: eye

至此便完成简单的网站计数功能。若想要修改统计数量的展示方式,需要修改themes\next\languages\zh-CN.yml下的footer参数:


footer:
  total_views: "总访问量 %s"
  total_visitors: "总访客量 %s"

然后替换themes\next\layout_third-party\statistics\busuanzi-counter.swig文件为如下内容

{%- if theme.busuanzi_count.enable %}
<div class="busuanzi-count">
  <script{{ pjax }} async src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>

  {%- if theme.busuanzi_count.total_visitors %}
      <span class="post-meta-item-icon">
        <i class="{{ theme.busuanzi_count.total_visitors_icon }}"></i>
      </span>
      <span class="site-uv">
        {{ __('footer.total_visitors', '<span class="busuanzi-value" id="busuanzi_value_site_uv"></span>') }}

      </span>
    </span>
  {%- endif %}

  {%- if theme.busuanzi_count.total_visitors and theme.busuanzi_count.total_views %}
    <span class="post-meta-divider">|</span>
  {%- endif %}

  {%- if theme.busuanzi_count.total_views %}
    <span class="post-meta-item" id="busuanzi_container_site_pv" style="display: none;">
      <span class="post-meta-item-icon">
        <i class="{{ theme.busuanzi_count.total_views_icon }}"></i>
      </span>
      <span class="site-pv">
        {{ __('footer.total_views', '<span class="busuanzi-value" id="busuanzi_value_site_pv"></span>') }}

      </span>
    </span>
  {%- endif %}
</div>
{%- endif %}

最终实现效果如下图
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值