#![warn(missing_docs)] // This is an HTML parser. HTML can be untrusted input from the internet. #![forbid(clippy::undocumented_unsafe_blocks)] #![forbid(clippy::multiple_unsafe_ops_per_block)] #![doc = concat!("[`examples/spans.rs`]: ", file_url!("examples/spans.rs"))] #![doc = concat!("[changelog]: ", file_url!("CHANGELOG.md"))] #![doc = concat!("[the LICENSE file]: ", file_url!("LICENSE"))] #![doc = include_str!("../README.md")] mod basic_emitter; mod emitter; mod entities; mod error; mod let_else; mod naive_parser; mod tokenizer; mod tracing_emitter; /// Types for HTML attributes. pub mod attr { pub use crate::token::{AttrIntoIter, AttrIter, Attribute, AttributeMap, AttributeOwned}; pub use crate::trace::AttrValueSyntax; } pub mod offset; pub mod reader; pub mod token; pub mod trace; pub use basic_emitter::BasicEmitter; pub use emitter::Emitter; pub use error::Error; pub use naive_parser::NaiveParser; pub use token::{Doctype, EndTag, StartTag, Token}; pub use tokenizer::{Event, State, Tokenizer}; pub use tracing_emitter::TracingEmitter; #[cfg(feature = "integration-tests")] pub use tokenizer::InternalState; /// Relative links in the README.md don't work in rustdoc, so we have to override them. macro_rules! file_url { ($path:literal) => { concat!( env!("CARGO_PKG_REPOSITORY"), "/tree/", $path, "?h=v", env!("CARGO_PKG_VERSION") ) }; }