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