termcinema_engine/lib.rs
1//! Terminal Cinematic Renderer — render styled terminal sessions as SVG animations.
2//!
3//! This crate provides the core logic for formatting, styling, and rendering
4//! terminal-like output (shell sessions, REPLs, CLI tools) into SVG or other formats.
5//!
6//! It exposes configurable options for font, color, layout, cursor behavior, and animation control.
7//!
8//! # Key Features
9//! - Built-in theme presets (`ThemePreset`)
10//! - Style and layout config (`StyleSpec`, `LayoutSpec`, etc.)
11//! - Typing animations with customizable speed and fade (`ControlSpec`)
12//! - Font resolution (embedded + system fonts)
13//! - Text parsing for shell/REPL-style sessions
14//!
15//! For CLI integration, see `termcinema-cli`. For advanced control, access core APIs directly.
16//!
17//! Powered by Rust 🦀 + SVG ✨
18
19mod constants;
20mod core;
21mod parser;
22mod render;
23
24// ───────────────🎯 Public API ───────────────
25
26pub use render::glue::*;
27
28// Core configuration and utilities
29pub use core::{
30 CommandGroup, ContentSpec, ControlSpec, CursorSpec, LayoutSpec, StyleSpec, TextAlign,
31 ThemeError, ThemePreset, VerticalAlign, all_presets, get_theme_by_name,
32 list_builtin_system_fonts, list_embeddable_font_families, recommended_fonts_for_current_os,
33 resolve_embedded_font, resolve_theme,
34};
35
36// Default values for visual and timing settings
37pub use constants::*;