配置自定义语法
运行环境: node
该文件中的代码将仅在 Node.js 环境中运行,您可以访问 Node 的 API。
Slidev 支持自定义 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