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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
//! Specialized AST types for element ID tracking
//!
//! This module provides pre-defined specialized versions of the generic AST
//! for element identification scenarios.
//!
//! # Quick Start
//!
//! Enable the feature in your `Cargo.toml`:
//!
//! ```toml
//! [dependencies]
//! markdown-ppp = { version = "2.6.0", features = ["ast-specialized"] }
//! ```
//!
//! # Example Usage
//!
//! ```rust
//! use markdown_ppp::ast_specialized::{ElementId, with_ids, utilities::id_utils};
//! use markdown_ppp::ast::{Document, Block, Heading, HeadingKind, Inline};
//!
//! // Create a regular document
//! let doc = Document {
//! blocks: vec![
//! Block::Heading(Heading {
//! kind: HeadingKind::Atx(1),
//! content: vec![Inline::Text("Hello World".to_string())],
//! })
//! ],
//! };
//!
//! // Add sequential IDs to all elements
//! let doc_with_ids: with_ids::Document = id_utils::add_ids_to_document(doc);
//!
//! // Access element IDs
//! println!("Document ID: {}", doc_with_ids.user_data.id());
//! ```
//!
//! # Organization
//!
//! - `element_id` - Element ID support and related functionality
//! - `type_aliases` - Convenient type aliases for specialized AST types
//! - `utilities` - Helper functions and utilities
// Re-export main types for convenience
pub use ElementId;
// Re-export type alias modules
pub use with_ids;
// Re-export utility modules
pub use id_utils;