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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
//! Handler for structural container elements.
//!
//! This module provides handlers for structural containers that process their
//! children without special formatting or whitespace truncation:
//! - body, html: Structural document containers
//! - time, data: Inline semantic containers
//! - thead, tbody, tfoot, tr, th, td: Table structure (handled elsewhere)
//! - source: Media source element
//! - wbr: Word break opportunity (no-op)
use crateConversionOptions;
use crateParser;
use NodeHandle;
// Type aliases for Context and DomContext to avoid circular imports
type Context = crateContext;
type DomContext = crateDomContext;
/// Handle structural container elements that recursively process children.
///
/// This is used for elements like `body` and `html` that should process their
/// children directly without any whitespace truncation or special formatting.
///
/// # Arguments
/// * `node_handle` - Handle to the HTML node
/// * `parser` - The HTML parser
/// * `output` - Accumulation buffer for Markdown output
/// * `options` - Conversion options
/// * `ctx` - Current conversion context
/// * `depth` - Current recursion depth
/// * `dom_ctx` - DOM context for tracking relationships
/// Handle pass-through container elements that process children inline.
///
/// This is used for semantic elements like `time` and `data` that wrap content
/// but should not add any additional formatting or block breaks.
///
/// # Arguments
/// * `node_handle` - Handle to the HTML node
/// * `parser` - The HTML parser
/// * `output` - Accumulation buffer for Markdown output
/// * `options` - Conversion options
/// * `ctx` - Current conversion context
/// * `depth` - Current recursion depth
/// * `dom_ctx` - DOM context for tracking relationships
/// Handle no-op container elements that should be ignored.
///
/// This is used for elements like `wbr` (word break opportunity) and `source`
/// (media source specification) that should not produce any output.
///
/// # Arguments
/// * `_node_handle` - Handle to the HTML node (unused)
/// * `_parser` - The HTML parser (unused)
/// * `_output` - Accumulation buffer for Markdown output (unused)
/// * `_options` - Conversion options (unused)
/// * `_ctx` - Current conversion context (unused)
/// * `_depth` - Current recursion depth (unused)
/// * `_dom_ctx` - DOM context (unused)