FF14 副本 buff 图标 & 全站统计

字数统计: 2.7k 阅读时间: 5 mins 访问次数: ... 评论统计: ...

  昨天(12/04)更新了炼狱篇的图标。
  今天(12/05)折腾了一下全站访客统计和字数统计,写在同一篇里记录一下吧。
  ……真的我没想到用 waline 来统计访客会这么麻烦的,好想死(好想死)

副本图标

img-right

  基于已有的 emoji 系统 :4o-1: 追加了副本 buff 图标显示。
  本来打算用 JS 直接获取文件名查找替换生成 css,后来发现除了获取难度比较高以外还有以下几个问题:

  • 目前的 emoji 是用伪元素 ::before 显示的,用 JS 选取会比较麻烦
  • 用于书写的 emojiTag 与文件名并不同
    因为角色名是 4o ,所以文件名也是数字开头的
    但 css 似乎并不能选中以数字开头的 classname 或 id
    所以实际使用的时候加了一个 e 解决

  所以最后还是决定手动填写 emojiList 数组以及所有的 css 选择器,效果如图↗
  emmmmm 也算一种对 SE 程序员的致敬吧 :4o-6: 怎么不算呢
  解决方法应该也不是没有,比如用实体 dom 替代伪元素,再手动更改文件名使其与 emojiTag 相同。但是还有一个比较奇妙的执念就是我不太想破坏拆包获得的文件名(比如伤害降低的图片编号结尾居然是 520 草),所以应该很长一段时间都会用这样手动更新的方式先撑着。没准在失去写 css 的耐心之前我就先失去做攻略的耐心了呢哈哈

P5S

  啊?一时想不起来有什么要看的 buff 了
  翻了一下录像这层确实没有特殊 buff(如果不算伤害降低 :damage-down: 的话哈哈)

P6S

  • 对狙::p6s-fr: :p6s-bk:
  • 鸳鸯锅::p6s-pur: :p6s-gre:
  • 蛇背翅前,紫左绿右

P7S

  • 四风:
    • 风分散::p7s-w: :p7s-w1: :p7s-w2: :p7s-w3: :p7s-w4:
    • 光分摊::p7s-l: :p7s-l1: :p7s-l2: :p7s-l3: :p7s-l4:

P8S

  • 门神
    • 蛇::p8s-i: :p8s-ii: :p8s-sna: :p8s-ptf:
    • 强化蛇::p8s-poi: :p8s-cir:
  • 本体
    • 术式::p8s-mag: :p8s-rev:
    • 毒::p8s-A: :p8s-B: :p8s-Y:
    • 分摊::p8s-2: :p8s-3: :p8s-1:
    • 概念拒绝::p8s-rej:
    • 完成概念::p8s-aa: :p8s-bb: :p8s-yy:
    • 合成兽::p8s-blu: :p8s-gre: :p8s-pur:
    • 高亮合成::p8s-red: :p8s-ora: :p8s-yel:
    • 万象灰烬::fire-down:
    • 不死鸟::p8s-fur: :p8s-phn: :p8s-2x:
    • 移动塔::earth-down:

全站字数 & 访客统计

  在毛象上看见塔塔表示博客字数已经 20w,突然想知道我自己写了多少,于是稍微折腾了一下在 footer 添加了字数统计和访客统计。
  字数统计的过程还是比较顺利的,用的是 next 的插件,在 footer 里加上这么一行就可以:

1
2
3
<span class="description">已收录数据
<em class="word-count-symbol">&nbsp;<%- symbolsCountTotal(site) %>&nbsp;</em>
字。</span>

  直接写空格好像有概率识别不了,于是用 &nbsp; 代替了。另外用 em 是为了自带紫色发光格式,标准一点写应该还是用 span
  访客统计则有些头疼,因为我的 blog 用的还是 2021 年版的 waline,去官网看了一下经过一系列更新迭代之后这个玩意已经连文档都删了,作者表示「因为我觉得使用方式差别不大」,然而实际上数据的渲染从查找 id 替换变成了 data-path,如果更新版本要重写全部的 layout……
  那我必然是不会更的。凭借记忆捣鼓出了 waline v1.3.8 的全站访客统计:

