53 lines
1.6 KiB
JavaScript
53 lines
1.6 KiB
JavaScript
'use strict';
|
|
|
|
/* global hexo */
|
|
|
|
const pandocRenderer = require('./lib/renderer');
|
|
|
|
if (!("pandoc" in hexo.config)) {
|
|
hexo.config.pandoc = new Object();
|
|
}
|
|
|
|
hexo.config.pandoc.katex = Object.assign(
|
|
{
|
|
enable: true,
|
|
output: 'htmlAndMathml',
|
|
throwOnError: false,
|
|
strict: 'warn',
|
|
cdn: 'jsdelivr'
|
|
},
|
|
hexo.config.pandoc.katex
|
|
);
|
|
|
|
hexo.config.pandoc = Object.assign(
|
|
{
|
|
pandocPath: 'pandoc',
|
|
timeout: 5000,
|
|
mode: 'markdown',
|
|
extensions: []
|
|
},
|
|
hexo.config.pandoc
|
|
);
|
|
|
|
hexo.extend.renderer.register('md', 'html', pandocRenderer, true);
|
|
hexo.extend.renderer.register('markdown', 'html', pandocRenderer, true);
|
|
hexo.extend.renderer.register('mkd', 'html', pandocRenderer, true);
|
|
hexo.extend.renderer.register('mkdn', 'html', pandocRenderer, true);
|
|
hexo.extend.renderer.register('mdwn', 'html', pandocRenderer, true);
|
|
hexo.extend.renderer.register('mdtxt', 'html', pandocRenderer, true);
|
|
hexo.extend.renderer.register('mdtext', 'html', pandocRenderer, true);
|
|
|
|
if (hexo.config.pandoc.katex.enable) {
|
|
const { version } = require('katex');
|
|
const urls = {
|
|
cdnjs: `https://cdnjs.cloudflare.com/ajax/libs/katex/${ version }/katex.min.css`,
|
|
loli: `https://cdnjs.loli.net/ajax/libs/KaTeX/${ version }/katex.min.css`,
|
|
jsdelivr: `https://cdn.jsdelivr.net/npm/katex@${ version }/dist/katex.min.css`,
|
|
unpkg: `https://unpkg.com/katex@${ version }/dist/katex.min.css`
|
|
};
|
|
|
|
const cdn = hexo.config.pandoc.katex.cdn;
|
|
const url = (cdn in urls) ? urls[cdn] : cdn.replace(/\${\s*version\s*}/gi, version);
|
|
|
|
hexo.extend.injector.register('head_end', `<link rel="stylesheet" href="${ url }"/>`);
|
|
} |