Slot 插件
Slot 插件负责渲染插槽。代码块、链接、标题等内容已经准备好,你只需要决定它们的组件和交互。
声明与使用
下面通过一个独立 Angular 组件隐藏代码工具栏,保留默认高亮和代码样式:
BaseSlotPlugin和RenderOutlet从@fluxdown/angular-plugins/base导入;CodeBlockProps等插槽类型从@fluxdown/angular-plugins/typings导入。先安装@fluxdown/angular-plugins。
key 标识插件,type 选择插槽,Component 指向 Angular 组件。每个插槽组件通过 props = input.required<对应类型>() 接收属性,Fluxdown 管理它的创建、更新和销毁。
保留默认功能
Raw 是前一个插件提供的渲染函数。调用 Raw(props) 保留已有的高亮或排版,修改传入属性即可调整其中一部分,再通过 [fluxdownRender] 呈现返回值。
相同优先级下,同一插槽后面的插件通过 Raw 包裹前面的组件。Raw 可能为 null,调用前需要检查。
替换组件
直接编写自己的模板即可替换默认呈现。有子内容的插槽使用 ng-content,tagName 指定组件实际使用的标签:
把 CalloutPlugin 加入 plugins.slots 后,引用块将使用这个组件。需要交互时,直接使用 Angular 的事件绑定与依赖注入。