1
<em id="/" class="waline-visitor-count">...</em>

  其实也没什么难度就是了【
  不过还有一个问题就是因为这个访客统计是与评论插件关联的,所以在禁用了评论(与单页访客统计)的页面同样无法获取主页访客数,在官方文档被删除的情况下似乎暂时没办法解决这个问题,等以后有空再研究一下代码好了 :4o-3:
  研究完了,我明明写了在关闭评论的情况下保留访客统计的!!!搞什么啊!!!

  最后的暂时解决办法:只保留了首页的访客统计,其它页面仅保留字数统计。
  感觉更新 + 重写 layout 也不是很好使,因为一开始关掉评论的原因是我不希望在本地写东西疯狂刷新浏览排版的期间被统计访问量,但 waline 似乎是把「统计」和「显示」绑定在一起的,我其实只是想显示那个数据但不想统计这个页面的访问量啊……

1
2
3
4
5
6
7
8
9
10
11
12
<div class="main-footer">
<span class="description">已收录数据
<em class="word-count-symbol">&nbsp;<%- symbolsCountTotal(site) %>&nbsp;</em>
<% if (is_home()) { %>
字,登记访客&nbsp;
<em id="/" class="waline-visitor-count">...</em>
&nbsp;人。
<% } else { %>
字。
<% } %>
</span>
</div>

最终解决

  使用这个工具成功展开了手头的 waline 代码试图自己解决这个问题,但是妄想我现在的水平能搞懂这个显然还是太科幻了……【注:大概格式化了一下后总共 5764 行,应该包含了一些没换行的括号,因为还保留了非常多诸如 ((( 这样的内容……
  那么只能另谋出路,首先整理一下我的需求:

  • 在首页显示访问量 ✓
  • 在关闭评论后停止统计访问量 ✓
  • 在关闭评论的页面同时显示首页的访问量 ×

  备用的方案:

  • 站点统计更换为不蒜子
    • 会丢失当前的统计数据
  • 用 AJAX 获取首页的计数复制到其它页面
    • 看不懂
      而且按我的理解 AJAX 只能获取整个页面的 dom 再把要用的东西剥出来
      对访问统计来说数据交互量有点太恐怖了
  • 为访客统计添加单独的参数
    • 目前这个似乎是最好实现的?

  啊用脑量超标了我要滚去睡一会……


  没睡,但是解决了,原来是我自己的问题……原本普通的 page 应该是能显示全站访问统计的,layout 的逻辑如下:

  • 如果当前页面为 post
    • 如果 comment 不为 false 则显示评论
    • 否则不添加任何代码(即无法评论也不启用访客统计)
  • 如果当前页面不是 post,则单独开启访客统计

  所以原本普通的 page 页面是不会显示评论且能正常统计访客的,但前几天为了能给新建的FF14 工具箱页面添加评论框,我修改了 layout 的逻辑,变成了这样:

  • 如果当前页面为 postpage
    • 如果 comment 不为 false 则显示评论
    • 否则不添加任何代码(即无法评论也不启用访客统计)
  • 如果当前页面不是 postpage,则单独开启访客统计

  那么禁用了评论的 page 页面显然就无法显示访客统计了,最后折腾一番把逻辑变成了这样:

  • 如果当前页面为 postpage
    • 如果 comment 不为 false(即开启评论)
      • 如果 visitcountfalse,则显示不统计访客的评论框
      • 否则显示统计访客的评论框
    • 否则(即禁用评论)
      • 如果 visitcount 不为 false,则单独开启访客统计
      • 否则不添加任何代码
  • 如果当前页面不是 postpage,则单独开启访客统计

  以上就是新 layout 的 if / else 嵌套规则,我尝试过使用 else if,但是似乎不起作用,总之现在成功实现了:

  • 默认新文章开启评论并禁用访客统计
  • 不添加任何参数的文章默认开启评论并显示访客统计
  • 可以使用 visitcount: falsecomment: false 单独控制评论和访客统计的开关
  • 不包含正文的页面(如 tag 和归档)默认显示访客统计

  那么现在是 17:20,为了晚上龙诗队上班我得继续紧急睡觉了…… :4o-3:


  1. 1. 副本图标
    1. 1.1. P5S
    2. 1.2. P6S
    3. 1.3. P7S
    4. 1.4. P8S
  2. 2. 全站字数 & 访客统计
  3. 3. 最终解决