Expand description
Generate well-structured Markdown documentation from a clap CLI.
clapdown walks a clap::Command and renders it to Markdown whose
heading outline tracks command nesting without ever skipping a level: the
root command is a top-level heading, each subcommand descends one level, and
a command’s Arguments/Options sections sit one level below the command.
Arguments render as definition lists, or as bullet lists with
Flavor::CommonMark.
§Example
use clap::Command;
let cmd = Command::new("greet")
.about("Greet someone")
.arg(clap::Arg::new("name").help("Who to greet"));
let markdown = clapdown::render(&cmd, &clapdown::Options::new());
assert!(markdown.contains("# `greet`"));Use render_from to go straight from a derived CLI type:
use clap::Parser;
#[derive(Parser)]
#[command(name = "greet", about = "Greet someone")]
struct Cli {
/// Who to greet
name: String,
}
let markdown = clapdown::render_from::<Cli>(&clapdown::Options::new());
assert!(markdown.contains("# `greet`"));Structs§
- Options
- Options controlling how a
clap::Commandis rendered to Markdown.
Enums§
- Flavor
- The Markdown flavor to target.
- Metadata
Style - How a custom Pandoc metadata value is written to YAML.
Functions§
- render
- Render
cmdto a Markdown string usingopts. - render_
from - Render the CLI defined by
Cto a Markdown string usingopts.