html-linter 0.1.1

An HTML linting library for checking HTML structure and semantics
Documentation
use html_linter::{HtmlLinter, Rule, RuleType, Severity};
use std::collections::HashMap;

fn create_inline_styles_linter() -> HtmlLinter {
    let rules = vec![Rule {
        name: "no-inline-styles".to_string(),
        rule_type: RuleType::AttributePresence,
        severity: Severity::Warning,
        selector: "*".to_string(),
        condition: "style-attribute".to_string(),
        message: "Inline styles should be avoided".to_string(),
        options: HashMap::new(),
    }];

    HtmlLinter::new(rules, None)
}

#[test]
fn test_element_with_inline_style() {
    let linter = create_inline_styles_linter();
    let html = r#"<div style="color: red;">Test</div>"#;
    let results = linter.lint(html).unwrap();
    assert_eq!(results.len(), 1);
    assert_eq!(results[0].rule, "no-inline-styles");
    assert_eq!(results[0].severity, Severity::Warning);
}

#[test]
fn test_element_without_inline_style() {
    let linter = create_inline_styles_linter();
    let html = r#"<div class="red">Test</div>"#;
    let results = linter.lint(html).unwrap();
    assert_eq!(results.len(), 0);
}