配置 Transformers
运行环境: node
该文件中的代码将仅在 Node.js 环境中运行,您可以访问 Node 的 API。
此 setup 函数允许你为每张幻灯片的 markdown 内容定义自定义转换器。当你想添加自定义 Markdown 语法和渲染自定义代码块时,这非常有用。首先,创建 ./setup/transformers.ts 文件,内容如下:
ts
import type { MarkdownTransformContext } from '@slidev/types'
import { defineTransformersSetup } from '@slidev/types'
function myCodeblock(ctx: MarkdownTransformContext) {
console.log('在整个幻灯片中的索引:', ctx.slide.index)
ctx.s.replace(
/^```myblock *(\{[^\n]*\})?\n([\s\S]+?)\n```/gm,
(full: string, options = '', code = '') => {
return `...`
},
)
}
export default defineTransformersSetup(() => {
return {
pre: [],
preCodeblock: [myCodeblock],
postCodeblock: [],
post: [],
}
})返回值应该是转换器的自定义选项。pre、preCodeblock、postCodeblock 和 post 是函数数组,将按顺序调用以转换 markdown 内容。转换器的顺序是:
- 来自你项目的
pre - 来自插件和主题的
pre - 导入代码片段语法和 Shiki magic move
- 来自你项目的
preCodeblock - 来自插件和主题的
preCodeblock - 内置的特殊代码块,如 Mermaid、Monaco 和 PlantUML
- 来自插件和主题的
postCodeblock - 来自你项目的
postCodeblock - 其他内置转换器,如代码块包装
- 来自插件和主题的
post - 来自你项目的
post