-
Notifications
You must be signed in to change notification settings - Fork 422
扩展代码块语法
sunsonliu edited this page Dec 23, 2024
·
2 revisions
new Cherry({
id: 'markdown-container',
syntax: {
codeBlock: {
customRenderer: {
// 自定义语法渲染器
myRenderer1: {
render: (src, sign, cherryEnding)=> {
return `<p class="my-render">${src}</p>`;
}
}
},
},
},
});
效果:
-
myRenderer1
是语法的名字 -
render
是对应的渲染逻辑,参数解释:-
src
是代码块里的源码 -
sign
是代码块的签名,可以根据sign做缓存,sign不变,则可认为内容没变,直接返回缓存内容 -
cherryEngine
是cherry解析引擎的对象,可以用cherryEngine.md5(src)
来获取src对应的sign
-
new Cherry({
id: 'markdown-container',
syntax: {
codeBlock: {
lineNumber: true, // 默认显示行号
expandCode: true, // 当代码行数大于10行时,自动折叠代码块
copyCode: true, // 显示复制代码块的按钮
editCode: true, // 显示编辑代码块的按钮
changeLang: true, // 显示切换语言的按钮
customBtns: [
{ html: '自定义按钮1', onClick: (event, code, lang)=>{console.log(`【${lang}】: ${code}`);} },
{ html: '自定义按钮2', onClick: (event, code, lang)=>{console.log(`【${lang}】: ${code}`);} },
],
},
},
});
效果: