usage/docs/markdown/
flag.rs1use crate::docs::markdown::renderer::MarkdownRenderer;
2use crate::docs::models::SpecFlag;
3use crate::error::UsageErr;
4
5impl MarkdownRenderer {
6 pub fn render_flag(&self, flag: &crate::SpecFlag) -> Result<String, UsageErr> {
7 let mut flag = SpecFlag::from(flag);
8 flag.render_md(self);
9 let mut ctx = self.clone();
10 ctx.insert("flag", &flag);
11 ctx.render("flag_template.md.tera")
12 }
13}
14
15#[cfg(test)]
16mod tests {
17 use crate::docs::markdown::renderer::MarkdownRenderer;
18 use crate::spec;
19 use insta::assert_snapshot;
20
21 #[test]
22 fn test_render_markdown_flag() {
23 let spec = spec! { r#"flag "--flag1" help="flag1 description""# }.unwrap();
24 let ctx = MarkdownRenderer::new(spec.clone()).with_replace_pre_with_code_fences(true);
25 assert_snapshot!(ctx.render_flag(&spec.cmd.flags[0]).unwrap(), @"flag1 description");
26 }
27}