Skip to content
Switch branches/tags
Go to file

Latest commit


Failed to load latest commit information.
Latest commit message
Commit time


npm-image node-image hexo-image cover-image travis-image appveyor-image lic-image

Symbols count and time to read for articles in Hexo blog.

Better than hexo-reading-time and faster than hexo-wordcount. No external dependencies.


size-image dm-image dt-image

$ npm install hexo-symbols-count-time


You can set options of hexo-symbols-count-time in the Hexo's _config.yml (which locates in the root dir of your blog):

  symbols: true
  time: true
  total_symbols: true
  total_time: true
  exclude_codeblock: false
  awl: 4
  wpm: 275
  suffix: "mins."

If symbols_count_time option is not specified, the default parameters will be used.


  • awl – Average Word Length (chars count in word). Default: 4. You can check this here.
    • CN ≈ 2
    • EN ≈ 5
    • RU ≈ 6
  • wpm – Words Per Minute. Default: 275. You can check this here.
    • Slow ≈ 200
    • Normal ≈ 275
    • Fast ≈ 350
  • suffix – If time to read less then 60 minutes, added suffix as string parameter.
    If not defined, mins. will be used as default.
  • exclude_codeblock – Allow to exclude all content inside code blocks for more accurate words counting.
    If not defined, false will be used as default.

Note for Chinese users: because in Chinese language average word length about ~1.5 and if you at most cases write posts in Chinese (without mixed English), recommended to set awl to 2 and wpm to 300.
But if you usualy mix your posts with English, awl to 4 and wpm to 275 will be nice.

NexT theme

This plugin integrated in «NexT» and after plugin enabled in main Hexo config, you may adjust options in NexT config:

  separated_meta: true
  item_text_post: true
  item_text_total: false


$ cd hexo
$ git clone node_modules/hexo-symbols-count-time
$ cd node_modules/hexo-symbols-count-time


$ npm install mocha chai --save-dev
$ npm test

Tests with coverage

$ npm install -g nyc
$ nyc --print both node_modules/.bin/_mocha -- test/index.js


Symbols Count

{{ symbolsCount(post) }}

Symbols Time

{{ symbolsTime(post) }}

Or with predefined parameters:

{{ symbolsTime(post, awl, wpm, suffix) }}

Symbols Count Total

{{ symbolsCountTotal(site) }}

Symbols Time Total

{{ symbolsTimeTotal(site) }}

Or with predefined parameters:

{{ symbolsTimeTotal(site, awl, wpm, suffix) }}

Renderers syntax

SWIG / Nunjucks: {{ template }}
EJS: <%- template %>
Jade: span= template