How jonsequitur/system-commandline-extensions works
This repository provides two CLI-help packages: HelpLine.Docs lets an application expose Markdown documentation as discoverable topics, while HelpLine.HelpBuilder supplies a source-compatible System.CommandLine help renderer. The main Docs workflow loads or parses Markdown, maps headings into a topic catalog, and serves a list or selected/all topic content through a CLI command and Markdown renderer. The help-builder package separately formats command metadata into customizable help output. README confirms package capabilities; several implementation files were not sampled, so their internal wiring is represented only where documented or directly supported.
Main entry points: HelpBuilder.cs Help formatter · DocsCommand.cs Docs command · MarkdownHelpRenderer.cs Markdown renderer · DocsTopicCatalog.cs Topic catalog
Components 22
Markdown Docs
- Topic catalog
src/HelpLine.Docs/DocsTopicCatalog.cs - Heading mapping
src/HelpLine.Docs/HeadingContext.cs - Topic metadata
src/HelpLine.Docs/DocsTopic.cs - Docs command
src/HelpLine.Docs/DocsCommand.cs - Topic option
src/HelpLine.Docs/DocsTopicOption.cs - List topics
src/HelpLine.Docs/ListDocsTopicsCommand.cs - Markdown renderer
src/HelpLine.Docs/MarkdownHelpRenderer.cs - Markdown visitor
src/HelpLine.Docs/IMarkdownVisitor.cs - Plain text output
src/HelpLine.Docs/PlainTextMarkdownVisitor.cs - Spectre output
src/HelpLine.Docs/SpectreMarkdownVisitor.cs
Help Builder
- Help action
src/HelpLine.HelpBuilder/System.CommandLine.Help/CustomHelpAction.cs - Help formatter
src/HelpLine.HelpBuilder/System.CommandLine.Help/HelpBuilder.cs - Help context
src/HelpLine.HelpBuilder/System.CommandLine.Help/HelpContext.cs - Default layout
src/HelpLine.HelpBuilder/System.CommandLine.Help/HelpBuilder.Default.cs - Help rows
src/HelpLine.HelpBuilder/System.CommandLine.Help/TwoColumnHelpRow.cs - Command extensions
src/HelpLine.HelpBuilder/System.CommandLine.Help/HelpBuilderCommandExtensions.cs - Root extensions
src/HelpLine.HelpBuilder/System.CommandLine.Help/RootCommandExtensions.cs - Localized labels
src/HelpLine.HelpBuilder/System.CommandLine.Help/LocalizationResources.cs
Other components
- CLI user
- Host CLI app
- Markdown docs
- Terminal output
Connections 25
- CLI user → Host CLI app: invokes
- Host CLI app → Docs command: registers command
- Markdown docs → Topic catalog: loads/parses
- Topic catalog → Heading mapping: maps headings
- Topic catalog → Topic metadata: creates entries
- CLI user → Docs command: requests docs
- Docs command → Topic option: reads selection
- Docs command → Topic catalog: queries topics
- Docs command → List topics: lists topics
- Docs command → Markdown renderer: renders content
- Markdown renderer → Markdown visitor: dispatches visits
- Markdown renderer → Plain text output: uses output visitor
- Markdown renderer → Spectre output: uses output visitor
- Plain text output → Terminal output: writes text
- Spectre output → Terminal output: writes markup
- CLI user → Help action: requests help
- Help action → Help formatter: invokes formatting
- Help formatter → Help context: uses operation context
- Help formatter → Default layout: gets default sections
- Help formatter → Help rows: formats rows
- Default layout → Help rows: builds sections
- Default layout → Localized labels: gets labels
- Help formatter → Terminal output: writes help
- Command extensions → Help formatter: configures help
- Root extensions → Help formatter: configures root help