Slot 插件
Slot 插件负责渲染插槽。代码、链接、标题等内容已经准备好,你只需要决定它们的组件和交互。
声明与使用
下面隐藏代码工具栏,保留默认高亮与代码样式。在 .tsx 文件中声明插件:
再传给组件:
插件基类和属性类型从
@fluxdown/solid-plugins/base导入。使用前安装@fluxdown/solid-plugins。
key 标识插件,type 选择插槽,Component 提供 Solid 组件。splitProps 保留属性的响应式访问;也可以直接使用 props.code 等字段。
保留默认功能
Raw 是前一个插件提供的组件。调用它可以保留已有的高亮或排版,修改属性就能调整其中一部分。
相同优先级下,同一插槽后面的插件通过 Raw 包裹前面的组件。完全替换时,直接返回自己的 JSX 即可;带有子内容的插槽通过 props.children 读取子内容。
Raw可能为null。上例用Dynamic的undefined分支处理没有前置组件的情况。
插槽组件可以使用 createSignal、createEffect 和 onCleanup,生命周期由 Solid 管理。自定义代码高亮时,在代码内容之后渲染 props.suffix,保留流式末尾标记。
选择插槽
每个插槽都有对应的属性类型,例如 LinkProps、HeadingProps。需要改变 HAST 节点对应的插槽时,使用 Render 插件。