diff options
Diffstat (limited to 'crates/typst-library/src/html/dom.rs')
| -rw-r--r-- | crates/typst-library/src/html/dom.rs | 462 |
1 files changed, 305 insertions, 157 deletions
diff --git a/crates/typst-library/src/html/dom.rs b/crates/typst-library/src/html/dom.rs index 1b725d54..35d513c1 100644 --- a/crates/typst-library/src/html/dom.rs +++ b/crates/typst-library/src/html/dom.rs @@ -188,7 +188,7 @@ cast! { .collect::<HintedStrResult<_>>()?), } -/// An attribute of an HTML. +/// An attribute of an HTML element. #[derive(Copy, Clone, Eq, PartialEq, Hash)] pub struct HtmlAttr(PicoStr); @@ -347,135 +347,124 @@ pub mod charsets { } /// Predefined constants for HTML tags. +#[allow(non_upper_case_globals)] pub mod tag { use super::HtmlTag; - macro_rules! tags { - ($($tag:ident)*) => { - $(#[allow(non_upper_case_globals)] - pub const $tag: HtmlTag = HtmlTag::constant( - stringify!($tag) - );)* - } - } - - tags! { - a - abbr - address - area - article - aside - audio - b - base - bdi - bdo - blockquote - body - br - button - canvas - caption - cite - code - col - colgroup - data - datalist - dd - del - details - dfn - dialog - div - dl - dt - em - embed - fieldset - figcaption - figure - footer - form - h1 - h2 - h3 - h4 - h5 - h6 - head - header - hgroup - hr - html - i - iframe - img - input - ins - kbd - label - legend - li - link - main - map - mark - menu - meta - meter - nav - noscript - object - ol - optgroup - option - output - p - param - picture - pre - progress - q - rp - rt - ruby - s - samp - script - search - section - select - slot - small - source - span - strong - style - sub - summary - sup - table - tbody - td - template - textarea - tfoot - th - thead - time - title - tr - track - u - ul - var - video - wbr - } - - /// Whether this is a void tag whose associated element may not have a + pub const a: HtmlTag = HtmlTag::constant("a"); + pub const abbr: HtmlTag = HtmlTag::constant("abbr"); + pub const address: HtmlTag = HtmlTag::constant("address"); + pub const area: HtmlTag = HtmlTag::constant("area"); + pub const article: HtmlTag = HtmlTag::constant("article"); + pub const aside: HtmlTag = HtmlTag::constant("aside"); + pub const audio: HtmlTag = HtmlTag::constant("audio"); + pub const b: HtmlTag = HtmlTag::constant("b"); + pub const base: HtmlTag = HtmlTag::constant("base"); + pub const bdi: HtmlTag = HtmlTag::constant("bdi"); + pub const bdo: HtmlTag = HtmlTag::constant("bdo"); + pub const blockquote: HtmlTag = HtmlTag::constant("blockquote"); + pub const body: HtmlTag = HtmlTag::constant("body"); + pub const br: HtmlTag = HtmlTag::constant("br"); + pub const button: HtmlTag = HtmlTag::constant("button"); + pub const canvas: HtmlTag = HtmlTag::constant("canvas"); + pub const caption: HtmlTag = HtmlTag::constant("caption"); + pub const cite: HtmlTag = HtmlTag::constant("cite"); + pub const code: HtmlTag = HtmlTag::constant("code"); + pub const col: HtmlTag = HtmlTag::constant("col"); + pub const colgroup: HtmlTag = HtmlTag::constant("colgroup"); + pub const data: HtmlTag = HtmlTag::constant("data"); + pub const datalist: HtmlTag = HtmlTag::constant("datalist"); + pub const dd: HtmlTag = HtmlTag::constant("dd"); + pub const del: HtmlTag = HtmlTag::constant("del"); + pub const details: HtmlTag = HtmlTag::constant("details"); + pub const dfn: HtmlTag = HtmlTag::constant("dfn"); + pub const dialog: HtmlTag = HtmlTag::constant("dialog"); + pub const div: HtmlTag = HtmlTag::constant("div"); + pub const dl: HtmlTag = HtmlTag::constant("dl"); + pub const dt: HtmlTag = HtmlTag::constant("dt"); + pub const em: HtmlTag = HtmlTag::constant("em"); + pub const embed: HtmlTag = HtmlTag::constant("embed"); + pub const fieldset: HtmlTag = HtmlTag::constant("fieldset"); + pub const figcaption: HtmlTag = HtmlTag::constant("figcaption"); + pub const figure: HtmlTag = HtmlTag::constant("figure"); + pub const footer: HtmlTag = HtmlTag::constant("footer"); + pub const form: HtmlTag = HtmlTag::constant("form"); + pub const h1: HtmlTag = HtmlTag::constant("h1"); + pub const h2: HtmlTag = HtmlTag::constant("h2"); + pub const h3: HtmlTag = HtmlTag::constant("h3"); + pub const h4: HtmlTag = HtmlTag::constant("h4"); + pub const h5: HtmlTag = HtmlTag::constant("h5"); + pub const h6: HtmlTag = HtmlTag::constant("h6"); + pub const head: HtmlTag = HtmlTag::constant("head"); + pub const header: HtmlTag = HtmlTag::constant("header"); + pub const hgroup: HtmlTag = HtmlTag::constant("hgroup"); + pub const hr: HtmlTag = HtmlTag::constant("hr"); + pub const html: HtmlTag = HtmlTag::constant("html"); + pub const i: HtmlTag = HtmlTag::constant("i"); + pub const iframe: HtmlTag = HtmlTag::constant("iframe"); + pub const img: HtmlTag = HtmlTag::constant("img"); + pub const input: HtmlTag = HtmlTag::constant("input"); + pub const ins: HtmlTag = HtmlTag::constant("ins"); + pub const kbd: HtmlTag = HtmlTag::constant("kbd"); + pub const label: HtmlTag = HtmlTag::constant("label"); + pub const legend: HtmlTag = HtmlTag::constant("legend"); + pub const li: HtmlTag = HtmlTag::constant("li"); + pub const link: HtmlTag = HtmlTag::constant("link"); + pub const main: HtmlTag = HtmlTag::constant("main"); + pub const map: HtmlTag = HtmlTag::constant("map"); + pub const mark: HtmlTag = HtmlTag::constant("mark"); + pub const menu: HtmlTag = HtmlTag::constant("menu"); + pub const meta: HtmlTag = HtmlTag::constant("meta"); + pub const meter: HtmlTag = HtmlTag::constant("meter"); + pub const nav: HtmlTag = HtmlTag::constant("nav"); + pub const noscript: HtmlTag = HtmlTag::constant("noscript"); + pub const object: HtmlTag = HtmlTag::constant("object"); + pub const ol: HtmlTag = HtmlTag::constant("ol"); + pub const optgroup: HtmlTag = HtmlTag::constant("optgroup"); + pub const option: HtmlTag = HtmlTag::constant("option"); + pub const output: HtmlTag = HtmlTag::constant("output"); + pub const p: HtmlTag = HtmlTag::constant("p"); + pub const picture: HtmlTag = HtmlTag::constant("picture"); + pub const pre: HtmlTag = HtmlTag::constant("pre"); + pub const progress: HtmlTag = HtmlTag::constant("progress"); + pub const q: HtmlTag = HtmlTag::constant("q"); + pub const rp: HtmlTag = HtmlTag::constant("rp"); + pub const rt: HtmlTag = HtmlTag::constant("rt"); + pub const ruby: HtmlTag = HtmlTag::constant("ruby"); + pub const s: HtmlTag = HtmlTag::constant("s"); + pub const samp: HtmlTag = HtmlTag::constant("samp"); + pub const script: HtmlTag = HtmlTag::constant("script"); + pub const search: HtmlTag = HtmlTag::constant("search"); + pub const section: HtmlTag = HtmlTag::constant("section"); + pub const select: HtmlTag = HtmlTag::constant("select"); + pub const slot: HtmlTag = HtmlTag::constant("slot"); + pub const small: HtmlTag = HtmlTag::constant("small"); + pub const source: HtmlTag = HtmlTag::constant("source"); + pub const span: HtmlTag = HtmlTag::constant("span"); + pub const strong: HtmlTag = HtmlTag::constant("strong"); + pub const style: HtmlTag = HtmlTag::constant("style"); + pub const sub: HtmlTag = HtmlTag::constant("sub"); + pub const summary: HtmlTag = HtmlTag::constant("summary"); + pub const sup: HtmlTag = HtmlTag::constant("sup"); + pub const table: HtmlTag = HtmlTag::constant("table"); + pub const tbody: HtmlTag = HtmlTag::constant("tbody"); + pub const td: HtmlTag = HtmlTag::constant("td"); + pub const template: HtmlTag = HtmlTag::constant("template"); + pub const textarea: HtmlTag = HtmlTag::constant("textarea"); + pub const tfoot: HtmlTag = HtmlTag::constant("tfoot"); + pub const th: HtmlTag = HtmlTag::constant("th"); + pub const thead: HtmlTag = HtmlTag::constant("thead"); + pub const time: HtmlTag = HtmlTag::constant("time"); + pub const title: HtmlTag = HtmlTag::constant("title"); + pub const tr: HtmlTag = HtmlTag::constant("tr"); + pub const track: HtmlTag = HtmlTag::constant("track"); + pub const u: HtmlTag = HtmlTag::constant("u"); + pub const ul: HtmlTag = HtmlTag::constant("ul"); + pub const var: HtmlTag = HtmlTag::constant("var"); + pub const video: HtmlTag = HtmlTag::constant("video"); + pub const wbr: HtmlTag = HtmlTag::constant("wbr"); + + /// Whether this is a void tag whose associated element may not have /// children. pub fn is_void(tag: HtmlTag) -> bool { matches!( @@ -490,7 +479,6 @@ pub mod tag { | self::input | self::link | self::meta - | self::param | self::source | self::track | self::wbr @@ -629,36 +617,196 @@ pub mod tag { } } -/// Predefined constants for HTML attributes. -/// -/// Note: These are very incomplete. #[allow(non_upper_case_globals)] +#[rustfmt::skip] pub mod attr { - use super::HtmlAttr; - - macro_rules! attrs { - ($($attr:ident)*) => { - $(#[allow(non_upper_case_globals)] - pub const $attr: HtmlAttr = HtmlAttr::constant( - stringify!($attr) - );)* - } - } - - attrs! { - charset - cite - colspan - content - href - name - reversed - role - rowspan - start - style - value - } - + use crate::html::HtmlAttr; + pub const abbr: HtmlAttr = HtmlAttr::constant("abbr"); + pub const accept: HtmlAttr = HtmlAttr::constant("accept"); + pub const accept_charset: HtmlAttr = HtmlAttr::constant("accept-charset"); + pub const accesskey: HtmlAttr = HtmlAttr::constant("accesskey"); + pub const action: HtmlAttr = HtmlAttr::constant("action"); + pub const allow: HtmlAttr = HtmlAttr::constant("allow"); + pub const allowfullscreen: HtmlAttr = HtmlAttr::constant("allowfullscreen"); + pub const alpha: HtmlAttr = HtmlAttr::constant("alpha"); + pub const alt: HtmlAttr = HtmlAttr::constant("alt"); + pub const aria_activedescendant: HtmlAttr = HtmlAttr::constant("aria-activedescendant"); + pub const aria_atomic: HtmlAttr = HtmlAttr::constant("aria-atomic"); + pub const aria_autocomplete: HtmlAttr = HtmlAttr::constant("aria-autocomplete"); + pub const aria_busy: HtmlAttr = HtmlAttr::constant("aria-busy"); + pub const aria_checked: HtmlAttr = HtmlAttr::constant("aria-checked"); + pub const aria_colcount: HtmlAttr = HtmlAttr::constant("aria-colcount"); + pub const aria_colindex: HtmlAttr = HtmlAttr::constant("aria-colindex"); + pub const aria_colspan: HtmlAttr = HtmlAttr::constant("aria-colspan"); + pub const aria_controls: HtmlAttr = HtmlAttr::constant("aria-controls"); + pub const aria_current: HtmlAttr = HtmlAttr::constant("aria-current"); + pub const aria_describedby: HtmlAttr = HtmlAttr::constant("aria-describedby"); + pub const aria_details: HtmlAttr = HtmlAttr::constant("aria-details"); + pub const aria_disabled: HtmlAttr = HtmlAttr::constant("aria-disabled"); + pub const aria_errormessage: HtmlAttr = HtmlAttr::constant("aria-errormessage"); + pub const aria_expanded: HtmlAttr = HtmlAttr::constant("aria-expanded"); + pub const aria_flowto: HtmlAttr = HtmlAttr::constant("aria-flowto"); + pub const aria_haspopup: HtmlAttr = HtmlAttr::constant("aria-haspopup"); + pub const aria_hidden: HtmlAttr = HtmlAttr::constant("aria-hidden"); + pub const aria_invalid: HtmlAttr = HtmlAttr::constant("aria-invalid"); + pub const aria_keyshortcuts: HtmlAttr = HtmlAttr::constant("aria-keyshortcuts"); + pub const aria_label: HtmlAttr = HtmlAttr::constant("aria-label"); + pub const aria_labelledby: HtmlAttr = HtmlAttr::constant("aria-labelledby"); pub const aria_level: HtmlAttr = HtmlAttr::constant("aria-level"); + pub const aria_live: HtmlAttr = HtmlAttr::constant("aria-live"); + pub const aria_modal: HtmlAttr = HtmlAttr::constant("aria-modal"); + pub const aria_multiline: HtmlAttr = HtmlAttr::constant("aria-multiline"); + pub const aria_multiselectable: HtmlAttr = HtmlAttr::constant("aria-multiselectable"); + pub const aria_orientation: HtmlAttr = HtmlAttr::constant("aria-orientation"); + pub const aria_owns: HtmlAttr = HtmlAttr::constant("aria-owns"); + pub const aria_placeholder: HtmlAttr = HtmlAttr::constant("aria-placeholder"); + pub const aria_posinset: HtmlAttr = HtmlAttr::constant("aria-posinset"); + pub const aria_pressed: HtmlAttr = HtmlAttr::constant("aria-pressed"); + pub const aria_readonly: HtmlAttr = HtmlAttr::constant("aria-readonly"); + pub const aria_relevant: HtmlAttr = HtmlAttr::constant("aria-relevant"); + pub const aria_required: HtmlAttr = HtmlAttr::constant("aria-required"); + pub const aria_roledescription: HtmlAttr = HtmlAttr::constant("aria-roledescription"); + pub const aria_rowcount: HtmlAttr = HtmlAttr::constant("aria-rowcount"); + pub const aria_rowindex: HtmlAttr = HtmlAttr::constant("aria-rowindex"); + pub const aria_rowspan: HtmlAttr = HtmlAttr::constant("aria-rowspan"); + pub const aria_selected: HtmlAttr = HtmlAttr::constant("aria-selected"); + pub const aria_setsize: HtmlAttr = HtmlAttr::constant("aria-setsize"); + pub const aria_sort: HtmlAttr = HtmlAttr::constant("aria-sort"); + pub const aria_valuemax: HtmlAttr = HtmlAttr::constant("aria-valuemax"); + pub const aria_valuemin: HtmlAttr = HtmlAttr::constant("aria-valuemin"); + pub const aria_valuenow: HtmlAttr = HtmlAttr::constant("aria-valuenow"); + pub const aria_valuetext: HtmlAttr = HtmlAttr::constant("aria-valuetext"); + pub const r#as: HtmlAttr = HtmlAttr::constant("as"); + pub const r#async: HtmlAttr = HtmlAttr::constant("async"); + pub const autocapitalize: HtmlAttr = HtmlAttr::constant("autocapitalize"); + pub const autocomplete: HtmlAttr = HtmlAttr::constant("autocomplete"); + pub const autocorrect: HtmlAttr = HtmlAttr::constant("autocorrect"); + pub const autofocus: HtmlAttr = HtmlAttr::constant("autofocus"); + pub const autoplay: HtmlAttr = HtmlAttr::constant("autoplay"); + pub const blocking: HtmlAttr = HtmlAttr::constant("blocking"); + pub const charset: HtmlAttr = HtmlAttr::constant("charset"); + pub const checked: HtmlAttr = HtmlAttr::constant("checked"); + pub const cite: HtmlAttr = HtmlAttr::constant("cite"); + pub const class: HtmlAttr = HtmlAttr::constant("class"); + pub const closedby: HtmlAttr = HtmlAttr::constant("closedby"); + pub const color: HtmlAttr = HtmlAttr::constant("color"); + pub const colorspace: HtmlAttr = HtmlAttr::constant("colorspace"); + pub const cols: HtmlAttr = HtmlAttr::constant("cols"); + pub const colspan: HtmlAttr = HtmlAttr::constant("colspan"); + pub const command: HtmlAttr = HtmlAttr::constant("command"); + pub const commandfor: HtmlAttr = HtmlAttr::constant("commandfor"); + pub const content: HtmlAttr = HtmlAttr::constant("content"); + pub const contenteditable: HtmlAttr = HtmlAttr::constant("contenteditable"); + pub const controls: HtmlAttr = HtmlAttr::constant("controls"); + pub const coords: HtmlAttr = HtmlAttr::constant("coords"); + pub const crossorigin: HtmlAttr = HtmlAttr::constant("crossorigin"); + pub const data: HtmlAttr = HtmlAttr::constant("data"); + pub const datetime: HtmlAttr = HtmlAttr::constant("datetime"); + pub const decoding: HtmlAttr = HtmlAttr::constant("decoding"); + pub const default: HtmlAttr = HtmlAttr::constant("default"); + pub const defer: HtmlAttr = HtmlAttr::constant("defer"); + pub const dir: HtmlAttr = HtmlAttr::constant("dir"); + pub const dirname: HtmlAttr = HtmlAttr::constant("dirname"); + pub const disabled: HtmlAttr = HtmlAttr::constant("disabled"); + pub const download: HtmlAttr = HtmlAttr::constant("download"); + pub const draggable: HtmlAttr = HtmlAttr::constant("draggable"); + pub const enctype: HtmlAttr = HtmlAttr::constant("enctype"); + pub const enterkeyhint: HtmlAttr = HtmlAttr::constant("enterkeyhint"); + pub const fetchpriority: HtmlAttr = HtmlAttr::constant("fetchpriority"); + pub const r#for: HtmlAttr = HtmlAttr::constant("for"); + pub const form: HtmlAttr = HtmlAttr::constant("form"); + pub const formaction: HtmlAttr = HtmlAttr::constant("formaction"); + pub const formenctype: HtmlAttr = HtmlAttr::constant("formenctype"); + pub const formmethod: HtmlAttr = HtmlAttr::constant("formmethod"); + pub const formnovalidate: HtmlAttr = HtmlAttr::constant("formnovalidate"); + pub const formtarget: HtmlAttr = HtmlAttr::constant("formtarget"); + pub const headers: HtmlAttr = HtmlAttr::constant("headers"); + pub const height: HtmlAttr = HtmlAttr::constant("height"); + pub const hidden: HtmlAttr = HtmlAttr::constant("hidden"); + pub const high: HtmlAttr = HtmlAttr::constant("high"); + pub const href: HtmlAttr = HtmlAttr::constant("href"); + pub const hreflang: HtmlAttr = HtmlAttr::constant("hreflang"); + pub const http_equiv: HtmlAttr = HtmlAttr::constant("http-equiv"); + pub const id: HtmlAttr = HtmlAttr::constant("id"); + pub const imagesizes: HtmlAttr = HtmlAttr::constant("imagesizes"); + pub const imagesrcset: HtmlAttr = HtmlAttr::constant("imagesrcset"); + pub const inert: HtmlAttr = HtmlAttr::constant("inert"); + pub const inputmode: HtmlAttr = HtmlAttr::constant("inputmode"); + pub const integrity: HtmlAttr = HtmlAttr::constant("integrity"); + pub const is: HtmlAttr = HtmlAttr::constant("is"); + pub const ismap: HtmlAttr = HtmlAttr::constant("ismap"); + pub const itemid: HtmlAttr = HtmlAttr::constant("itemid"); + pub const itemprop: HtmlAttr = HtmlAttr::constant("itemprop"); + pub const itemref: HtmlAttr = HtmlAttr::constant("itemref"); + pub const itemscope: HtmlAttr = HtmlAttr::constant("itemscope"); + pub const itemtype: HtmlAttr = HtmlAttr::constant("itemtype"); + pub const kind: HtmlAttr = HtmlAttr::constant("kind"); + pub const label: HtmlAttr = HtmlAttr::constant("label"); + pub const lang: HtmlAttr = HtmlAttr::constant("lang"); + pub const list: HtmlAttr = HtmlAttr::constant("list"); + pub const loading: HtmlAttr = HtmlAttr::constant("loading"); + pub const r#loop: HtmlAttr = HtmlAttr::constant("loop"); + pub const low: HtmlAttr = HtmlAttr::constant("low"); + pub const max: HtmlAttr = HtmlAttr::constant("max"); + pub const maxlength: HtmlAttr = HtmlAttr::constant("maxlength"); + pub const media: HtmlAttr = HtmlAttr::constant("media"); + pub const method: HtmlAttr = HtmlAttr::constant("method"); + pub const min: HtmlAttr = HtmlAttr::constant("min"); + pub const minlength: HtmlAttr = HtmlAttr::constant("minlength"); + pub const multiple: HtmlAttr = HtmlAttr::constant("multiple"); + pub const muted: HtmlAttr = HtmlAttr::constant("muted"); + pub const name: HtmlAttr = HtmlAttr::constant("name"); + pub const nomodule: HtmlAttr = HtmlAttr::constant("nomodule"); + pub const nonce: HtmlAttr = HtmlAttr::constant("nonce"); + pub const novalidate: HtmlAttr = HtmlAttr::constant("novalidate"); + pub const open: HtmlAttr = HtmlAttr::constant("open"); + pub const optimum: HtmlAttr = HtmlAttr::constant("optimum"); + pub const pattern: HtmlAttr = HtmlAttr::constant("pattern"); + pub const ping: HtmlAttr = HtmlAttr::constant("ping"); + pub const placeholder: HtmlAttr = HtmlAttr::constant("placeholder"); + pub const playsinline: HtmlAttr = HtmlAttr::constant("playsinline"); + pub const popover: HtmlAttr = HtmlAttr::constant("popover"); + pub const popovertarget: HtmlAttr = HtmlAttr::constant("popovertarget"); + pub const popovertargetaction: HtmlAttr = HtmlAttr::constant("popovertargetaction"); + pub const poster: HtmlAttr = HtmlAttr::constant("poster"); + pub const preload: HtmlAttr = HtmlAttr::constant("preload"); + pub const readonly: HtmlAttr = HtmlAttr::constant("readonly"); + pub const referrerpolicy: HtmlAttr = HtmlAttr::constant("referrerpolicy"); + pub const rel: HtmlAttr = HtmlAttr::constant("rel"); + pub const required: HtmlAttr = HtmlAttr::constant("required"); + pub const reversed: HtmlAttr = HtmlAttr::constant("reversed"); + pub const role: HtmlAttr = HtmlAttr::constant("role"); + pub const rows: HtmlAttr = HtmlAttr::constant("rows"); + pub const rowspan: HtmlAttr = HtmlAttr::constant("rowspan"); + pub const sandbox: HtmlAttr = HtmlAttr::constant("sandbox"); + pub const scope: HtmlAttr = HtmlAttr::constant("scope"); + pub const selected: HtmlAttr = HtmlAttr::constant("selected"); + pub const shadowrootclonable: HtmlAttr = HtmlAttr::constant("shadowrootclonable"); + pub const shadowrootcustomelementregistry: HtmlAttr = HtmlAttr::constant("shadowrootcustomelementregistry"); + pub const shadowrootdelegatesfocus: HtmlAttr = HtmlAttr::constant("shadowrootdelegatesfocus"); + pub const shadowrootmode: HtmlAttr = HtmlAttr::constant("shadowrootmode"); + pub const shadowrootserializable: HtmlAttr = HtmlAttr::constant("shadowrootserializable"); + pub const shape: HtmlAttr = HtmlAttr::constant("shape"); + pub const size: HtmlAttr = HtmlAttr::constant("size"); + pub const sizes: HtmlAttr = HtmlAttr::constant("sizes"); + pub const slot: HtmlAttr = HtmlAttr::constant("slot"); + pub const span: HtmlAttr = HtmlAttr::constant("span"); + pub const spellcheck: HtmlAttr = HtmlAttr::constant("spellcheck"); + pub const src: HtmlAttr = HtmlAttr::constant("src"); + pub const srcdoc: HtmlAttr = HtmlAttr::constant("srcdoc"); + pub const srclang: HtmlAttr = HtmlAttr::constant("srclang"); + pub const srcset: HtmlAttr = HtmlAttr::constant("srcset"); + pub const start: HtmlAttr = HtmlAttr::constant("start"); + pub const step: HtmlAttr = HtmlAttr::constant("step"); + pub const style: HtmlAttr = HtmlAttr::constant("style"); + pub const tabindex: HtmlAttr = HtmlAttr::constant("tabindex"); + pub const target: HtmlAttr = HtmlAttr::constant("target"); + pub const title: HtmlAttr = HtmlAttr::constant("title"); + pub const translate: HtmlAttr = HtmlAttr::constant("translate"); + pub const r#type: HtmlAttr = HtmlAttr::constant("type"); + pub const usemap: HtmlAttr = HtmlAttr::constant("usemap"); + pub const value: HtmlAttr = HtmlAttr::constant("value"); + pub const width: HtmlAttr = HtmlAttr::constant("width"); + pub const wrap: HtmlAttr = HtmlAttr::constant("wrap"); + pub const writingsuggestions: HtmlAttr = HtmlAttr::constant("writingsuggestions"); } |
