hexo-symbols-count-time-2
Version:
Symbols count and time to read for articles.
59 lines (50 loc) • 1.21 kB
JavaScript
/* eslint-disable no-undef */
;
const { stripHTML } = require("hexo-util");
const helper = require("./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,
);
}