'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', ``); }