///|
/// CommonMark Inline-level AST node types.
///
/// Inline nodes represent formatted content within leaf blocks
/// (paragraphs, headings). The inline parser converts raw text
/// into a tree of these nodes.
///
/// # Node Types
///
/// ## Text and Code
/// - `Text` — plain text content (always HTML-escaped during rendering)
/// - `CodeSpan` — inline code (backtick-delimited)
///
/// ## Emphasis
/// - `Emphasis` — italic (`*text*` or `_text_`)
/// - `Strong` — bold (`**text**` or `__text__`)
/// - `Strikethrough` — deleted text (`~~text~~`, GFM extension)
///
/// ## Links and Media
/// - `Link` — hyperlink (`[text](url "title")`)
/// - `Image` — embedded image (``)
/// - `Autolink` — bare URL/email (``)
///
/// ## Line Breaks
/// - `HardBreak` — explicit line break (backslash-newline)
/// - `SoftBreak` — implicit line break (newline in paragraph)
///
/// ## Raw Content
/// - `RawHTML` — inline HTML passed through unchanged
/// - `HtmlEntity` — decoded HTML entity reference
pub(all) enum Inline {
/// Plain text. Always HTML-escaped during rendering.
Text(String)
/// Inline code span: `` `code` ``
CodeSpan(String)
/// Italic/emphasis: `*text*` or `_text_`
Emphasis(Array[Inline])
/// Bold/strong: `**text**` or `__text__`
Strong(Array[Inline])
/// Hyperlink: `[text](url "title")`
/// Fields: children, url, optional title
Link(Array[Inline], String, String?)
/// Image: ``
/// Fields: alt text, url, optional title
Image(Array[Inline], String, String?)
/// Explicit line break (backslash at end of line)
HardBreak
/// Implicit line break (newline within paragraph)
SoftBreak
/// Raw HTML tag passed through to output unchanged
RawHTML(String)
/// Decoded HTML entity (e.g. `&` → `&`)
HtmlEntity(String)
/// Autolink: `` or ``
Autolink(String)
/// GFM strikethrough: `~~text~~`
Strikethrough(Array[Inline])
}