Skip to content

Commit 452f2e7

Browse files
committed
engine_spx2html: more HTML tag info entry
1 parent cab4878 commit 452f2e7

1 file changed

Lines changed: 155 additions & 142 deletions

File tree

crates/engine_spx2html/src/html.rs

Lines changed: 155 additions & 142 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,13 @@
66
use std::str::FromStr;
77

88
macro_rules! emit_tag_data {
9-
($([$vname:ident $tagname:literal deprecated($deprecated:literal), autoclosed($($acvname:ident),*)],)+) => {
9+
($([
10+
$vname:ident
11+
$tagname:literal
12+
deprecated($deprecated:literal)
13+
empty($empty:literal)
14+
autoclosed($($acvname:ident),*)
15+
],)+) => {
1016
pub enum Tag {
1117
$($vname,)+
1218
Other(String),
@@ -31,6 +37,13 @@ macro_rules! emit_tag_data {
3137
}
3238
}
3339

40+
pub fn is_empty(&self) -> bool {
41+
match self {
42+
$(Tag::$vname => $empty,)+
43+
Tag::Other(_) => false,
44+
}
45+
}
46+
3447
pub fn is_other(&self) -> bool {
3548
matches!(self, Tag::Other(_))
3649
}
@@ -53,98 +66,98 @@ macro_rules! emit_tag_data {
5366
}
5467

5568
emit_tag_data! {
56-
[A "a" deprecated(false), autoclosed()],
57-
[Abbr "abbr" deprecated(false), autoclosed()],
58-
[Acronym "acroynm" deprecated(true), autoclosed()],
59-
[Address "address" deprecated(false), autoclosed()],
60-
[Applet "applet" deprecated(true), autoclosed()],
61-
[Area "area" deprecated(false), autoclosed()],
62-
[Article "article" deprecated(false), autoclosed()],
63-
[Aside "aside" deprecated(false), autoclosed()],
64-
[Audio "audio" deprecated(false), autoclosed()],
65-
[B "b" deprecated(false), autoclosed()],
66-
[Base "base" deprecated(false), autoclosed()],
67-
[Bdi "bdi" deprecated(false), autoclosed()],
68-
[Bdo "bdo" deprecated(false), autoclosed()],
69-
[Bgsound "bgsound" deprecated(true), autoclosed()],
70-
[Big "big" deprecated(true), autoclosed()],
71-
[Blink "blink" deprecated(true), autoclosed()],
72-
[Blockquote "blockquote" deprecated(false), autoclosed()],
73-
[Body "body" deprecated(false), autoclosed()],
74-
[Br "br" deprecated(false), autoclosed()],
75-
[Button "button" deprecated(false), autoclosed()],
76-
[Canvas "canvas" deprecated(false), autoclosed()],
77-
[Caption "caption" deprecated(false), autoclosed()],
78-
[Center "center" deprecated(true), autoclosed()],
79-
[Cite "cite" deprecated(false), autoclosed()],
80-
[Code "code" deprecated(false), autoclosed()],
81-
[Col "col" deprecated(false), autoclosed()],
82-
[Colgroup "colgroup" deprecated(false), autoclosed()],
83-
[Content "content" deprecated(true), autoclosed()],
84-
[Data "data" deprecated(false), autoclosed()],
85-
[Datalist "datalist" deprecated(false), autoclosed()],
86-
[Dd "dd" deprecated(false), autoclosed()],
87-
[Del "del" deprecated(false), autoclosed()],
88-
[Details "details" deprecated(false), autoclosed()],
89-
[Dfn "dfn" deprecated(false), autoclosed()],
90-
[Dialog "dialog" deprecated(false), autoclosed()],
91-
[Dir "dir" deprecated(true), autoclosed()],
92-
[Div "div" deprecated(false), autoclosed()],
93-
[Dl "dl" deprecated(false), autoclosed()],
94-
[Dt "dt" deprecated(false), autoclosed()],
95-
[Em "em" deprecated(false), autoclosed()],
96-
[Embed "embed" deprecated(false), autoclosed()],
97-
[Fieldset "fieldset" deprecated(false), autoclosed()],
98-
[Figcaption "figcaption" deprecated(false), autoclosed()],
99-
[Figure "figure" deprecated(false), autoclosed()],
100-
[Font "font" deprecated(true), autoclosed()],
101-
[Footer "footer" deprecated(false), autoclosed()],
102-
[Form "form" deprecated(false), autoclosed()],
103-
[Frame "frame" deprecated(true), autoclosed()],
104-
[Frameset "frameset" deprecated(true), autoclosed()],
105-
[H1 "h1" deprecated(false), autoclosed()],
106-
[H2 "h2" deprecated(false), autoclosed()],
107-
[H3 "h3" deprecated(false), autoclosed()],
108-
[H4 "h4" deprecated(false), autoclosed()],
109-
[H5 "h5" deprecated(false), autoclosed()],
110-
[H6 "h6" deprecated(false), autoclosed()],
111-
[Head "head" deprecated(false), autoclosed()],
112-
[Header "header" deprecated(false), autoclosed()],
113-
[Hgroup "hgroup" deprecated(true), autoclosed()],
114-
[Hr "hr" deprecated(false), autoclosed()],
115-
[Html "html" deprecated(false), autoclosed()],
116-
[I "i" deprecated(false), autoclosed()],
117-
[Iframe "iframe" deprecated(false), autoclosed()],
118-
[Image "image" deprecated(true), autoclosed()],
119-
[Img "img" deprecated(false), autoclosed()],
120-
[Input "input" deprecated(false), autoclosed()],
121-
[Ins "ins" deprecated(false), autoclosed()],
122-
[Kbd "kbd" deprecated(false), autoclosed()],
123-
[Keygen "keygen" deprecated(true), autoclosed()],
124-
[Label "label" deprecated(false), autoclosed()],
125-
[Legend "legend" deprecated(false), autoclosed()],
126-
[Li "li" deprecated(false), autoclosed()],
127-
[Link "link" deprecated(false), autoclosed()],
128-
[Main "main" deprecated(false), autoclosed()],
129-
[Map "map" deprecated(false), autoclosed()],
130-
[Mark "mark" deprecated(false), autoclosed()],
131-
[Marquee "marquee" deprecated(true), autoclosed()],
132-
[Math "math" deprecated(false), autoclosed()],
133-
[Menu "menu" deprecated(false), autoclosed()],
134-
[Menuitem "menuitem" deprecated(true), autoclosed()],
135-
[Meta "meta" deprecated(false), autoclosed()],
136-
[Meter "meter" deprecated(false), autoclosed()],
137-
[Nav "nav" deprecated(false), autoclosed()],
138-
[Nobr "nobr" deprecated(true), autoclosed()],
139-
[Noembed "noembed" deprecated(true), autoclosed()],
140-
[Noframes "noframes" deprecated(true), autoclosed()],
141-
[Noscript "noscript" deprecated(false), autoclosed()],
142-
[Object "object" deprecated(false), autoclosed()],
143-
[Ol "ol" deprecated(false), autoclosed()],
144-
[Optgroup "optgroup" deprecated(false), autoclosed()],
145-
[Option "option" deprecated(false), autoclosed()],
146-
[Output "output" deprecated(false), autoclosed()],
147-
[P "p" deprecated(false), autoclosed(
69+
[A "a" deprecated(false) empty(false) autoclosed()],
70+
[Abbr "abbr" deprecated(false) empty(false) autoclosed()],
71+
[Acronym "acroynm" deprecated(true) empty(false) autoclosed()],
72+
[Address "address" deprecated(false) empty(false) autoclosed()],
73+
[Applet "applet" deprecated(true) empty(false) autoclosed()],
74+
[Area "area" deprecated(false) empty(true) autoclosed()],
75+
[Article "article" deprecated(false) empty(false) autoclosed()],
76+
[Aside "aside" deprecated(false) empty(false) autoclosed()],
77+
[Audio "audio" deprecated(false) empty(false) autoclosed()],
78+
[B "b" deprecated(false) empty(false) autoclosed()],
79+
[Base "base" deprecated(false) empty(true) autoclosed()],
80+
[Bdi "bdi" deprecated(false) empty(false) autoclosed()],
81+
[Bdo "bdo" deprecated(false) empty(false) autoclosed()],
82+
[Bgsound "bgsound" deprecated(true) empty(false) autoclosed()],
83+
[Big "big" deprecated(true) empty(false) autoclosed()],
84+
[Blink "blink" deprecated(true) empty(false) autoclosed()],
85+
[Blockquote "blockquote" deprecated(false) empty(false) autoclosed()],
86+
[Body "body" deprecated(false) empty(false) autoclosed()],
87+
[Br "br" deprecated(false) empty(true) autoclosed()],
88+
[Button "button" deprecated(false) empty(false) autoclosed()],
89+
[Canvas "canvas" deprecated(false) empty(false) autoclosed()],
90+
[Caption "caption" deprecated(false) empty(false) autoclosed()],
91+
[Center "center" deprecated(true) empty(false) autoclosed()],
92+
[Cite "cite" deprecated(false) empty(false) autoclosed()],
93+
[Code "code" deprecated(false) empty(false) autoclosed()],
94+
[Col "col" deprecated(false) empty(true) autoclosed()],
95+
[Colgroup "colgroup" deprecated(false) empty(false) autoclosed()],
96+
[Content "content" deprecated(true) empty(false) autoclosed()],
97+
[Data "data" deprecated(false) empty(false) autoclosed()],
98+
[Datalist "datalist" deprecated(false) empty(false) autoclosed()],
99+
[Dd "dd" deprecated(false) empty(false) autoclosed(Dd, Dt)],
100+
[Del "del" deprecated(false) empty(false) autoclosed()],
101+
[Details "details" deprecated(false) empty(false) autoclosed()],
102+
[Dfn "dfn" deprecated(false) empty(false) autoclosed()],
103+
[Dialog "dialog" deprecated(false) empty(false) autoclosed()],
104+
[Dir "dir" deprecated(true) empty(false) autoclosed()],
105+
[Div "div" deprecated(false) empty(false) autoclosed()],
106+
[Dl "dl" deprecated(false) empty(false) autoclosed()],
107+
[Dt "dt" deprecated(false) empty(false) autoclosed(Dd, Dt)],
108+
[Em "em" deprecated(false) empty(false) autoclosed()],
109+
[Embed "embed" deprecated(false) empty(true) autoclosed()],
110+
[Fieldset "fieldset" deprecated(false) empty(false) autoclosed()],
111+
[Figcaption "figcaption" deprecated(false) empty(false) autoclosed()],
112+
[Figure "figure" deprecated(false) empty(false) autoclosed()],
113+
[Font "font" deprecated(true) empty(false) autoclosed()],
114+
[Footer "footer" deprecated(false) empty(false) autoclosed()],
115+
[Form "form" deprecated(false) empty(false) autoclosed()],
116+
[Frame "frame" deprecated(true) empty(false) autoclosed()],
117+
[Frameset "frameset" deprecated(true) empty(false) autoclosed()],
118+
[H1 "h1" deprecated(false) empty(false) autoclosed()],
119+
[H2 "h2" deprecated(false) empty(false) autoclosed()],
120+
[H3 "h3" deprecated(false) empty(false) autoclosed()],
121+
[H4 "h4" deprecated(false) empty(false) autoclosed()],
122+
[H5 "h5" deprecated(false) empty(false) autoclosed()],
123+
[H6 "h6" deprecated(false) empty(false) autoclosed()],
124+
[Head "head" deprecated(false) empty(false) autoclosed()],
125+
[Header "header" deprecated(false) empty(false) autoclosed()],
126+
[Hgroup "hgroup" deprecated(true) empty(false) autoclosed()],
127+
[Hr "hr" deprecated(false) empty(true) autoclosed()],
128+
[Html "html" deprecated(false) empty(false) autoclosed()],
129+
[I "i" deprecated(false) empty(false) autoclosed()],
130+
[Iframe "iframe" deprecated(false) empty(false) autoclosed()],
131+
[Image "image" deprecated(true) empty(false) autoclosed()],
132+
[Img "img" deprecated(false) empty(true) autoclosed()],
133+
[Input "input" deprecated(false) empty(true) autoclosed()],
134+
[Ins "ins" deprecated(false) empty(false) autoclosed()],
135+
[Kbd "kbd" deprecated(false) empty(false) autoclosed()],
136+
[Keygen "keygen" deprecated(true) empty(true) autoclosed()],
137+
[Label "label" deprecated(false) empty(false) autoclosed()],
138+
[Legend "legend" deprecated(false) empty(false) autoclosed()],
139+
[Li "li" deprecated(false) empty(false) autoclosed(Li)],
140+
[Link "link" deprecated(false) empty(true) autoclosed()],
141+
[Main "main" deprecated(false) empty(false) autoclosed()],
142+
[Map "map" deprecated(false) empty(false) autoclosed()],
143+
[Mark "mark" deprecated(false) empty(false) autoclosed()],
144+
[Marquee "marquee" deprecated(true) empty(false) autoclosed()],
145+
[Math "math" deprecated(false) empty(false) autoclosed()],
146+
[Menu "menu" deprecated(false) empty(false) autoclosed()],
147+
[Menuitem "menuitem" deprecated(true) empty(false) autoclosed()],
148+
[Meta "meta" deprecated(false) empty(true) autoclosed()],
149+
[Meter "meter" deprecated(false) empty(false) autoclosed()],
150+
[Nav "nav" deprecated(false) empty(false) autoclosed()],
151+
[Nobr "nobr" deprecated(true) empty(false) autoclosed()],
152+
[Noembed "noembed" deprecated(true) empty(false) autoclosed()],
153+
[Noframes "noframes" deprecated(true) empty(false) autoclosed()],
154+
[Noscript "noscript" deprecated(false) empty(false) autoclosed()],
155+
[Object "object" deprecated(false) empty(false) autoclosed()],
156+
[Ol "ol" deprecated(false) empty(false) autoclosed()],
157+
[Optgroup "optgroup" deprecated(false) empty(false) autoclosed(Optgroup)],
158+
[Option "option" deprecated(false) empty(false) autoclosed()],
159+
[Output "output" deprecated(false) empty(false) autoclosed()],
160+
[P "p" deprecated(false) empty(false) autoclosed(
148161
Address,
149162
Article,
150163
Aside,
@@ -171,53 +184,53 @@ emit_tag_data! {
171184
Ul,
172185
P
173186
)],
174-
[Param "param" deprecated(true), autoclosed()],
175-
[Picture "picture" deprecated(false), autoclosed()],
176-
[Plaintext "plaintext" deprecated(true), autoclosed()],
177-
[Portal "portal" deprecated(false), autoclosed()],
178-
[Pre "pre" deprecated(false), autoclosed()],
179-
[Progress "progress" deprecated(false), autoclosed()],
180-
[Q "q" deprecated(false), autoclosed()],
181-
[Rb "rb" deprecated(true), autoclosed()],
182-
[Rp "rp" deprecated(false), autoclosed()],
183-
[Rt "rt" deprecated(false), autoclosed()],
184-
[Rtc "rtc" deprecated(true), autoclosed()],
185-
[Ruby "ruby" deprecated(false), autoclosed()],
186-
[S "s" deprecated(false), autoclosed()],
187-
[Samp "samp" deprecated(false), autoclosed()],
188-
[Script "script" deprecated(false), autoclosed()],
189-
[Section "section" deprecated(false), autoclosed()],
190-
[Select "select" deprecated(false), autoclosed()],
191-
[Shadow "shadow" deprecated(true), autoclosed()],
192-
[Slot "slot" deprecated(false), autoclosed()],
193-
[Small "small" deprecated(false), autoclosed()],
194-
[Spacer "spacer" deprecated(true), autoclosed()],
195-
[Source "source" deprecated(false), autoclosed()],
196-
[Span "span" deprecated(false), autoclosed()],
197-
[Strike "strike" deprecated(true), autoclosed()],
198-
[Strong "strong" deprecated(false), autoclosed()],
199-
[Style "style" deprecated(false), autoclosed()],
200-
[Sub "sub" deprecated(false), autoclosed()],
201-
[Summary "summary" deprecated(false), autoclosed()],
202-
[Sup "sup" deprecated(false), autoclosed()],
203-
[Svg "svg" deprecated(false), autoclosed()],
204-
[Table "table" deprecated(false), autoclosed()],
205-
[Tbody "tbody" deprecated(false), autoclosed()],
206-
[Td "td" deprecated(false), autoclosed()],
207-
[Template "template" deprecated(false), autoclosed()],
208-
[Textarea "textarea" deprecated(false), autoclosed()],
209-
[Tfoot "tfoot" deprecated(false), autoclosed()],
210-
[Th "th" deprecated(false), autoclosed()],
211-
[Thead "thead" deprecated(false), autoclosed()],
212-
[Time "time" deprecated(false), autoclosed()],
213-
[Title "title" deprecated(false), autoclosed()],
214-
[Tr "tr" deprecated(false), autoclosed()],
215-
[Track "track" deprecated(false), autoclosed()],
216-
[Tt "tt" deprecated(true), autoclosed()],
217-
[U "u" deprecated(false), autoclosed()],
218-
[Ul "ul" deprecated(false), autoclosed()],
219-
[Var "var" deprecated(false), autoclosed()],
220-
[Video "video" deprecated(false), autoclosed()],
221-
[Wbr "wbr" deprecated(false), autoclosed()],
222-
[Xmp "xmp" deprecated(true), autoclosed()],
187+
[Param "param" deprecated(true) empty(true) autoclosed()],
188+
[Picture "picture" deprecated(false) empty(false) autoclosed()],
189+
[Plaintext "plaintext" deprecated(true) empty(false) autoclosed()],
190+
[Portal "portal" deprecated(false) empty(false) autoclosed()],
191+
[Pre "pre" deprecated(false) empty(false) autoclosed()],
192+
[Progress "progress" deprecated(false) empty(false) autoclosed()],
193+
[Q "q" deprecated(false) empty(false) autoclosed()],
194+
[Rb "rb" deprecated(true) empty(false) autoclosed()],
195+
[Rp "rp" deprecated(false) empty(false) autoclosed()],
196+
[Rt "rt" deprecated(false) empty(false) autoclosed()],
197+
[Rtc "rtc" deprecated(true) empty(false) autoclosed()],
198+
[Ruby "ruby" deprecated(false) empty(false) autoclosed()],
199+
[S "s" deprecated(false) empty(false) autoclosed()],
200+
[Samp "samp" deprecated(false) empty(false) autoclosed()],
201+
[Script "script" deprecated(false) empty(false) autoclosed()],
202+
[Section "section" deprecated(false) empty(false) autoclosed()],
203+
[Select "select" deprecated(false) empty(false) autoclosed()],
204+
[Shadow "shadow" deprecated(true) empty(false) autoclosed()],
205+
[Slot "slot" deprecated(false) empty(false) autoclosed()],
206+
[Small "small" deprecated(false) empty(false) autoclosed()],
207+
[Spacer "spacer" deprecated(true) empty(false) autoclosed()],
208+
[Source "source" deprecated(false) empty(true) autoclosed()],
209+
[Span "span" deprecated(false) empty(false) autoclosed()],
210+
[Strike "strike" deprecated(true) empty(false) autoclosed()],
211+
[Strong "strong" deprecated(false) empty(false) autoclosed()],
212+
[Style "style" deprecated(false) empty(false) autoclosed()],
213+
[Sub "sub" deprecated(false) empty(false) autoclosed()],
214+
[Summary "summary" deprecated(false) empty(false) autoclosed()],
215+
[Sup "sup" deprecated(false) empty(false) autoclosed()],
216+
[Svg "svg" deprecated(false) empty(false) autoclosed()],
217+
[Table "table" deprecated(false) empty(false) autoclosed()],
218+
[Tbody "tbody" deprecated(false) empty(false) autoclosed()],
219+
[Td "td" deprecated(false) empty(false) autoclosed(Td, Th)],
220+
[Template "template" deprecated(false) empty(false) autoclosed()],
221+
[Textarea "textarea" deprecated(false) empty(false) autoclosed()],
222+
[Tfoot "tfoot" deprecated(false) empty(false) autoclosed()],
223+
[Th "th" deprecated(false) empty(false) autoclosed(Td, Th)],
224+
[Thead "thead" deprecated(false) empty(false) autoclosed(Tbody, Tfoot)],
225+
[Time "time" deprecated(false) empty(false) autoclosed()],
226+
[Title "title" deprecated(false) empty(false) autoclosed()],
227+
[Tr "tr" deprecated(false) empty(false) autoclosed(Tr)],
228+
[Track "track" deprecated(false) empty(true) autoclosed()],
229+
[Tt "tt" deprecated(true) empty(false) autoclosed()],
230+
[U "u" deprecated(false) empty(false) autoclosed()],
231+
[Ul "ul" deprecated(false) empty(false) autoclosed()],
232+
[Var "var" deprecated(false) empty(false) autoclosed()],
233+
[Video "video" deprecated(false) empty(false) autoclosed()],
234+
[Wbr "wbr" deprecated(false) empty(true) autoclosed()],
235+
[Xmp "xmp" deprecated(true) empty(false) autoclosed()],
223236
}

0 commit comments

Comments
 (0)