Skip to content

topmark.presentation package index

topmark / presentation

Human-facing presentation layer for TopMark.

This package provides Click-free, format-agnostic presentation helpers used by CLI commands to render human-readable output (TEXT, MARKDOWN, and future formats).

It sits between the domain/API layer and the format-specific renderers and is responsible for preparing structured, presentation-ready data.

Responsibilities: - Build typed, human-facing report models (e.g. registry, config, diagnostics). - Normalize and enrich raw API/domain data for presentation purposes. - Apply verbosity rules and safe defaults. - Provide shared formatting helpers reused across output formats.

Non-responsibilities: - No I/O: this package never writes to stdout/stderr. - No CLI framework dependency: remains usable outside Click (e.g. tests, alternative frontends). - No machine-readable formats: JSON/NDJSON are handled by topmark.*.machine.

Architecture: - topmark.api → canonical structured metadata - topmark.presentation → human-facing report models and helpers (this package) - topmark.presentation.text → TEXT renderers - topmark.presentation.markdown → MARKDOWN renderers - topmark.cli.commands → orchestration and printing

Design principles: - Separation of concerns: preparation vs rendering vs orchestration - Deterministic output: TEXT and MARKDOWN derive from the same prepared data - Strong typing: explicit report models instead of ad-hoc dicts

This package mirrors the conceptual domains of TopMark (registry, config, diagnostics, pipeline, ...) to keep symmetry with machine-format layers and to support future extensions.

Immediate children in this package

topmark.presentation.markdown
Markdown CLI emitters.
topmark.presentation.shared
Shared human-facing output helpers and objects.
topmark.presentation.text
Text, optionally ANSI-styled CLI renderers (default).