readabilityrs 0.1.4

A Rust port of Mozilla's Readability library for extracting article content from web pages
Documentation
/// Tracks context during recursive DOM-to-markdown conversion.
#[derive(Debug, Default)]
pub struct ConversionState {
    /// Current list nesting depth (0 = not in a list).
    pub list_depth: usize,
    /// Counter stack for ordered lists at each nesting level.
    pub ordered_list_counters: Vec<usize>,
    /// True when inside a `<pre><code>` block; skip all formatting.
    pub in_code_block: bool,
    /// True when inside a `<table>`; different whitespace rules.
    pub in_table: bool,
    /// Current blockquote nesting depth.
    pub in_blockquote_depth: usize,
    /// Collected link references for reference-style output.
    pub link_references: Vec<(String, String)>,
    /// Collected footnote definitions `(id, content)`.
    pub footnotes: Vec<(String, String)>,
    /// True when inside an `<a>` tag; prevents nested link output.
    pub in_link: bool,
    /// True when inside a heading; prevents nested block elements.
    pub in_heading: bool,
    /// True when inside a `<li>`; suppresses paragraph blank-line wrapping.
    pub in_list_item: bool,
    /// Current DOM recursion depth, bounded by
    /// [`MAX_DOM_DEPTH`](crate::constants::MAX_DOM_DEPTH). Carried here rather
    /// than as a parameter because every conversion function already threads
    /// this state, while `convert_children` alone has around thirty call sites.
    pub depth: usize,
}