nargo-document 0.0.0

Nargo documentation tool
Documentation
# 插件系统

nargo-document 提供了强大的插件系统,可以扩展文档的功能。

## 内置插件

- [KaTeX]./katex.md - 数学公式渲染
- [Mermaid]./mermaid.md - 图表渲染
- [Shiki]./code-highlight.md - 代码高亮(基于 TextMate)
- [Prism]./code-highlight.md - 代码高亮(轻量级)
- [Container]./container.md - 自定义容器

## 配置插件

在 `nargodoc.config.toml` 中配置插件:

```toml
[plugins]
katex = true
mermaid = true
shiki = true
container = true
```

## 插件架构

### DocumentPlugin Trait

所有插件都需要实现 `DocumentPlugin` trait:

```rust
pub trait DocumentPlugin: Send + Sync {
    fn meta(&self) -> &PluginMeta;
    
    fn setup(&mut self, config: Option<HashMap<String, NargoValue>>) {
        let _ = config;
    }
    
    fn before_render(&self, context: PluginContext) -> PluginContext {
        context
    }
    
    fn after_render(&self, context: PluginContext) -> PluginContext {
        context
    }
}
```

### 插件钩子

- `setup` - 插件初始化时调用
- `before_render` - Markdown 解析后、HTML 渲染前调用
- `after_render` - HTML 渲染后调用

### 插件注册

使用 `PluginRegistry` 注册插件:

```rust
let mut registry = PluginRegistry::new();
registry.register(KaTeXPlugin::new());
registry.register(MermaidPlugin::new());
```