hexo-theme-essence
Version:
A Simple Clean Theme for Hexo with user-friendly Navigation System.
38 lines (30 loc) • 1.03 kB
JavaScript
/* global hexo */
const { wordCount } = require('../../module/utils');
const { readFileSync } = require('fs');
const { resolve } = require('path');
var tot = 0,
themeVersion = null,
contribution_date = [];
hexo.extend.filter.register('before_post_render', function (data) {
tot += wordCount(data.raw.replace(/^---([\s\S]*?)---/, ''));
return data;
});
hexo.extend.filter.register('before_post_render', function (data) {
if(Array.isArray(data.historyHash)) {
const list = data.historyHash
.map(hash => hash.match(/^.*?#(.*?)T.*$/)[1]);
contribution_date = contribution_date.concat(list);
}
}, 9999);
hexo.extend.filter.register('template_locals', function (locals) {
if (themeVersion === null) getThemeVersion();
return Object.assign(locals, {
totalWords: tot,
themeVersion,
contribution_date,
});
});
function getThemeVersion () {
const oPkg = JSON.parse(readFileSync(resolve(hexo.theme_dir, 'package.json'), 'utf-8'));
themeVersion = oPkg.version ? 'v' + oPkg.version : '';
}