-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathindex.js
43 lines (34 loc) · 1.11 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/* global hexo */
'use strict';
const helper = require('./lib/helper');
const { stripHTML } = require('hexo-util');
var config = hexo.config.symbols_count_time = Object.assign({
symbols: true,
time: true,
total_symbols: true,
total_time: true,
exclude_codeblock: false,
awl: 4,
wpm: 275,
suffix: "mins."
}, hexo.config.symbols_count_time);
helper.setConfig(config);
if (config.symbols) {
hexo.extend.helper.register('symbolsCount', helper.symbolsCount);
}
if (config.time) {
hexo.extend.helper.register('symbolsTime', helper.symbolsTime);
}
if (config.total_symbols) {
hexo.extend.helper.register('symbolsCountTotal', helper.symbolsCountTotal);
}
if (config.total_time) {
hexo.extend.helper.register('symbolsTimeTotal', helper.symbolsTimeTotal);
}
if (config.symbols || config.time || config.total_symbols || config.total_time) {
hexo.extend.filter.register('after_post_render', data => {
let { content } = data;
if (config.exclude_codeblock) content = content.replace(/<pre>.*?<\/pre>/g, '');
data.length = stripHTML(content).replace(/\r?\n|\r/g, '').replace(/\s+/g, '').length;
}, 0);
}