001/*
002 * Licensed to the Apache Software Foundation (ASF) under one
003 * or more contributor license agreements.  See the NOTICE file
004 * distributed with this work for additional information
005 * regarding copyright ownership.  The ASF licenses this file
006 * to you under the Apache License, Version 2.0 (the
007 * "License"); you may not use this file except in compliance
008 * with the License.  You may obtain a copy of the License at
009 *
010 *   http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing,
013 * software distributed under the License is distributed on an
014 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
015 * KIND, either express or implied.  See the License for the
016 * specific language governing permissions and limitations
017 * under the License.
018 */
019package org.apache.maven.doxia.markup;
020
021import javax.swing.text.html.HTML.Tag;
022
023/**
024 * List of <code>Html</code> tags.
025 * <p>
026 * This should contain all valid HTML5 tags, comprising the tags
027 * in {@link javax.swing.text.html.HTML.Tag} plus several others.
028 * </p>
029 *
030 * @see <a href=
031 *      "https://www.tutorialrepublic.com/html-reference/html5-tags.php">
032 *      https://www.tutorialrepublic.com/html-reference/html5-tags.php</a>
033 * @author ltheussl
034 * @since 1.0
035 */
036@SuppressWarnings("checkstyle:interfaceistype")
037public interface HtmlMarkup extends XmlMarkup {
038
039    /** A simple HTML tag. Eg <code>&lt;br/&gt;</code>. */
040    int TAG_TYPE_SIMPLE = 1;
041
042    /** A start HTML tag. Eg <code>&lt;p&gt;</code>. */
043    int TAG_TYPE_START = 2;
044
045    /** An end HTML tag. Eg <code>&lt;/p&gt;</code>. */
046    int TAG_TYPE_END = 3;
047
048    /**
049     * An HTML entity. Eg <code>&amp;lt;</code>.
050     *
051     * @since 1.1.1.
052     */
053    int ENTITY_TYPE = 4;
054
055    /**
056     * A CDATA type event.
057     *
058     * @since 1.1.1.
059     */
060    int CDATA_TYPE = 5;
061
062    // ----------------------------------------------------------------------
063    // All HTML5 1.0 tags
064    // ----------------------------------------------------------------------
065
066    /** HTML5 tag for <code>a</code>. */
067    Tag A = Tag.A;
068
069    /** HTML5 tag for <code>abbr</code>. */
070    Tag ABBR = new Tag() {
071        /** {@inheritDoc} */
072        @Override
073        public String toString() {
074            return "abbr";
075        }
076    };
077
078    /** HTML5 tag for <code>address</code>. */
079    Tag ADDRESS = Tag.ADDRESS;
080
081    /** HTML5 tag for <code>area</code>. */
082    Tag AREA = Tag.AREA;
083
084    /** HTML5 tag for <code>article</code>. */
085    Tag ARTICLE = new Tag() {
086        /** {@inheritDoc} */
087        @Override
088        public String toString() {
089            return "article";
090        }
091    };
092
093    /** HTML5 tag for <code>aside</code>. */
094    Tag ASIDE = new Tag() {
095        /** {@inheritDoc} */
096        @Override
097        public String toString() {
098            return "aside";
099        }
100    };
101
102    /** HTML5 tag for <code>audio</code>. */
103    Tag AUDIO = new Tag() {
104        /** {@inheritDoc} */
105        @Override
106        public String toString() {
107            return "audio";
108        }
109    };
110
111    /** HTML5 tag for <code>b</code>. */
112    Tag B = Tag.B;
113
114    /** HTML5 tag for <code>base</code>. */
115    Tag BASE = Tag.BASE;
116
117    /** HTML5 tag for <code>bdi</code>. */
118    Tag BDI = new Tag() {
119        /** {@inheritDoc} */
120        @Override
121        public String toString() {
122            return "bdi";
123        }
124    };
125
126    /** HTML5 tag for <code>bdo</code>. */
127    Tag BDO = new Tag() {
128        /** {@inheritDoc} */
129        @Override
130        public String toString() {
131            return "bdo";
132        }
133    };
134
135    /** HTML5 tag for <code>blockquote</code>. */
136    Tag BLOCKQUOTE = Tag.BLOCKQUOTE;
137
138    /** HTML5 tag for <code>body</code>. */
139    Tag BODY = Tag.BODY;
140
141    /** HTML5 tag for <code>br</code>. */
142    Tag BR = Tag.BR;
143
144    /** HTML5 tag for <code>button</code>. */
145    Tag BUTTON = new Tag() {
146        /** {@inheritDoc} */
147        @Override
148        public String toString() {
149            return "button";
150        }
151    };
152
153    /** HTML5 tag for <code>canvas</code>. */
154    Tag CANVAS = new Tag() {
155        /** {@inheritDoc} */
156        @Override
157        public String toString() {
158            return "canvas";
159        }
160    };
161
162    /** HTML5 tag for <code>caption</code>. */
163    Tag CAPTION = Tag.CAPTION;
164
165    /** HTML5 tag for <code>cite</code>. */
166    Tag CITE = Tag.CITE;
167
168    /** HTML5 tag for <code>code</code>. */
169    Tag CODE = Tag.CODE;
170
171    /** HTML5 tag for <code>col</code>. */
172    Tag COL = new Tag() {
173        /** {@inheritDoc} */
174        @Override
175        public String toString() {
176            return "col";
177        }
178    };
179
180    /** HTML5 tag for <code>colgroup</code>. */
181    Tag COLGROUP = new Tag() {
182        /** {@inheritDoc} */
183        @Override
184        public String toString() {
185            return "colgroup";
186        }
187    };
188
189    /** HTML5 tag for <code>command</code>. */
190    Tag COMMAND = new Tag() {
191        /** {@inheritDoc} */
192        @Override
193        public String toString() {
194            return "command";
195        }
196    };
197
198    /** HTML5 tag for <code>data</code>. */
199    Tag DATA = new Tag() {
200        /** {@inheritDoc} */
201        @Override
202        public String toString() {
203            return "data";
204        }
205    };
206
207    /** HTML5 tag for <code>datalist</code>. */
208    Tag DATALIST = new Tag() {
209        /** {@inheritDoc} */
210        @Override
211        public String toString() {
212            return "datalist";
213        }
214    };
215
216    /** HTML5 tag for <code>dd</code>. */
217    Tag DD = Tag.DD;
218
219    /** HTML5 tag for <code>del</code>. */
220    Tag DEL = new Tag() {
221        /** {@inheritDoc} */
222        @Override
223        public String toString() {
224            return "del";
225        }
226    };
227
228    /** HTML5 tag for <code>details</code>. */
229    Tag DETAILS = new Tag() {
230        /** {@inheritDoc} */
231        @Override
232        public String toString() {
233            return "details";
234        }
235    };
236
237    /** HTML5 tag for <code>dfn</code>. */
238    Tag DFN = Tag.DFN;
239
240    /** HTML5 tag for <code>dialog</code>. */
241    Tag DIALOG = new Tag() {
242        /** {@inheritDoc} */
243        @Override
244        public String toString() {
245            return "dialog";
246        }
247    };
248
249    /** HTML5 tag for <code>div</code>. */
250    Tag DIV = Tag.DIV;
251
252    /** HTML5 tag for <code>dl</code>. */
253    Tag DL = Tag.DL;
254
255    /** HTML5 tag for <code>dt</code>. */
256    Tag DT = Tag.DT;
257
258    /** HTML5 tag for <code>em</code>. */
259    Tag EM = Tag.EM;
260
261    /** HTML5 tag for <code>embed</code>. */
262    Tag EMBED = new Tag() {
263        /** {@inheritDoc} */
264        @Override
265        public String toString() {
266            return "embed";
267        }
268    };
269
270    /** HTML5 tag for <code>fieldset</code>. */
271    Tag FIELDSET = new Tag() {
272        /** {@inheritDoc} */
273        @Override
274        public String toString() {
275            return "fieldset";
276        }
277    };
278
279    /** HTML5 tag for <code>figcaption</code>. */
280    Tag FIGCAPTION = new Tag() {
281        /** {@inheritDoc} */
282        @Override
283        public String toString() {
284            return "figcaption";
285        }
286    };
287
288    /** HTML5 tag for <code>figure</code>. */
289    Tag FIGURE = new Tag() {
290        /** {@inheritDoc} */
291        @Override
292        public String toString() {
293            return "figure";
294        }
295    };
296
297    /** HTML5 tag for <code>footer</code>. */
298    Tag FOOTER = new Tag() {
299        /** {@inheritDoc} */
300        @Override
301        public String toString() {
302            return "footer";
303        }
304    };
305
306    /** HTML5 tag for <code>form</code>. */
307    Tag FORM = Tag.FORM;
308
309    /** HTML5 tag for <code>h1</code>. */
310    Tag H1 = Tag.H1;
311
312    /** HTML5 tag for <code>h2</code>. */
313    Tag H2 = Tag.H2;
314
315    /** HTML5 tag for <code>h3</code>. */
316    Tag H3 = Tag.H3;
317
318    /** HTML5 tag for <code>h4</code>. */
319    Tag H4 = Tag.H4;
320
321    /** HTML5 tag for <code>h5</code>. */
322    Tag H5 = Tag.H5;
323
324    /** HTML5 tag for <code>h6</code>. */
325    Tag H6 = Tag.H6;
326
327    /** HTML5 tag for <code>head</code>. */
328    Tag HEAD = Tag.HEAD;
329
330    /** HTML5 tag for <code>header</code>. */
331    Tag HEADER = new Tag() {
332        /** {@inheritDoc} */
333        @Override
334        public String toString() {
335            return "header";
336        }
337    };
338
339    /** HTML5 tag for <code>hgroup</code>. */
340    Tag HGROUP = new Tag() {
341        /** {@inheritDoc} */
342        @Override
343        public String toString() {
344            return "hgroup";
345        }
346    };
347
348    /** HTML5 tag for <code>hr</code>. */
349    Tag HR = Tag.HR;
350
351    /** HTML5 tag for <code>html</code>. */
352    Tag HTML = Tag.HTML;
353
354    /** HTML5 tag for <code>i</code>. */
355    Tag I = Tag.I;
356
357    /** HTML5 tag for <code>iframe</code>. */
358    Tag IFRAME = new Tag() {
359        /** {@inheritDoc} */
360        @Override
361        public String toString() {
362            return "iframe";
363        }
364    };
365
366    /** HTML5 tag for <code>img</code>. */
367    Tag IMG = Tag.IMG;
368
369    /** HTML5 tag for <code>input</code>. */
370    Tag INPUT = Tag.INPUT;
371
372    /** HTML5 tag for <code>ins</code>. */
373    Tag INS = new Tag() {
374        /** {@inheritDoc} */
375        @Override
376        public String toString() {
377            return "ins";
378        }
379    };
380
381    /** HTML5 tag for <code>kbd</code>. */
382    Tag KBD = Tag.KBD;
383
384    /** HTML5 tag for <code>keygen</code>. */
385    Tag KEYGEN = new Tag() {
386        /** {@inheritDoc} */
387        @Override
388        public String toString() {
389            return "keygen";
390        }
391    };
392
393    /** HTML5 tag for <code>label</code>. */
394    Tag LABEL = new Tag() {
395        /** {@inheritDoc} */
396        @Override
397        public String toString() {
398            return "label";
399        }
400    };
401
402    /** HTML5 tag for <code>legend</code>. */
403    Tag LEGEND = new Tag() {
404        /** {@inheritDoc} */
405        @Override
406        public String toString() {
407            return "legend";
408        }
409    };
410
411    /** HTML5 tag for <code>li</code>. */
412    Tag LI = Tag.LI;
413
414    /** HTML5 tag for <code>link</code>. */
415    Tag LINK = Tag.LINK;
416
417    /** HTML5 tag for <code>map</code>. */
418    Tag MAP = Tag.MAP;
419
420    /** HTML5 tag for <code>main</code>. */
421    Tag MAIN = new Tag() {
422        /** {@inheritDoc} */
423        @Override
424        public String toString() {
425            return "main";
426        }
427    };
428
429    /** HTML5 tag for <code>mark</code>. */
430    Tag MARK = new Tag() {
431        /** {@inheritDoc} */
432        @Override
433        public String toString() {
434            return "mark";
435        }
436    };
437
438    /** HTML5 tag for <code>menu</code>. */
439    Tag MENU = Tag.MENU;
440
441    /** HTML5 tag for <code>menuitem</code>. */
442    Tag MENUITEM = new Tag() {
443        /** {@inheritDoc} */
444        @Override
445        public String toString() {
446            return "menuitem";
447        }
448    };
449
450    /** HTML5 tag for <code>meta</code>. */
451    Tag META = Tag.META;
452
453    /** HTML5 tag for <code>meter</code>. */
454    Tag METER = new Tag() {
455        /** {@inheritDoc} */
456        @Override
457        public String toString() {
458            return "meter";
459        }
460    };
461
462    /** HTML5 tag for <code>nav</code>. */
463    Tag NAV = new Tag() {
464        /** {@inheritDoc} */
465        @Override
466        public String toString() {
467            return "nav";
468        }
469    };
470
471    /** HTML5 tag for <code>noscript</code>. */
472    Tag NOSCRIPT = new Tag() {
473        /** {@inheritDoc} */
474        @Override
475        public String toString() {
476            return "noscript";
477        }
478    };
479
480    /** HTML5 tag for <code>object</code>. */
481    Tag OBJECT = Tag.OBJECT;
482
483    /** HTML5 tag for <code>ol</code>. */
484    Tag OL = Tag.OL;
485
486    /** HTML5 tag for <code>optgroup</code>. */
487    Tag OPTGROUP = new Tag() {
488        /** {@inheritDoc} */
489        @Override
490        public String toString() {
491            return "optgroup";
492        }
493    };
494
495    /** HTML5 tag for <code>option</code>. */
496    Tag OPTION = Tag.OPTION;
497
498    /** HTML5 tag for <code>output</code>. */
499    Tag OUTPUT = new Tag() {
500        /** {@inheritDoc} */
501        @Override
502        public String toString() {
503            return "output";
504        }
505    };
506
507    /** HTML5 tag for <code>p</code>. */
508    Tag P = Tag.P;
509
510    /** HTML5 tag for <code>param</code>. */
511    Tag PARAM = Tag.PARAM;
512
513    /** HTML5 tag for <code>picture</code>. */
514    Tag PICTURE = new Tag() {
515        /** {@inheritDoc} */
516        @Override
517        public String toString() {
518            return "picture";
519        }
520    };
521
522    /** HTML5 tag for <code>pre</code>. */
523    Tag PRE = Tag.PRE;
524
525    /** HTML5 tag for <code>progress</code>. */
526    Tag PROGRESS = new Tag() {
527        /** {@inheritDoc} */
528        @Override
529        public String toString() {
530            return "progress";
531        }
532    };
533
534    /** HTML5 tag for <code>q</code>. */
535    Tag Q = new Tag() {
536        /** {@inheritDoc} */
537        @Override
538        public String toString() {
539            return "q";
540        }
541    };
542
543    /** HTML5 tag for <code>rb</code>. */
544    Tag RB = new Tag() {
545        /** {@inheritDoc} */
546        @Override
547        public String toString() {
548            return "rb";
549        }
550    };
551
552    /** HTML5 tag for <code>rp</code>. */
553    Tag RP = new Tag() {
554        /** {@inheritDoc} */
555        @Override
556        public String toString() {
557            return "rp";
558        }
559    };
560
561    /** HTML5 tag for <code>rt</code>. */
562    Tag RT = new Tag() {
563        /** {@inheritDoc} */
564        @Override
565        public String toString() {
566            return "rt";
567        }
568    };
569
570    /** HTML5 tag for <code>rtc</code>. */
571    Tag RTC = new Tag() {
572        /** {@inheritDoc} */
573        @Override
574        public String toString() {
575            return "rtc";
576        }
577    };
578
579    /** HTML5 tag for <code>ruby</code>. */
580    Tag RUBY = new Tag() {
581        /** {@inheritDoc} */
582        @Override
583        public String toString() {
584            return "ruby";
585        }
586    };
587
588    /** HTML5 tag for <code>s</code>. */
589    Tag S = Tag.S;
590
591    /** HTML5 tag for <code>samp</code>. */
592    Tag SAMP = Tag.SAMP;
593
594    /** HTML5 tag for <code>script</code>. */
595    Tag SCRIPT = Tag.SCRIPT;
596
597    /** HTML5 tag for <code>section</code>. */
598    Tag SECTION = new Tag() {
599        /** {@inheritDoc} */
600        @Override
601        public String toString() {
602            return "section";
603        }
604    };
605
606    /** HTML5 tag for <code>select</code>. */
607    Tag SELECT = Tag.SELECT;
608
609    /** HTML5 tag for <code>small</code>. */
610    Tag SMALL = Tag.SMALL;
611
612    /** HTML5 tag for <code>source</code>. */
613    Tag SOURCE = new Tag() {
614        /** {@inheritDoc} */
615        @Override
616        public String toString() {
617            return "source";
618        }
619    };
620
621    /** HTML5 tag for <code>span</code>. */
622    Tag SPAN = Tag.SPAN;
623
624    /** HTML5 tag for <code>strong</code>. */
625    Tag STRONG = Tag.STRONG;
626
627    /** HTML5 tag for <code>style</code>. */
628    Tag STYLE = Tag.STYLE;
629
630    /** HTML5 tag for <code>sub</code>. */
631    Tag SUB = Tag.SUB;
632
633    /** HTML5 tag for <code>summary</code>. */
634    Tag SUMMARY = new Tag() {
635        /** {@inheritDoc} */
636        @Override
637        public String toString() {
638            return "summary";
639        }
640    };
641
642    /** HTML5 tag for <code>sup</code>. */
643    Tag SUP = Tag.SUP;
644
645    /** HTML5 tag for <code>svg</code>. */
646    Tag SVG = new Tag() {
647        /** {@inheritDoc} */
648        @Override
649        public String toString() {
650            return "svg";
651        }
652    };
653
654    /** HTML5 tag for <code>table</code>. */
655    Tag TABLE = Tag.TABLE;
656
657    /** HTML5 tag for <code>tbody</code>. */
658    Tag TBODY = new Tag() {
659        /** {@inheritDoc} */
660        @Override
661        public String toString() {
662            return "tbody";
663        }
664    };
665
666    /** HTML5 tag for <code>td</code>. */
667    Tag TD = Tag.TD;
668
669    /** HTML5 tag for <code>template</code>. */
670    Tag TEMPLATE = new Tag() {
671        /** {@inheritDoc} */
672        @Override
673        public String toString() {
674            return "template";
675        }
676    };
677
678    /** HTML5 tag for <code>textarea</code>. */
679    Tag TEXTAREA = Tag.TEXTAREA;
680
681    /** HTML5 tag for <code>tfoot</code>. */
682    Tag TFOOT = new Tag() {
683        /** {@inheritDoc} */
684        @Override
685        public String toString() {
686            return "tfoot";
687        }
688    };
689
690    /** HTML5 tag for <code>th</code>. */
691    Tag TH = Tag.TH;
692
693    /** HTML5 tag for <code>thead</code>. */
694    Tag THEAD = new Tag() {
695        /** {@inheritDoc} */
696        @Override
697        public String toString() {
698            return "thead";
699        }
700    };
701
702    /** HTML5 tag for <code>time</code>. */
703    Tag TIME = new Tag() {
704        /** {@inheritDoc} */
705        @Override
706        public String toString() {
707            return "time";
708        }
709    };
710
711    /** HTML5 tag for <code>title</code>. */
712    Tag TITLE = Tag.TITLE;
713
714    /** HTML5 tag for <code>tr</code>. */
715    Tag TR = Tag.TR;
716
717    /** HTML5 tag for <code>track</code>. */
718    Tag TRACK = new Tag() {
719        /** {@inheritDoc} */
720        @Override
721        public String toString() {
722            return "track";
723        }
724    };
725
726    /** HTML5 tag for <code>u</code>. */
727    Tag U = Tag.U;
728
729    /** HTML5 tag for <code>ul</code>. */
730    Tag UL = Tag.UL;
731
732    /** HTML5 tag for <code>var</code>. */
733    Tag VAR = Tag.VAR;
734
735    /** HTML5 tag for <code>video</code>. */
736    Tag VIDEO = new Tag() {
737        /** {@inheritDoc} */
738        @Override
739        public String toString() {
740            return "video";
741        }
742    };
743
744    /** HTML5 tag for <code>wbr</code>. */
745    Tag WBR = new Tag() {
746        /** {@inheritDoc} */
747        @Override
748        public String toString() {
749            return "wbr";
750        }
751    };
752}