#![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 default_emitter; mod emitter; mod entities; mod error; mod machine; mod naive_parser; mod tokenizer; mod utils; /// Types for HTML attributes. pub mod attr { pub use crate::token::{ AttrIntoIter, AttrIter, AttrValueSyntax, Attribute, AttributeMap, AttributeOwned, }; } pub mod offset; pub mod reader; pub mod token; pub use default_emitter::DefaultEmitter; pub use emitter::Emitter; pub use error::Error; pub use naive_parser::NaiveParser; pub use token::{Comment, Doctype, EndTag, StartTag, Token}; pub use tokenizer::{CdataAction, Event, State, Tokenizer}; #[cfg(feature = "integration-tests")] pub use utils::State as 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") ) }; }