dazzle/mdsvex.config.js
light7734 4c6b0983dd
All checks were successful
continuous-integration/drone/push Build is passing
wip
2025-05-05 16:54:00 +03:30

45 lines
987 B
JavaScript

import math from 'remark-math';
import rehype_katex from 'rehype-katex';
import katex from 'katex';
import visit from 'unist-util-visit';
const correct_hast_tree = () => (tree) => {
visit(tree, 'text', (node) => {
if (node.value.trim().startsWith('<')) {
node.type = 'raw';
}
});
};
const katex_blocks = () => (tree) => {
visit(tree, 'code', (node) => {
if (node.lang === 'math') {
const str = katex.renderToString(node.value, {
displayMode: true,
leqno: false,
fleqn: false,
throwOnError: true,
errorColor: '#cc0000',
strict: 'warn',
output: 'htmlAndMathml',
trust: false,
macros: { '\\f': '#1f(#2)' }
});
node.type = 'raw';
node.value = '{@html `' + str + '`}';
}
});
};
export const mdsvex_config = {
extensions: ['.md', '.svx'],
layout: "./src/routes/articles/Layout.svelte",
smartypants: {
dashes: 'oldschool'
},
remarkPlugins: [math, katex_blocks],
rehypePlugins: [correct_hast_tree, rehype_katex]
};