Skip to content

lomirus/html_editor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

crate-badge downloads-badge License check-badge

HTML Editor

Pure and simple HTML parser and editor.

Examples

Parse HTML segment/document

let document: Vec<Node> = parse("<!doctype html><html><head></head><body></body></html>")?;
println!("{:#?}", document);

Output:

[
    Doctype(
        Html,
    ),
    Element {
        name: "html",
        attrs: {},
        children: [
            Element {
                name: "head",
                attrs: {},
                children: [],
            },
            Element {
                name: "body",
                attrs: {},
                children: [],
            },
        ],
    },
]

You can also use try_parse to parse the html which contains tolerable errors

let document: Vec<Node> = try_parse("<div><span>Ipsum</div>");

Query an element / elements by selector

// let html = r#"..."#
let nodes: Vec<Node> = parse(html)?;
let selector: Selector = Selector::from(".box");

let element: Option<Element> = nodes.query(&selector);
let elements: Vec<Element> = nodes.query_all(&selector);

Edit the HTML

// let html = r#"..."#
let a: String = parse(html)?.trim().html();
let b: String = parse(html)?.insert_to(&selector, node).html();
let c: String = parse(html)?.remove_by(&selector).html();
let d: String = parse(html)?.replace_with(&selector, |el| Node::Comment(el.html())).html();

You can find more examples in the documentation.

Changelog

See in CHANGELOG.md

About

Pure and simple HTML parser and editor.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •