Crates.io | html_forge |
lib.rs | html_forge |
version | 0.1.0-a |
source | src |
created_at | 2024-08-09 22:31:38.935479 |
updated_at | 2024-10-09 16:28:33.135157 |
description | A robust and efficient HTML parsing library for Rust |
homepage | |
repository | https://github.com/benodiwal/html_forge |
max_upload_size | |
id | 1331795 |
size | 16,021 |
A robust and efficient HTML parsing library for Rust
Element Parsing
: Easily parse HTML elements with attributes and nested children.Text Parsing
: Extract and manage text nodes within your documents.Attribute Parsing
: Handle element attributes with both single and double quotes.Comment Parsing
: Parse comments safely, even those with special characters or nested hyphens.Error Handling
: Gracefully manage parsing errors such as mismatched tags and unexpected end-of-file (EOF).To use html_forge
, add the following to your Cargo.toml:
[dependencies]
html_forge = "0.1.0"
Hereβs how you can parse a simple HTML snippet using html_forge:
use html_forge::parser::Parser;
use html_forge::dom::Node;
fn main() {
let input = "<div class='container'><p>Hello, world!</p></div>".to_string();
let mut parser = Parser::new(input);
match parser.parse() {
Ok(node) => println!("Parsed Node: {:?}", node),
Err(err) => eprintln!("Parsing error: {:?}", err),
}
}
html_forge gracefully handles common errors during parsing:
use html_forge::{parser::Parser, errors::ParseError};
fn main() {
let input = "<div><p>Unclosed div".to_string();
let mut parser = Parser::new(input);
match parser.parse() {
Err(ParseError::UnexpectedEOF) => eprintln!("Error: Unexpected end of file"),
Err(ParseError::MismatchedClosingTag) => eprintln!("Error: Mismatched closing tag"),
Ok(node) => println!("Parsed Node: {:?}", node),
Err(err) => eprintln!("Other parsing error: {:?}", err),
}
}
To run the tests, use:
cargo test
Contributions are welcome! Feel free to open issues, submit pull requests, or fork the repository to make improvements.
This library is open-source and available under the MIT LICENSE.
Happy forging with html_forge! π οΈπ