standout-render 2.1.0

Styled terminal rendering with templates, themes, and adaptive color support
Documentation

standout-render

Styled terminal rendering with templates, themes, and adaptive color support.

This crate provides the rendering foundation for the standout CLI framework, but can be used independently for any application that needs rich terminal output.

Features

  • Two-pass rendering: MiniJinja templates + BBCode-style styling
  • Adaptive themes: Light/dark mode support with automatic OS detection
  • Output modes: Auto, Terminal, Text, JSON, YAML, CSV, XML
  • Tabular formatting: Unicode-aware column layouts
  • File-based resources: Hot-reload in dev, embedded in release

Quick Start

use standout_render::{render, Theme};
use console::Style;
use serde::Serialize;

#[derive(Serialize)]
struct Data { title: String, count: usize }

let theme = Theme::new()
    .add("title", Style::new().bold())
    .add("count", Style::new().cyan());

let output = render(
    "[title]{{ title }}[/title]: [count]{{ count }}[/count] items",
    &Data { title: "Report".into(), count: 42 },
    &theme,
).unwrap();

Relationship to standout

  • standout-render: Pure rendering (templates, themes, styles) - no CLI knowledge
  • standout: Full CLI framework with clap integration, dispatch, hooks

If you only need rendering without CLI features, use standout-render directly. If you want the full framework, use standout which re-exports everything from this crate.

License

MIT