plugin-reading-time

Gungnir
2020-03-26
3 min

npm github license

@renovamen/vuepress-plugin-reading-time 插件,用于统计文章字数和估计阅读时长。相比其它 VuePress 的阅读时长插件,本插件可以:

  • 为中英文分别设置阅读速度
  • 选择将代码块或公式块中的字符排除在统计以外

# 安装

yarn add @renovamen/vuepress-plugin-reading-time
# or
npm install @renovamen/vuepress-plugin-reading-time

然后在 .vuepress/config.js 中引入这个插件:

module.exports = {
  plugins: [
    [
      '@renovamen/vuepress-plugin-reading-time'
    ]
  ]
}

# 使用

可以通过 $page.readingTime 来获取 readingTime 数据,一个样例 readingTime 数据为:

{
  minutes: 12,  // 阅读时长估计
  words: 3500  // 文章字数
}

可以在文章的 frontmatter 中重写 readingTime 数据:

title: Hello Word
readingTime: { minutes: 3, words: 1500 }

# 配置项

# excludes

不需要进行统计的页面路径,插件会通过正则表达式来将这些页面排除(只要 $page.path$page.regularPath 中的任意一个匹配上,该页面就会被排除)。

如果指定了 includes 项,那么这一项无效。

  • Type: Array<string>
  • Default: []

例子:

plugins: [
  [
    "@renovamen/vuepress-plugin-reading-time", {
      excludes: ["/tags/.*", "/links/"]
    }
  ]
]

# includes

需要进行统计的页面路径(正则表达式)。如果指定了这一项,那么 excludes 项无效。

  • Type: Array<string>
  • Default: []

Example:

plugins: [
  [
    "@renovamen/vuepress-plugin-reading-time", {
      includes: ["/docs/.*"]
    }
  ]
]

# wordsPerMinuteCN

一分钟可以阅读多少个中文字符。

  • Type: int
  • Default: 300

例子:

plugins: [
  [
    '@renovamen/vuepress-plugin-reading-time', {
      wordsPerMinuteCN: 500
    }
  ]
]

# wordsPerMinuteEN

一分钟可以阅读多少个英文字符。

  • Type: int
  • Default: 160

例子:

plugins: [
  [
    '@renovamen/vuepress-plugin-reading-time', {
      wordsPerMinuteEN: 200
    }
  ]
]

# excludeCodeBlock

是否排除所有代码块内的字符。

  • Type: boolean
  • Default: false

例子:

plugins: [
  [
    '@renovamen/vuepress-plugin-reading-time', {
      excludeCodeBlock: true
    }
  ]
]

# excludeTexBlock

是否排除所有公式块内的字符。

  • Type: boolean
  • Default: false

例子:

plugins: [
  [
    '@renovamen/vuepress-plugin-reading-time', {
      excludeTexBlock: true
    }
  ]
]

# 开源协议

MIT