docparser-core 0.2.0

docparser 独立解析核心:IR / 统一错误 / 能力 trait / Registry / Router / Policy(零 native 依赖)
Documentation
//! 只用 `docparser-core` 解析文本族(txt / md / csv / html),打印块结构并输出 Markdown。
//!
//! ```bash
//! cargo run -p docparser-core --example text_family -- README.md
//! ```

use docparser_core::engine::DocumentEngine;
use docparser_core::registry::Registry;
use docparser_core::{emit, plugins};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let path = std::env::args()
        .nth(1)
        .unwrap_or_else(|| "note.md".to_string());

    // 裸内核 + 文本族插件(txt 始终在,md/csv/html 受 feature 控制)
    let mut registry = Registry::new();
    plugins::text::register_defaults(&mut registry);
    let engine = DocumentEngine::new(registry);

    let doc = engine.parse(&path)?;
    println!(
        "{} 页 / {} 块 / {} 字符",
        doc.pages.len(),
        doc.pages.iter().map(|p| p.blocks.len()).sum::<usize>(),
        doc.meta.text_length
    );

    for (i, page) in doc.pages.iter().enumerate() {
        println!("--- page {i} {:?}", page.name);
        for block in &page.blocks {
            println!("  {:?}: {}", block.kind, block.content);
        }
    }

    println!("\n===== markdown =====\n{}", emit::to_markdown(&doc));
    Ok(())
}