前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hexo 开启统计功能

Hexo 开启统计功能

作者头像
晓晨
发布2022-09-02 17:09:39
6290
发布2022-09-02 17:09:39
举报
文章被收录于专栏:晓晨的专栏晓晨的专栏

Hexo 博客统计服务, 基于 Redis 实现。使用 hyperloglog 统计 UV。

开源地址:https://github.com/stulzq/hexo-statistics

Demo: https://xcmaster.com/

文章 PV:

站点 PV 和 UV:

步骤

  • 1.安装并以单节点模式运行 Redis
  • 2.运行 hexo-statistics
  • 3.配置你的 hexo 博客模板

1.安装 Redis

Ubuntu: apt-get install redis-server

Docker
代码语言:javascript
复制
mkdir -p /data/redis

docker run -p 6379:6379 \
  -v /data/redis/conf/redis.conf:/etc/redis/redis.conf \
  -v /data/redis/data:/data \
  --name hexo-stat-redis \
  -d redis:5.0 redis-server /etc/redis/redis.conf

其他下系统请自行探索

2.运行 Hexo Statistics

二进制运行
代码语言:javascript
复制
export hexo_version=v0.1.0

wget https://github.com/stulzq/hexo-statistics/releases/download/$hexo_version/hexo-statistics-$hexo_version-linux-amd64.tar.gz

tar -xzvf hexo-statistics-$hexo_version-linux-amd64.tar.gz

cd hexo-statistics-$hexo_version-linux-amd64

# 修改配置 conf/config.yml

chmod +x hexo-statistics
./hexo-statistics
Docker
代码语言:javascript
复制
mkdir -p /data/hexo-stat/conf

curl https://raw.githubusercontent.com/stulzq/hexo-statistics/main/conf/config.yml -o /data/hexo-stat/config.yml

# 修改配置 /data/hexo-stat/config.yml

docker run --name hexo-stat \
  -v /data/hexo-stat/conf:/app/conf \
  -v /data/hexo-stat/logs:/app/logs \
  -d stulzq/hexo-statistics:v0.1.0

3.配置模板

保存文件到 博客根目录/source/js/hexo-stat.js

代码语言:javascript
复制
"use strict";

// 配置你的 hexo statistics 服务域名
var serverDomain = "https://<your_hexo_statistics_domain>"

function getData() {
    $.ajax({
        url: serverDomain + "/stat/get",
        type: "GET",
        dataType: "json",
        success: function (resp) {
            processResult(resp)
        },
    });
}

function processResult(data) {
    // set result
    // site pv -> data.sitePv
    // site uv -> data.siteUv
    // page pv -> data.pagePv

  	// 编写 js 更新数据到你的博客界面
    // 实例:
    $(".statistics").append(`<span id="hexo_statistics_container_site_pv" style="display: inline;">Total PV <span id="hexo_statistics_value_site_pv">${data.sitePv}</span></span>`);
    $(".statistics").append(`<span id="hexo_statistics_container_site_uv" style="display: inline;">Total UV <span id="hexo_statistics_value_site_uv">${data.siteUv}</span></span>`);
    $("div .mt-1").append(
        `<span id="hexo_statistics_container_page_pv" style="display: inline;"><i class="iconfont icon-eye" aria-hidden="true"></i><span id="hexo_statistics_value_page_pv">PagePv: ${data.pagePv+1}</span></span>`
    );
}

getData();

注入 js 文件

保存文件到 博客根目录/scripts/inject.js

代码语言:javascript
复制
hexo.extend.injector.register('body_end', '<script src="/js/hexo-stat.js"></script>', 'default');

// 配置你的 hexo statistics 服务域名
hexo.extend.injector.register('body_end', '<script src="https://<hexo_statistics_domain>/stat/counter"></script>', 'default');

4.配置文件

代码语言:javascript
复制
log:
  level: Debug

# allowed to use hexo statistics domain
statistics:
  site:
    - xcmaster.com
    - localhost:5000

# cors domains
cors:
  origins:
    - https://xcmaster.com
    - http://localhost:4000
  methods:
    - GET
    - POST

# redis config
redis:
  address: 127.0.0.1:6379
  password:
  timeout: 3000 # timeout in milliseconds

需要自行设置 statistics.site 只有这里面的域名才允许使用统计。

通过 cors.origins 配置允许跨域访问的博客地址

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-07-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 步骤
  • 1.安装 Redis
    • Docker
    • 2.运行 Hexo Statistics
      • 二进制运行
        • Docker
        • 3.配置模板
        • 4.配置文件
        相关产品与服务
        云数据库 Redis
        腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档