Hexo添加字数统计、阅读时长、友情链接

版权声明:本文来自 Crocutax 的博客 , 转载请注明出处 http://crocutax.com

字数统计

NexT主题默认已经集成了文章【字数统计】、【阅读时长】统计功能,如果我们需要使用,只需要在主题配置文件(Blog\themes\next_config.yml)中打开wordcount 统计功能即可

# Post wordcount display settings
# Dependencies: https://github.com/willin/hexo-wordcount
post_wordcount:
  item_text: true
  wordcount: true
  min2read: true

问题

如果仅仅只是打开开关,部署之后会发现文章的【字数统计】和【阅读时长】后面没有对应的xxx字,xx分钟等字样,只有光秃秃的数字在那里。如下图

Hexo字数统计阅读时长-失败

解决方案

找到Blog\themes\next\layout\_macro\post.swig 文件

  • 字数统计

搜到找到如下代码

<span title="{{ __('post.wordcount') }}">
     {{ wordcount(post.content) }}
</span>

添加 “字”到{{ wordcount(post.content) }} 后面,修改后为:

<span title="{{ __('post.wordcount') }}">
     {{ wordcount(post.content) }} 字
    </span>
  • 阅读时长

找到如下代码

<span title="{{ __('post.min2read') }}">
   {{ min2read(post.content) }}
 </span>

添加 “分钟”到{{ min2read(post.content) }} 后面,修改后为:

<span title="{{ __('post.min2read') }}">
   {{ min2read(post.content) }} 分钟
 </span>

再次运行,就能得到正常的如“字数统计 1888字”“阅读时长 6分钟”这样的样式了,如下图:

Hexo字数统计阅读时长-成功

添加友情链接

在主题配置文件(Blog\themes\next_config.yml)中打开links 开关即可

# Blog rolls 友情链接
links_title: Links
links_layout: block
links_layout: inline
links:
  test: http://www.example.com

问题

正常情况下本地部署,远程部署都没有问题,添加了友情链接之后,hexo s 本地部署的时候,就报出了如下异常

INFO  Hexo is running at http://localhost:4000/. Press Ctrl+C to stop.
Unhandled rejection Error: ENOENT: no such file or directory, open 'D:\Blog\themes\next\layout\_scripts\schemes\.swig'
    at Error (native)
    at Object.fs.openSync (fs.js:641:18)
    at Object.fs.readFileSync (fs.js:509:33)
    at Object.ret.load (D:\Blog\node_modules\swig\lib\loaders\filesystem.js:55:15)
    at compileFile (D:\Blog\node_modules\swig\lib\swig.js:695:31)
    at Object.eval [as tpl] (eval at <anonymous> (D:\Blog\node_modules\swig\lib\swig.js:498:13), <anonymous>:842:18)
    at compiled (D:\Blog\node_modules\swig\lib\swig.js:619:18)
    at _compiled (D:\Blog\node_modules\hexo\lib\theme\view.js:127:30)
    at View.render (D:\Blog\node_modules\hexo\lib\theme\view.js:29:15)
    at D:\Blog\node_modules\hexo\lib\hexo\index.js:388:25
    at tryCatcher (D:\Blog\node_modules\bluebird\js\release\util.js:16:23)
...

提示说在themes\next\layout\_scripts\schemes 目录下找不到.swig 这个文件,但是没有添加友链之前好像也没什么问题啊?一头雾水。。。

解决方案

官方issue 中也没有找到自己想要的解决方案,而且google下这个问题,遇到的人好像也不多,就想到可能只是个简单的小配置问题。

于是又回头看了看文件内容,想到了第一眼看到时就比较奇怪的一点:

links_layout: block
links_layout: inline

有两个layout配置,不觉得奇怪吗?

于是果断注释掉其中一个,再次运行hexo s ,完美运行!再次测试注释掉另外一个,依然完美运行!OK,就这么轻松愉快的解决了,猜测可能是多文件冲突导致的.swig 生成问题。

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Crocutax

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值