ikeq / hexo-theme-inside

🌈 SPA, Flat and clean theme for Hexo https://blog.oniuo.com/theme-inside
MIT License
682 stars 95 forks source link

請問怎麼在文章加入觀看次數 #344

Open WU898989 opened 4 months ago

WU898989 commented 4 months ago

image

ikeq commented 2 months ago

抱歉未及时回复。

观看次数需要借助主题 plugin 的能力在文章详情的场景执行脚本实现上报和展示,示例如下:

脚本

<!-- post-log.html -->
<script>
  // 1. 上报当前路由 PV,需自行实现相关接口
  fetch(`xxx/pv?id=${location.pathname}`);

  // 2. 读取当前路由 PV,需自行实现相关接口
  fetch(`xxx/get/pv?id=${location.pathname}`)
    .then(res => res.json())
    .then(count => {
      // 3. 展示,固定写法,只需修改 count 部分的逻辑
      document.dispatchEvent(
        new CustomEvent('inside', {
          detail: {
            type: 'pv',
            data: {
              // 如 'post/inside-theme-showcase': 999
              [location.pathname.substring(1)]: count
            },
          },
        })
      );
    });
</script>

主题插件配置

# _config.inside.yml
plugins:
  - position: [post, 'page']
    template: post-log.html