html_builder/
html.rs

1use crate::{Node, Void};
2use std::borrow::Cow;
3
4/// Helper methods for generating HTML5 documents.
5pub trait Html5 {
6    /// Defines the document type
7    fn doctype(&mut self);
8
9    /// Defines a hyperlink
10    fn a(&mut self) -> Node;
11
12    /// Defines an abbreviation or an acronym
13    fn abbr(&mut self) -> Node;
14
15    /// Defines contact information for the author/owner of a document
16    fn address(&mut self) -> Node;
17
18    /// Defines an area inside an image map
19    fn area(&mut self) -> Void;
20
21    /// Defines an article
22    fn article(&mut self) -> Node;
23
24    /// Defines content aside from the page content
25    fn aside(&mut self) -> Node;
26
27    /// Defines embedded sound content
28    fn audio(&mut self) -> Node;
29
30    /// Defines bold text
31    fn b(&mut self) -> Node;
32
33    /// Specifies the base URL/target for all relative URLs in a document
34    fn base(&mut self) -> Void;
35
36    /// Isolates a part of text that might be formatted in a different direction from other text outside it
37    fn bdi(&mut self) -> Node;
38
39    /// Overrides the current text direction
40    fn bdo(&mut self) -> Node;
41
42    /// Defines a section that is quoted from another source
43    fn blockquote(&mut self) -> Node;
44
45    /// Defines the document's body
46    fn body(&mut self) -> Node;
47
48    /// Defines a single line break
49    fn br(&mut self) -> Void;
50
51    /// Defines a clickable button
52    fn button(&mut self) -> Node;
53
54    /// Used to draw graphics, on the fly, via scripting (usually JavaScript)
55    fn canvas(&mut self) -> Node;
56
57    /// Defines a table caption
58    fn caption(&mut self) -> Node;
59
60    /// Defines the title of a work
61    fn cite(&mut self) -> Node;
62
63    /// Defines a piece of computer code
64    fn code(&mut self) -> Node;
65
66    /// Specifies column properties for each column within a `<colgroup>` element
67    fn col(&mut self) -> Void;
68
69    /// Specifies a group of one or more columns in a table for formatting
70    fn colgroup(&mut self) -> Node;
71
72    /// Adds a machine-readable translation of a given content
73    fn data(&mut self) -> Node;
74
75    /// Specifies a list of pre-defined options for input controls
76    fn datalist(&mut self) -> Node;
77
78    /// Defines a description/value of a term in a description list
79    fn dd(&mut self) -> Node;
80
81    /// Defines text that has been deleted from a document
82    fn del(&mut self) -> Node;
83
84    /// Defines additional details that the user can view or hide
85    fn details(&mut self) -> Node;
86
87    /// Specifies a term that is going to be defined within the content
88    fn dfn(&mut self) -> Node;
89
90    /// Defines a dialog box or window
91    fn dialog(&mut self) -> Node;
92
93    /// Defines a section in a document
94    fn div(&mut self) -> Node;
95
96    /// Defines a description list
97    fn dl(&mut self) -> Node;
98
99    /// Defines a term/name in a description list
100    fn dt(&mut self) -> Node;
101
102    /// Defines emphasized text
103    fn em(&mut self) -> Node;
104
105    /// Defines a container for an external application
106    fn embed(&mut self) -> Void;
107
108    /// Groups related elements in a form
109    fn fieldset(&mut self) -> Node;
110
111    /// Defines a caption for a `<figure>` element
112    fn figcaption(&mut self) -> Node;
113
114    /// Specifies self-contained content
115    fn figure(&mut self) -> Node;
116
117    /// Defines a footer for a document or section
118    fn footer(&mut self) -> Node;
119
120    /// Defines an HTML form for user input
121    fn form(&mut self) -> Node;
122
123    /// Defines HTML headings
124    fn h1(&mut self) -> Node;
125
126    /// Defines HTML headings
127    fn h2(&mut self) -> Node;
128
129    /// Defines HTML headings
130    fn h3(&mut self) -> Node;
131
132    /// Defines HTML headings
133    fn h4(&mut self) -> Node;
134
135    /// Defines HTML headings
136    fn h5(&mut self) -> Node;
137
138    /// Defines HTML headings
139    fn h6(&mut self) -> Node;
140
141    /// Contains metadata/information for the document
142    fn head(&mut self) -> Node;
143
144    /// Defines a header for a document or section
145    fn header(&mut self) -> Node;
146
147    /// Defines a thematic change in the content
148    fn hr(&mut self) -> Void;
149
150    /// Defines the root of an HTML document
151    fn html(&mut self) -> Node;
152
153    /// Defines a part of text in an alternate voice or mood
154    fn i(&mut self) -> Node;
155
156    /// Defines an inline frame
157    fn iframe(&mut self) -> Node;
158
159    /// Defines an image
160    fn img(&mut self) -> Void;
161
162    /// Defines an input control
163    fn input(&mut self) -> Void;
164
165    /// Defines a text that has been inserted into a document
166    fn ins(&mut self) -> Node;
167
168    /// Defines keyboard input
169    fn kbd(&mut self) -> Node;
170
171    /// Defines a label for an `<input>` element
172    fn label(&mut self) -> Node;
173
174    /// Defines a caption for a `<fieldset>` element
175    fn legend(&mut self) -> Node;
176
177    /// Defines a list item
178    fn li(&mut self) -> Node;
179
180    /// Defines the relationship between a document and an external resource (most used to link to style sheets)
181    fn link(&mut self) -> Void;
182
183    /// Specifies the main content of a document
184    fn main(&mut self) -> Node;
185
186    /// Defines an image map
187    fn map(&mut self) -> Node;
188
189    /// Defines marked/highlighted text
190    fn mark(&mut self) -> Node;
191
192    /// Defines metadata about an HTML document
193    fn meta(&mut self) -> Void;
194
195    /// Defines a scalar measurement within a known range (a gauge)
196    fn meter(&mut self) -> Node;
197
198    /// Defines navigation links
199    fn nav(&mut self) -> Node;
200
201    /// Defines an alternate content for users that do not support client-side scripts
202    fn noscript(&mut self) -> Node;
203
204    /// Defines a container for an external application
205    fn object(&mut self) -> Node;
206
207    /// Defines an ordered list
208    fn ol(&mut self) -> Node;
209
210    /// Defines a group of related options in a drop-down list
211    fn optgroup(&mut self) -> Node;
212
213    /// Defines an option in a drop-down list
214    fn option(&mut self) -> Node;
215
216    /// Defines the result of a calculation
217    fn output(&mut self) -> Node;
218
219    /// Defines a paragraph
220    fn p(&mut self) -> Node;
221
222    /// Defines a parameter for an object
223    fn param(&mut self) -> Void;
224
225    /// Defines a container for multiple image resources
226    fn picture(&mut self) -> Node;
227
228    /// Defines preformatted text
229    fn pre(&mut self) -> Node;
230
231    /// Represents the progress of a task
232    fn progress(&mut self) -> Node;
233
234    /// Defines a short quotation
235    fn q(&mut self) -> Node;
236
237    /// Defines what to show in browsers that do not support ruby annotations
238    fn rp(&mut self) -> Node;
239
240    /// Defines an explanation/pronunciation of characters (for East Asian typography)
241    fn rt(&mut self) -> Node;
242
243    /// Defines a ruby annotation (for East Asian typography)
244    fn ruby(&mut self) -> Node;
245
246    /// Defines text that is no longer correct
247    fn s(&mut self) -> Node;
248
249    /// Defines sample output from a computer program
250    fn samp(&mut self) -> Node;
251
252    /// Defines a client-side script
253    fn script(&mut self) -> Node;
254
255    /// Defines a section in a document
256    fn section(&mut self) -> Node;
257
258    /// Defines a drop-down list
259    fn select(&mut self) -> Node;
260
261    /// Defines smaller text
262    fn small(&mut self) -> Node;
263
264    /// Defines multiple media resources for media elements (`<video>` and `<audio>`)
265    fn source(&mut self) -> Void;
266
267    /// Defines a section in a document
268    fn span(&mut self) -> Node;
269
270    /// Defines important text
271    fn strong(&mut self) -> Node;
272
273    /// Defines style information for a document
274    fn style(&mut self) -> Node;
275
276    /// Defines subscripted text
277    fn sub(&mut self) -> Node;
278
279    /// Defines a visible heading for a `<details>` element
280    fn summary(&mut self) -> Node;
281
282    /// Defines superscripted text
283    fn sup(&mut self) -> Node;
284
285    /// Defines a container for SVG graphics
286    fn svg(&mut self) -> Node;
287
288    /// Defines a table
289    fn table(&mut self) -> Node;
290
291    /// Groups the body content in a table
292    fn tbody(&mut self) -> Node;
293
294    /// Defines a cell in a table
295    fn td(&mut self) -> Node;
296
297    /// Defines a container for content that should be hidden when the page loads
298    fn template(&mut self) -> Node;
299
300    /// Defines a multiline input control (text area)
301    fn textarea(&mut self) -> Node;
302
303    /// Groups the footer content in a table
304    fn tfoot(&mut self) -> Node;
305
306    /// Defines a header cell in a table
307    fn th(&mut self) -> Node;
308
309    /// Groups the header content in a table
310    fn thead(&mut self) -> Node;
311
312    /// Defines a specific time (or datetime)
313    fn time(&mut self) -> Node;
314
315    /// Defines a title for the document
316    fn title(&mut self) -> Node;
317
318    /// Defines a row in a table
319    fn tr(&mut self) -> Node;
320
321    /// Defines text tracks for media elements (`<video>` and `<audio>`)
322    fn track(&mut self) -> Void;
323
324    /// Defines some text that is unarticulated and styled differently from normal text
325    fn u(&mut self) -> Node;
326
327    /// Defines an unordered list
328    fn ul(&mut self) -> Node;
329
330    /// Defines a variable
331    fn var(&mut self) -> Node;
332
333    /// Defines embedded video content
334    fn video(&mut self) -> Node;
335
336    /// Defines a possible line-break
337    fn wbr(&mut self) -> Void;
338}
339
340impl<'a> Html5 for Node<'a> {
341    /// Defines the document type
342    fn doctype(&mut self) {
343        self.void_child(Cow::Borrowed("!DOCTYPE")).attr("html");
344    }
345
346    /// Defines a hyperlink
347    fn a(&mut self) -> Node {
348        self.child(Cow::Borrowed("a"))
349    }
350
351    /// Defines an abbreviation or an acronym
352    fn abbr(&mut self) -> Node {
353        self.child(Cow::Borrowed("abbr"))
354    }
355
356    /// Defines contact information for the author/owner of a document
357    fn address(&mut self) -> Node {
358        self.child(Cow::Borrowed("address"))
359    }
360
361    /// Defines an area inside an image map
362    fn area(&mut self) -> Void {
363        self.void_child(Cow::Borrowed("area"))
364    }
365
366    /// Defines an article
367    fn article(&mut self) -> Node {
368        self.child(Cow::Borrowed("article"))
369    }
370
371    /// Defines content aside from the page content
372    fn aside(&mut self) -> Node {
373        self.child(Cow::Borrowed("aside"))
374    }
375
376    /// Defines embedded sound content
377    fn audio(&mut self) -> Node {
378        self.child(Cow::Borrowed("audio"))
379    }
380
381    /// Defines bold text
382    fn b(&mut self) -> Node {
383        self.child(Cow::Borrowed("b"))
384    }
385
386    /// Specifies the base URL/target for all relative URLs in a document
387    fn base(&mut self) -> Void {
388        self.void_child(Cow::Borrowed("base"))
389    }
390
391    /// Isolates a part of text that might be formatted in a different direction from other text outside it
392    fn bdi(&mut self) -> Node {
393        self.child(Cow::Borrowed("bdi"))
394    }
395
396    /// Overrides the current text direction
397    fn bdo(&mut self) -> Node {
398        self.child(Cow::Borrowed("bdo"))
399    }
400
401    /// Defines a section that is quoted from another source
402    fn blockquote(&mut self) -> Node {
403        self.child(Cow::Borrowed("blockquote"))
404    }
405
406    /// Defines the document's body
407    fn body(&mut self) -> Node {
408        self.child(Cow::Borrowed("body"))
409    }
410
411    /// Defines a single line break
412    fn br(&mut self) -> Void {
413        self.void_child(Cow::Borrowed("br"))
414    }
415
416    /// Defines a clickable button
417    fn button(&mut self) -> Node {
418        self.child(Cow::Borrowed("button"))
419    }
420
421    /// Used to draw graphics, on the fly, via scripting (usually JavaScript)
422    fn canvas(&mut self) -> Node {
423        self.child(Cow::Borrowed("canvas"))
424    }
425
426    /// Defines a table caption
427    fn caption(&mut self) -> Node {
428        self.child(Cow::Borrowed("caption"))
429    }
430
431    /// Defines the title of a work
432    fn cite(&mut self) -> Node {
433        self.child(Cow::Borrowed("cite"))
434    }
435
436    /// Defines a piece of computer code
437    fn code(&mut self) -> Node {
438        self.child(Cow::Borrowed("code"))
439    }
440
441    /// Specifies column properties for each column within a `<colgroup>` element
442    fn col(&mut self) -> Void {
443        self.void_child(Cow::Borrowed("col"))
444    }
445
446    /// Specifies a group of one or more columns in a table for formatting
447    fn colgroup(&mut self) -> Node {
448        self.child(Cow::Borrowed("colgroup"))
449    }
450
451    /// Adds a machine-readable translation of a given content
452    fn data(&mut self) -> Node {
453        self.child(Cow::Borrowed("data"))
454    }
455
456    /// Specifies a list of pre-defined options for input controls
457    fn datalist(&mut self) -> Node {
458        self.child(Cow::Borrowed("datalist"))
459    }
460
461    /// Defines a description/value of a term in a description list
462    fn dd(&mut self) -> Node {
463        self.child(Cow::Borrowed("dd"))
464    }
465
466    /// Defines text that has been deleted from a document
467    fn del(&mut self) -> Node {
468        self.child(Cow::Borrowed("del"))
469    }
470
471    /// Defines additional details that the user can view or hide
472    fn details(&mut self) -> Node {
473        self.child(Cow::Borrowed("details"))
474    }
475
476    /// Specifies a term that is going to be defined within the content
477    fn dfn(&mut self) -> Node {
478        self.child(Cow::Borrowed("dfn"))
479    }
480
481    /// Defines a dialog box or window
482    fn dialog(&mut self) -> Node {
483        self.child(Cow::Borrowed("dialog"))
484    }
485
486    /// Defines a section in a document
487    fn div(&mut self) -> Node {
488        self.child(Cow::Borrowed("div"))
489    }
490
491    /// Defines a description list
492    fn dl(&mut self) -> Node {
493        self.child(Cow::Borrowed("dl"))
494    }
495
496    /// Defines a term/name in a description list
497    fn dt(&mut self) -> Node {
498        self.child(Cow::Borrowed("dt"))
499    }
500
501    /// Defines emphasized text
502    fn em(&mut self) -> Node {
503        self.child(Cow::Borrowed("em"))
504    }
505
506    /// Defines a container for an external application
507    fn embed(&mut self) -> Void {
508        self.void_child(Cow::Borrowed("embed"))
509    }
510
511    /// Groups related elements in a form
512    fn fieldset(&mut self) -> Node {
513        self.child(Cow::Borrowed("fieldset"))
514    }
515
516    /// Defines a caption for a `<figure>` element
517    fn figcaption(&mut self) -> Node {
518        self.child(Cow::Borrowed("figcaption"))
519    }
520
521    /// Specifies self-contained content
522    fn figure(&mut self) -> Node {
523        self.child(Cow::Borrowed("figure"))
524    }
525
526    /// Defines a footer for a document or section
527    fn footer(&mut self) -> Node {
528        self.child(Cow::Borrowed("footer"))
529    }
530
531    /// Defines an HTML form for user input
532    fn form(&mut self) -> Node {
533        self.child(Cow::Borrowed("form"))
534    }
535
536    /// Defines HTML headings
537    fn h1(&mut self) -> Node {
538        self.child(Cow::Borrowed("h1"))
539    }
540
541    /// Defines HTML headings
542    fn h2(&mut self) -> Node {
543        self.child(Cow::Borrowed("h2"))
544    }
545
546    /// Defines HTML headings
547    fn h3(&mut self) -> Node {
548        self.child(Cow::Borrowed("h3"))
549    }
550
551    /// Defines HTML headings
552    fn h4(&mut self) -> Node {
553        self.child(Cow::Borrowed("h4"))
554    }
555
556    /// Defines HTML headings
557    fn h5(&mut self) -> Node {
558        self.child(Cow::Borrowed("h5"))
559    }
560
561    /// Defines HTML headings
562    fn h6(&mut self) -> Node {
563        self.child(Cow::Borrowed("h6"))
564    }
565
566    /// Contains metadata/information for the document
567    fn head(&mut self) -> Node {
568        self.child(Cow::Borrowed("head"))
569    }
570
571    /// Defines a header for a document or section
572    fn header(&mut self) -> Node {
573        self.child(Cow::Borrowed("header"))
574    }
575
576    /// Defines a thematic change in the content
577    fn hr(&mut self) -> Void {
578        self.void_child(Cow::Borrowed("hr"))
579    }
580
581    /// Defines the root of an HTML document
582    fn html(&mut self) -> Node {
583        self.child(Cow::Borrowed("html"))
584    }
585
586    /// Defines a part of text in an alternate voice or mood
587    fn i(&mut self) -> Node {
588        self.child(Cow::Borrowed("i"))
589    }
590
591    /// Defines an inline frame
592    fn iframe(&mut self) -> Node {
593        self.child(Cow::Borrowed("iframe"))
594    }
595
596    /// Defines an image
597    fn img(&mut self) -> Void {
598        self.void_child(Cow::Borrowed("img"))
599    }
600
601    /// Defines an input control
602    fn input(&mut self) -> Void {
603        self.void_child(Cow::Borrowed("input"))
604    }
605
606    /// Defines a text that has been inserted into a document
607    fn ins(&mut self) -> Node {
608        self.child(Cow::Borrowed("ins"))
609    }
610
611    /// Defines keyboard input
612    fn kbd(&mut self) -> Node {
613        self.child(Cow::Borrowed("kbd"))
614    }
615
616    /// Defines a label for an `<input>` element
617    fn label(&mut self) -> Node {
618        self.child(Cow::Borrowed("label"))
619    }
620
621    /// Defines a caption for a `<fieldset>` element
622    fn legend(&mut self) -> Node {
623        self.child(Cow::Borrowed("legend"))
624    }
625
626    /// Defines a list item
627    fn li(&mut self) -> Node {
628        self.child(Cow::Borrowed("li"))
629    }
630
631    /// Defines the relationship between a document and an external resource (most used to link to style sheets)
632    fn link(&mut self) -> Void {
633        self.void_child(Cow::Borrowed("link"))
634    }
635
636    /// Specifies the main content of a document
637    fn main(&mut self) -> Node {
638        self.child(Cow::Borrowed("main"))
639    }
640
641    /// Defines an image map
642    fn map(&mut self) -> Node {
643        self.child(Cow::Borrowed("map"))
644    }
645
646    /// Defines marked/highlighted text
647    fn mark(&mut self) -> Node {
648        self.child(Cow::Borrowed("mark"))
649    }
650
651    /// Defines metadata about an HTML document
652    fn meta(&mut self) -> Void {
653        self.void_child(Cow::Borrowed("meta"))
654    }
655
656    /// Defines a scalar measurement within a known range (a gauge)
657    fn meter(&mut self) -> Node {
658        self.child(Cow::Borrowed("meter"))
659    }
660
661    /// Defines navigation links
662    fn nav(&mut self) -> Node {
663        self.child(Cow::Borrowed("nav"))
664    }
665
666    /// Defines an alternate content for users that do not support client-side scripts
667    fn noscript(&mut self) -> Node {
668        self.child(Cow::Borrowed("noscript"))
669    }
670
671    /// Defines a container for an external application
672    fn object(&mut self) -> Node {
673        self.child(Cow::Borrowed("object"))
674    }
675
676    /// Defines an ordered list
677    fn ol(&mut self) -> Node {
678        self.child(Cow::Borrowed("ol"))
679    }
680
681    /// Defines a group of related options in a drop-down list
682    fn optgroup(&mut self) -> Node {
683        self.child(Cow::Borrowed("optgroup"))
684    }
685
686    /// Defines an option in a drop-down list
687    fn option(&mut self) -> Node {
688        self.child(Cow::Borrowed("option"))
689    }
690
691    /// Defines the result of a calculation
692    fn output(&mut self) -> Node {
693        self.child(Cow::Borrowed("output"))
694    }
695
696    /// Defines a paragraph
697    fn p(&mut self) -> Node {
698        self.child(Cow::Borrowed("p"))
699    }
700
701    /// Defines a parameter for an object
702    fn param(&mut self) -> Void {
703        self.void_child(Cow::Borrowed("param"))
704    }
705
706    /// Defines a container for multiple image resources
707    fn picture(&mut self) -> Node {
708        self.child(Cow::Borrowed("picture"))
709    }
710
711    /// Defines preformatted text
712    fn pre(&mut self) -> Node {
713        self.child(Cow::Borrowed("pre"))
714    }
715
716    /// Represents the progress of a task
717    fn progress(&mut self) -> Node {
718        self.child(Cow::Borrowed("progress"))
719    }
720
721    /// Defines a short quotation
722    fn q(&mut self) -> Node {
723        self.child(Cow::Borrowed("q"))
724    }
725
726    /// Defines what to show in browsers that do not support ruby annotations
727    fn rp(&mut self) -> Node {
728        self.child(Cow::Borrowed("rp"))
729    }
730
731    /// Defines an explanation/pronunciation of characters (for East Asian typography)
732    fn rt(&mut self) -> Node {
733        self.child(Cow::Borrowed("rt"))
734    }
735
736    /// Defines a ruby annotation (for East Asian typography)
737    fn ruby(&mut self) -> Node {
738        self.child(Cow::Borrowed("ruby"))
739    }
740
741    /// Defines text that is no longer correct
742    fn s(&mut self) -> Node {
743        self.child(Cow::Borrowed("s"))
744    }
745
746    /// Defines sample output from a computer program
747    fn samp(&mut self) -> Node {
748        self.child(Cow::Borrowed("samp"))
749    }
750
751    /// Defines a client-side script
752    fn script(&mut self) -> Node {
753        self.child(Cow::Borrowed("script"))
754    }
755
756    /// Defines a section in a document
757    fn section(&mut self) -> Node {
758        self.child(Cow::Borrowed("section"))
759    }
760
761    /// Defines a drop-down list
762    fn select(&mut self) -> Node {
763        self.child(Cow::Borrowed("select"))
764    }
765
766    /// Defines smaller text
767    fn small(&mut self) -> Node {
768        self.child(Cow::Borrowed("small"))
769    }
770
771    /// Defines multiple media resources for media elements (`<video>` and `<audio>`)
772    fn source(&mut self) -> Void {
773        self.void_child(Cow::Borrowed("source"))
774    }
775
776    /// Defines a section in a document
777    fn span(&mut self) -> Node {
778        self.child(Cow::Borrowed("span"))
779    }
780
781    /// Defines important text
782    fn strong(&mut self) -> Node {
783        self.child(Cow::Borrowed("strong"))
784    }
785
786    /// Defines style information for a document
787    fn style(&mut self) -> Node {
788        self.child(Cow::Borrowed("style"))
789    }
790
791    /// Defines subscripted text
792    fn sub(&mut self) -> Node {
793        self.child(Cow::Borrowed("sub"))
794    }
795
796    /// Defines a visible heading for a `<details>` element
797    fn summary(&mut self) -> Node {
798        self.child(Cow::Borrowed("summary"))
799    }
800
801    /// Defines superscripted text
802    fn sup(&mut self) -> Node {
803        self.child(Cow::Borrowed("sup"))
804    }
805
806    /// Defines a container for SVG graphics
807    fn svg(&mut self) -> Node {
808        self.child(Cow::Borrowed("svg"))
809    }
810
811    /// Defines a table
812    fn table(&mut self) -> Node {
813        self.child(Cow::Borrowed("table"))
814    }
815
816    /// Groups the body content in a table
817    fn tbody(&mut self) -> Node {
818        self.child(Cow::Borrowed("tbody"))
819    }
820
821    /// Defines a cell in a table
822    fn td(&mut self) -> Node {
823        self.child(Cow::Borrowed("td"))
824    }
825
826    /// Defines a container for content that should be hidden when the page loads
827    fn template(&mut self) -> Node {
828        self.child(Cow::Borrowed("template"))
829    }
830
831    /// Defines a multiline input control (text area)
832    fn textarea(&mut self) -> Node {
833        self.child(Cow::Borrowed("textarea"))
834    }
835
836    /// Groups the footer content in a table
837    fn tfoot(&mut self) -> Node {
838        self.child(Cow::Borrowed("tfoot"))
839    }
840
841    /// Defines a header cell in a table
842    fn th(&mut self) -> Node {
843        self.child(Cow::Borrowed("th"))
844    }
845
846    /// Groups the header content in a table
847    fn thead(&mut self) -> Node {
848        self.child(Cow::Borrowed("thead"))
849    }
850
851    /// Defines a specific time (or datetime)
852    fn time(&mut self) -> Node {
853        self.child(Cow::Borrowed("time"))
854    }
855
856    /// Defines a title for the document
857    fn title(&mut self) -> Node {
858        self.child(Cow::Borrowed("title"))
859    }
860
861    /// Defines a row in a table
862    fn tr(&mut self) -> Node {
863        self.child(Cow::Borrowed("tr"))
864    }
865
866    /// Defines text tracks for media elements (`<video>` and `<audio>`)
867    fn track(&mut self) -> Void {
868        self.void_child(Cow::Borrowed("track"))
869    }
870
871    /// Defines some text that is unarticulated and styled differently from normal text
872    fn u(&mut self) -> Node {
873        self.child(Cow::Borrowed("u"))
874    }
875
876    /// Defines an unordered list
877    fn ul(&mut self) -> Node {
878        self.child(Cow::Borrowed("ul"))
879    }
880
881    /// Defines a variable
882    fn var(&mut self) -> Node {
883        self.child(Cow::Borrowed("var"))
884    }
885
886    /// Defines embedded video content
887    fn video(&mut self) -> Node {
888        self.child(Cow::Borrowed("video"))
889    }
890
891    /// Defines a possible line-break
892    fn wbr(&mut self) -> Void {
893        self.void_child(Cow::Borrowed("wbr"))
894    }
895}