main/
main.rs

1fn main() {
2    let example = r#"<div class="something">
3        <h3>Hello World</h3>
4    </div>"#;
5
6    let content = if let Some(path) = std::env::args().nth(1) {
7        std::fs::read_to_string(path).unwrap()
8    } else {
9        example.to_owned()
10    };
11
12    let second_arg = std::env::args().nth(2);
13    let mode = second_arg
14        .and_then(|arg| {
15            matches!(arg.as_str(), "--verbose" | "--text").then_some(arg[2..].to_owned())
16        })
17        .unwrap_or_default();
18
19    use lightml::{operations, Document, Lexer};
20
21    let result = Document::from_reader(&mut Lexer::new(&content));
22
23    if let "text" = mode.as_str() {
24        eprintln!(
25            "Text: {text}",
26            text = operations::inner_text(&result.unwrap().html_element)
27        );
28    } else if let "verbose" = mode.as_str() {
29        eprintln!("{result:#?}");
30    } else {
31        eprintln!("{result:?}");
32    }
33}