var CustomHookA = Cherry.createSyntaxHook('codeBlock', Cherry.constants.HOOKS_TYPE_LIST.PAR, { makeHtml(str) { console.warn('custom hook', 'hello'); return str; }, rule(str) { const regex = { begin: '', content: '', end: '', }; regex.reg = new RegExp(regex.begin + regex.content + regex.end, 'g'); return regex; }, }); var cherryConfig = { id: 'markdown', externals: { echarts: window.echarts, katex: window.katex, MathJax: window.MathJax, }, engine: { global: { urlProcessor(url, srcType) { console.log(`url-processor`, url, srcType); return url; }, }, syntax: { fontEmphasis: { allowWhitespace: true, // 是否允许首尾空格 }, mathBlock: { engine: 'MathJax', // katex或MathJax src: 'https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js', // 如果使用MathJax将js在此处引入,katex则需要将js提前引入 }, inlineMath: { engine: 'MathJax', // katex或MathJax }, emoji: { useUnicode: false, customResourceURL: 'https://github.githubassets.com/images/icons/emoji/unicode/${code}.png?v8', upperCase: true, }, // toc: { // tocStyle: 'nested' // } // 'header': { // strict: false // } }, customSyntax: { // SyntaxHookClass CustomHook: { syntaxClass: CustomHookA, force: false, after: 'br', }, }, }, toolbars: { showToolbar: false, toolbar: false, bubble: false, float: false, }, editor: { defaultModel: 'edit&preview', codemirror: { placeholder: '请输入内容...', }, }, previewer: { // 自定义markdown预览区域class // className: 'markdown' }, keydown: [], //extensions: [], }; fetch('./markdown/basic.md').then((response) => response.text()).then((value) => { var config = Object.assign({}, cherryConfig, { value: value }); window.cherry = new Cherry(config); });