umd 0.2.0

Universal Markdown - A post-Markdown superset with semantic HTML and extensible syntax
Documentation
use umd::parse;

fn main() {
    println!("=== Table Cell Spanning Examples ===\n");

    // Example 1: Basic colspan
    let colspan_basic = r#"| Header1 |> | Header3 |
|---------|--|---------|
| Cell1   | Cell2   | Cell3   |"#;
    println!("Example 1: Basic colspan");
    println!("Input:\n{}\n", colspan_basic);
    println!("Output:\n{}\n", parse(colspan_basic));
    println!("Expected: Header1 spans 2 columns\n");

    // Example 2: Multiple colspan
    let colspan_multiple = r#"| Span 3 columns |> |> |
|----------------|--|--|
| A              | B   | C |"#;
    println!("Example 2: Multiple colspan");
    println!("Input:\n{}\n", colspan_multiple);
    println!("Output:\n{}\n", parse(colspan_multiple));
    println!("Expected: Header spans 3 columns\n");

    // Example 3: Basic rowspan
    let rowspan_basic = r#"| Header1 | Header2 |
|---------|---------|
| Cell1   | Cell2   |
| |^      | Cell4   |"#;
    println!("Example 3: Basic rowspan");
    println!("Input:\n{}\n", rowspan_basic);
    println!("Output:\n{}\n", parse(rowspan_basic));
    println!("Expected: Cell1 spans 2 rows\n");

    // Example 4: Combined colspan and rowspan
    let combined = r#"| Header1 |> | Header3 |
|---------|--|---------|
| Span2x2 |> | Cell3   |
| |^      |^ | Cell4   |
| Cell5   | Cell6 | Cell7 |"#;
    println!("Example 4: Combined colspan and rowspan");
    println!("Input:\n{}\n", combined);
    println!("Output:\n{}\n", parse(combined));
    println!("Expected: Cell 'Span2x2' spans 2 columns and 2 rows\n");

    // Example 5: With alignment decoration
    let with_classes = r#"| CENTER: Header1 |> | END: Header3 |
|-----------------|--|----------------|
| V-START: Cell1  |> | V-CENTER: Cell3  |
| V-END: Cell4    | Cell5 | Cell6     |"#;
    println!("Example 5: With alignment decoration");
    println!("Input:\n{}\n", with_classes);
    println!("Output:\n{}\n", parse(with_classes));
    println!(
        "Expected: Headers centered/end aligned, cells with vertical alignment, and colspan\n"
    );

    // Example 6: Complex table with multiple spans
    let complex = r#"| Product |> |> | Q1 | Q2 | Q3 | Q4 |
|---------|--|--|----|----|----|----|
| Category A |> |> | 10 | 20 | 30 | 40 |
| Item 1  | Details |> | 5  | 10 | 15 | 20 |
| Item 2  | Details |> | 5  | 10 | 15 | 20 |
| Category B |> |> | 15 | 25 | 35 | 45 |"#;
    println!("Example 6: Complex table with multiple spans");
    println!("Input:\n{}\n", complex);
    println!("Output:\n{}\n", parse(complex));
    println!("Expected: Multiple colspan in headers and cells\n");
}