cmark_writer/lib.rs
1//! # cmark-writer
2//!
3//! `cmark-writer` is a Rust library for writing CommonMark format.
4//!
5//! This library provides functionality to serialize in-memory data structures to CommonMark compliant text.
6//!
7//! ## Example
8//!
9//! ```rust
10//! use cmark_writer::ast::{Node, BlockNode, InlineNode, ListItem};
11//! use cmark_writer::writer::CommonMarkWriter;
12//!
13//! // Create a simple document
14//! let document = BlockNode::Document(vec![
15//! BlockNode::Heading {
16//! level: 1,
17//! content: vec![InlineNode::Text("Hello CommonMark".to_string())],
18//! },
19//! BlockNode::Paragraph(vec![
20//! InlineNode::Text("This is a simple ".to_string()),
21//! InlineNode::Strong(vec![InlineNode::Text("example".to_string())]),
22//! InlineNode::Text(".".to_string()),
23//! ]),
24//! ]).into_node();
25//!
26//! // Write the document as CommonMark text
27//! let mut writer = CommonMarkWriter::new();
28//! writer.write(&document).expect("Failed to write document");
29//! let markdown = writer.into_string();
30//!
31//! println!("{}", markdown);
32//! ```
33
34// Re-export main public API components so users can access them directly via `cmark_writer::Node`
35pub use crate::ast::{
36 Alignment, BlockNode, HtmlAttribute, HtmlElement, InlineNode, ListItem, Node,
37};
38pub use crate::error::{WriteError, WriteResult};
39pub use crate::options::WriterOptions;
40pub use crate::writer::CommonMarkWriter;
41
42// Export public modules to allow users to access more advanced functionality
43pub mod ast;
44pub mod error;
45pub mod options;
46pub mod writer;