Expand description
§Lottie
lottie is a simple yet powerful Fountain screenplay editor.
This library exposes the core engine of Lottie, allowing other developers to:
- Parse Fountain documents (
parser,types). - Generate terminal user interface layouts (
layout,formatting). - Export scripts to different formats (
export). - Embed the editor application (
app,config).
§Architecture
The pipeline flows as follows:
Raw text lines
→ parser::Parser::parse() → Vec<LineType>
→ layout::build_layout() → Vec<VisualRow>
→ app::draw() / export::export_document()Modules§
- app
- The interactive TUI editor application, event loop, and rendering logic.
- config
- CLI argument parsing and runtime configuration loading.
- export
- Plain-text and ANSI export of a laid-out screenplay.
- formatting
- Inline markdown parsing (
**bold**,*italic*,_underline_, notes, boneyard) and span rendering for ratatui. - layout
- Visual layout engine: word-wrapping, indentation, page numbering, scene numbering.
- parser
- Fountain markup language parser that classifies each line as a
types::LineType. - types
- Core type definitions:
types::LineType,types::Fmt, style helpers, and layout constants.