164 lines
3 KiB
Rust
164 lines
3 KiB
Rust
//! Definitions for all non-deprecated HTML elements.
|
|
//!
|
|
//! <https://developer.mozilla.org/en-US/docs/Web/HTML/Element>
|
|
|
|
use crate::{Element, ElementComponent, ElementKind};
|
|
|
|
macro_rules! element {
|
|
( $name:ident ) => {
|
|
element!($name, ElementKind::Normal);
|
|
};
|
|
( $name:ident, $kind:expr ) => {
|
|
pub fn $name(c: impl ElementComponent) -> Element {
|
|
Element::new(stringify!($name), $kind).with(c)
|
|
}
|
|
};
|
|
}
|
|
|
|
// Main root
|
|
element!(html);
|
|
|
|
// Document metadata
|
|
element!(base, ElementKind::Void);
|
|
element!(head);
|
|
element!(link, ElementKind::Void);
|
|
element!(meta, ElementKind::Void);
|
|
element!(style, ElementKind::RawText);
|
|
element!(title, ElementKind::EscapableRawText);
|
|
|
|
// Sectioning root
|
|
element!(body);
|
|
|
|
// Content sectioning
|
|
element!(address);
|
|
element!(article);
|
|
element!(aside);
|
|
element!(footer);
|
|
element!(header);
|
|
element!(h1);
|
|
element!(h2);
|
|
element!(h3);
|
|
element!(h4);
|
|
element!(h5);
|
|
element!(h6);
|
|
element!(hgroup);
|
|
element!(main);
|
|
element!(nav);
|
|
element!(section);
|
|
element!(search);
|
|
|
|
// Text content
|
|
element!(blockquote);
|
|
element!(dd);
|
|
element!(div);
|
|
element!(dl);
|
|
element!(dt);
|
|
element!(figcaption);
|
|
element!(figure);
|
|
element!(hr, ElementKind::Void);
|
|
element!(li);
|
|
element!(menu);
|
|
element!(ol);
|
|
element!(p);
|
|
element!(pre);
|
|
element!(ul);
|
|
|
|
// Inline text semantics
|
|
element!(a);
|
|
element!(abbr);
|
|
element!(b);
|
|
element!(bdi);
|
|
element!(bdo);
|
|
element!(br, ElementKind::Void);
|
|
element!(cite);
|
|
element!(code);
|
|
element!(data);
|
|
element!(dfn);
|
|
element!(em);
|
|
element!(i);
|
|
element!(kbd);
|
|
element!(mark);
|
|
element!(q);
|
|
element!(rp);
|
|
element!(rt);
|
|
element!(ruby);
|
|
element!(s);
|
|
element!(samp);
|
|
element!(small);
|
|
element!(span);
|
|
element!(strong);
|
|
element!(sub);
|
|
element!(sup);
|
|
element!(time);
|
|
element!(u);
|
|
element!(var);
|
|
element!(wbr, ElementKind::Void);
|
|
|
|
// Image and multimedia
|
|
element!(area, ElementKind::Void);
|
|
element!(audio);
|
|
element!(img, ElementKind::Void);
|
|
element!(map);
|
|
element!(track, ElementKind::Void);
|
|
element!(video);
|
|
|
|
// Embedded content
|
|
element!(embed, ElementKind::Void);
|
|
element!(fencedframe);
|
|
element!(iframe);
|
|
element!(object);
|
|
element!(picture);
|
|
element!(portal);
|
|
element!(source, ElementKind::Void);
|
|
|
|
// SVG and MathML
|
|
// See corresponding modules
|
|
|
|
// Scripting
|
|
element!(canvas);
|
|
element!(noscript);
|
|
element!(script, ElementKind::RawText);
|
|
|
|
// Demarcating edits
|
|
element!(del);
|
|
element!(ins);
|
|
|
|
// Table content
|
|
element!(caption);
|
|
element!(col, ElementKind::Void);
|
|
element!(colgroup);
|
|
element!(table);
|
|
element!(tbody);
|
|
element!(td);
|
|
element!(tfoot);
|
|
element!(th);
|
|
element!(thead);
|
|
element!(tr);
|
|
|
|
// Forms
|
|
element!(button);
|
|
element!(datalist);
|
|
element!(fieldset);
|
|
element!(form);
|
|
element!(input, ElementKind::Void);
|
|
element!(label);
|
|
element!(legend);
|
|
element!(meter);
|
|
element!(optgroup);
|
|
element!(option);
|
|
element!(output);
|
|
element!(progress);
|
|
element!(select);
|
|
element!(textarea, ElementKind::EscapableRawText);
|
|
|
|
// Interactive elements
|
|
element!(details);
|
|
element!(dialog);
|
|
element!(summary);
|
|
|
|
// Web Components
|
|
element!(slot);
|
|
element!(template, ElementKind::Template);
|
|
|
|
// Obsolete and deprecated elements
|
|
// Intentionally excluded!
|