Topics
In-depth documentation for specific Standout systems and use cases.
Core Concepts
Handler Contract
The interface between your logic and Standout. Covers the Handler trait, HandlerResult, the Output enum (Render, Silent, Binary), and CommandContext. Essential reading for understanding how handlers return data to be rendered.
Rendering System
How Standout transforms data into styled terminal output. Covers the two-pass architecture (MiniJinja + BBParser), style tags, themes, template filters, context injection, and structured output modes.
Output Modes
The --output flag and OutputMode enum. Covers auto/term/text modes for terminal output, structured modes (JSON, YAML, XML, CSV), file output, and how to access the mode in handlers.
Execution Model
The request lifecycle from CLI input to rendered output. Covers the pipeline (parsing, dispatch, handler, hooks, rendering), command paths, the hooks system (pre-dispatch, post-dispatch, post-output), and default command behavior.
Configuration
App Configuration
The AppBuilder API for configuring your application. Covers embedding templates and styles, theme selection, command registration, hooks, context injection, flag customization, and the complete setup workflow.
Topics System
Adding help topics to your CLI. Covers the Topic struct, TopicRegistry, loading topics from directories, help integration, pager support, and custom rendering.
Layout
Tabular Layout
Creating aligned, readable output for lists and tables. Covers the col filter, tabular() and table() functions, flexible widths, overflow handling, column styling, borders, and the Rust API.
Standalone Usage
Partial Adoption
Migrating an existing CLI to Standout incrementally. Covers using run with fallback dispatch, progressive command migration, and full adoption patterns.
Render Only
Using Standout's rendering layer without CLI integration. Covers standalone rendering functions, building themes programmatically, template validation, and context injection for non-CLI use cases.