Skip to content

配置 Transformers

运行环境: node
该文件中的代码将仅在 Node.js 环境中运行,您可以访问 Node 的 API。

此 setup 函数允许你为每张幻灯片的 markdown 内容定义自定义转换器。当你想添加自定义 Markdown 语法和渲染自定义代码块时,这非常有用。首先,创建 ./setup/transformers.ts 文件,内容如下:

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
: [],
} })

返回值应该是转换器的自定义选项。prepreCodeblockpostCodeblockpost 是函数数组,将按顺序调用以转换 markdown 内容。转换器的顺序是:

  1. 来自你项目的 pre
  2. 来自插件和主题的 pre
  3. 导入代码片段语法和 Shiki magic move
  4. 来自你项目的 preCodeblock
  5. 来自插件和主题的 preCodeblock
  6. 内置的特殊代码块,如 Mermaid、Monaco 和 PlantUML
  7. 来自插件和主题的 postCodeblock
  8. 来自你项目的 postCodeblock
  9. 其他内置转换器,如代码块包装
  10. 来自插件和主题的 post
  11. 来自你项目的 post

Released under the MIT License.