-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
58 lines (50 loc) · 1.19 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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/* eslint-disable no-undef */
"use strict";
const { stripHTML } = require("hexo-util");
const helper = require("./lib/helper");
const config = 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,
);
}