1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
//! tdoc is a toolkit for building, parsing, formatting, and exporting documents
//! across FTML, HTML, Markdown, and Gemini.
//!
//! The crate is centered around three core concepts:
//! - [`Document`], [`Paragraph`], and [`Span`], which form an in-memory tree
//! representation of document content.
//! - Format modules (see [`ftml`], [`html`], [`markdown`], and [`gemini`]) that
//! provide both parsers and writers for each external format.
//! - A [`formatter`] for rendering the tree to richly styled terminal output.
//!
//! Checklists (Markdown `- [ ]` entries or HTML `<input type="checkbox">`
//! lists) map to [`ParagraphType::Checklist`] nodes that store [`ChecklistItem`]
//! children. Nested checklist items are preserved end-to-end so complex task
//! hierarchies round-trip across every parser and writer.
//!
//! Most applications start by building a [`Document`] manually or converting
//! some source text via one of the format modules, manipulate or inspect the
//! tree, and finally render it with [`ftml::Writer`], [`html::Writer`], or
//! [`formatter::Formatter`].
pub use Document;
pub use ;
pub use *;
pub use ;
/// Convenience result type used across parsing and writing APIs.
pub type Result<T> = Result;