Skip to main content

Plugin

Trait Plugin 

Source
pub trait Plugin: Send + Sync {
Show 19 methods // Required method fn meta(&self) -> PluginMeta; // Provided methods fn init(&mut self) { ... } fn before(&mut self, _arena: &Arena, _ctx: &mut PluginContext<'_>) { ... } fn after(&mut self, _arena: &Arena, _ctx: &mut PluginContext<'_>) { ... } fn visit_heading( &mut self, _node: &Heading<'_>, _ctx: &mut PluginContext<'_>, ) -> VisitResult { ... } fn visit_paragraph( &mut self, _node: &Paragraph<'_>, _ctx: &mut PluginContext<'_>, ) -> VisitResult { ... } fn visit_text( &mut self, _node: &Text<'_>, _ctx: &mut PluginContext<'_>, ) -> VisitResult { ... } fn visit_link( &mut self, _node: &Link<'_>, _ctx: &mut PluginContext<'_>, ) -> VisitResult { ... } fn visit_image( &mut self, _node: &Image<'_>, _ctx: &mut PluginContext<'_>, ) -> VisitResult { ... } fn visit_code( &mut self, _node: &Code<'_>, _ctx: &mut PluginContext<'_>, ) -> VisitResult { ... } fn visit_list( &mut self, _node: &NodeView<'_>, _ctx: &mut PluginContext<'_>, ) -> VisitResult { ... } fn visit_list_item( &mut self, _node: &NodeView<'_>, _ctx: &mut PluginContext<'_>, ) -> VisitResult { ... } fn visit_blockquote( &mut self, _node: &NodeView<'_>, _ctx: &mut PluginContext<'_>, ) -> VisitResult { ... } fn visit_emphasis( &mut self, _node: &NodeView<'_>, _ctx: &mut PluginContext<'_>, ) -> VisitResult { ... } fn visit_strong( &mut self, _node: &NodeView<'_>, _ctx: &mut PluginContext<'_>, ) -> VisitResult { ... } fn visit_inline_code( &mut self, _node: &Text<'_>, _ctx: &mut PluginContext<'_>, ) -> VisitResult { ... } fn visit_html( &mut self, _node: &Text<'_>, _ctx: &mut PluginContext<'_>, ) -> VisitResult { ... } fn visit_table( &mut self, _node: &NodeView<'_>, _ctx: &mut PluginContext<'_>, ) -> VisitResult { ... } fn transform_root( &mut self, _arena: &Arena, _ctx: &mut PluginContext<'_>, ) -> Option<Arena> { ... }
}
Expand description

The Rust plugin trait.

Implement only the visitor methods you need. Default implementations return NoChange (no-op) so unimplemented visitors have zero overhead.

Required Methods§

Source

fn meta(&self) -> PluginMeta

Provided Methods§

Source

fn init(&mut self)

Called once before any files are processed.

Source

fn before(&mut self, _arena: &Arena, _ctx: &mut PluginContext<'_>)

Called before each file.

Source

fn after(&mut self, _arena: &Arena, _ctx: &mut PluginContext<'_>)

Called after each file.

Source

fn visit_heading( &mut self, _node: &Heading<'_>, _ctx: &mut PluginContext<'_>, ) -> VisitResult

Source

fn visit_paragraph( &mut self, _node: &Paragraph<'_>, _ctx: &mut PluginContext<'_>, ) -> VisitResult

Source

fn visit_text( &mut self, _node: &Text<'_>, _ctx: &mut PluginContext<'_>, ) -> VisitResult

Source

fn visit_image( &mut self, _node: &Image<'_>, _ctx: &mut PluginContext<'_>, ) -> VisitResult

Source

fn visit_code( &mut self, _node: &Code<'_>, _ctx: &mut PluginContext<'_>, ) -> VisitResult

Source

fn visit_list( &mut self, _node: &NodeView<'_>, _ctx: &mut PluginContext<'_>, ) -> VisitResult

Source

fn visit_list_item( &mut self, _node: &NodeView<'_>, _ctx: &mut PluginContext<'_>, ) -> VisitResult

Source

fn visit_blockquote( &mut self, _node: &NodeView<'_>, _ctx: &mut PluginContext<'_>, ) -> VisitResult

Source

fn visit_emphasis( &mut self, _node: &NodeView<'_>, _ctx: &mut PluginContext<'_>, ) -> VisitResult

Source

fn visit_strong( &mut self, _node: &NodeView<'_>, _ctx: &mut PluginContext<'_>, ) -> VisitResult

Source

fn visit_inline_code( &mut self, _node: &Text<'_>, _ctx: &mut PluginContext<'_>, ) -> VisitResult

Source

fn visit_html( &mut self, _node: &Text<'_>, _ctx: &mut PluginContext<'_>, ) -> VisitResult

Source

fn visit_table( &mut self, _node: &NodeView<'_>, _ctx: &mut PluginContext<'_>, ) -> VisitResult

Source

fn transform_root( &mut self, _arena: &Arena, _ctx: &mut PluginContext<'_>, ) -> Option<Arena>

Optional: full arena access for wholesale rewrites. Return None to leave unchanged.

Implementors§