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§
fn meta(&self) -> PluginMeta
Provided Methods§
Sourcefn before(&mut self, _arena: &Arena, _ctx: &mut PluginContext<'_>)
fn before(&mut self, _arena: &Arena, _ctx: &mut PluginContext<'_>)
Called before each file.
Sourcefn after(&mut self, _arena: &Arena, _ctx: &mut PluginContext<'_>)
fn after(&mut self, _arena: &Arena, _ctx: &mut PluginContext<'_>)
Called after each file.
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
Sourcefn transform_root(
&mut self,
_arena: &Arena,
_ctx: &mut PluginContext<'_>,
) -> Option<Arena>
fn transform_root( &mut self, _arena: &Arena, _ctx: &mut PluginContext<'_>, ) -> Option<Arena>
Optional: full arena access for wholesale rewrites. Return None to leave unchanged.