mdman/format/mod.rs
1use anyhow::Error;
2
3pub mod man;
4pub mod md;
5pub mod text;
6
7pub trait Formatter {
8 /// Renders the given markdown to the formatter's output.
9 fn render(&self, input: &str) -> Result<String, Error>;
10 /// Renders the start of a block of options (triggered by `{{#options}}`).
11 fn render_options_start(&self) -> &'static str;
12 /// Renders the end of a block of options (triggered by `{{/options}}`).
13 fn render_options_end(&self) -> &'static str;
14 /// Renders an option (triggered by `{{#option}}`).
15 fn render_option(&self, params: &[&str], block: &str, man_name: &str) -> Result<String, Error>;
16 /// Converts a man page reference into markdown that is appropriate for this format.
17 ///
18 /// Triggered by `{{man name section}}`.
19 fn linkify_man_to_md(&self, name: &str, section: u8) -> Result<String, Error>;
20}