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        @Override
072        public String toString() {
073            return "abbr";
074        }
075    };
076
077    /** HTML5 tag for <code>address</code>. */
078    Tag ADDRESS = Tag.ADDRESS;
079
080    /** HTML5 tag for <code>area</code>. */
081    Tag AREA = Tag.AREA;
082
083    /** HTML5 tag for <code>article</code>. */
084    Tag ARTICLE = new Tag() {
085        @Override
086        public String toString() {
087            return "article";
088        }
089    };
090
091    /** HTML5 tag for <code>aside</code>. */
092    Tag ASIDE = new Tag() {
093        @Override
094        public String toString() {
095            return "aside";
096        }
097    };
098
099    /** HTML5 tag for <code>audio</code>. */
100    Tag AUDIO = new Tag() {
101        @Override
102        public String toString() {
103            return "audio";
104        }
105    };
106
107    /** HTML5 tag for <code>b</code>. */
108    Tag B = Tag.B;
109
110    /** HTML5 tag for <code>base</code>. */
111    Tag BASE = Tag.BASE;
112
113    /** HTML5 tag for <code>bdi</code>. */
114    Tag BDI = new Tag() {
115        @Override
116        public String toString() {
117            return "bdi";
118        }
119    };
120
121    /** HTML5 tag for <code>bdo</code>. */
122    Tag BDO = new Tag() {
123        @Override
124        public String toString() {
125            return "bdo";
126        }
127    };
128
129    /** HTML5 tag for <code>blockquote</code>. */
130    Tag BLOCKQUOTE = Tag.BLOCKQUOTE;
131
132    /** HTML5 tag for <code>body</code>. */
133    Tag BODY = Tag.BODY;
134
135    /** HTML5 tag for <code>br</code>. */
136    Tag BR = Tag.BR;
137
138    /** HTML5 tag for <code>button</code>. */
139    Tag BUTTON = new Tag() {
140        @Override
141        public String toString() {
142            return "button";
143        }
144    };
145
146    /** HTML5 tag for <code>canvas</code>. */
147    Tag CANVAS = new Tag() {
148        @Override
149        public String toString() {
150            return "canvas";
151        }
152    };
153
154    /** HTML5 tag for <code>caption</code>. */
155    Tag CAPTION = Tag.CAPTION;
156
157    /** HTML5 tag for <code>cite</code>. */
158    Tag CITE = Tag.CITE;
159
160    /** HTML5 tag for <code>code</code>. */
161    Tag CODE = Tag.CODE;
162
163    /** HTML5 tag for <code>col</code>. */
164    Tag COL = new Tag() {
165        @Override
166        public String toString() {
167            return "col";
168        }
169    };
170
171    /** HTML5 tag for <code>colgroup</code>. */
172    Tag COLGROUP = new Tag() {
173        @Override
174        public String toString() {
175            return "colgroup";
176        }
177    };
178
179    /** HTML5 tag for <code>command</code>. */
180    Tag COMMAND = new Tag() {
181        @Override
182        public String toString() {
183            return "command";
184        }
185    };
186
187    /** HTML5 tag for <code>data</code>. */
188    Tag DATA = new Tag() {
189        @Override
190        public String toString() {
191            return "data";
192        }
193    };
194
195    /** HTML5 tag for <code>datalist</code>. */
196    Tag DATALIST = new Tag() {
197        @Override
198        public String toString() {
199            return "datalist";
200        }
201    };
202
203    /** HTML5 tag for <code>dd</code>. */
204    Tag DD = Tag.DD;
205
206    /** HTML5 tag for <code>del</code>. */
207    Tag DEL = new Tag() {
208        @Override
209        public String toString() {
210            return "del";
211        }
212    };
213
214    /** HTML5 tag for <code>details</code>. */
215    Tag DETAILS = new Tag() {
216        @Override
217        public String toString() {
218            return "details";
219        }
220    };
221
222    /** HTML5 tag for <code>dfn</code>. */
223    Tag DFN = Tag.DFN;
224
225    /** HTML5 tag for <code>dialog</code>. */
226    Tag DIALOG = new Tag() {
227        @Override
228        public String toString() {
229            return "dialog";
230        }
231    };
232
233    /** HTML5 tag for <code>div</code>. */
234    Tag DIV = Tag.DIV;
235
236    /** HTML5 tag for <code>dl</code>. */
237    Tag DL = Tag.DL;
238
239    /** HTML5 tag for <code>dt</code>. */
240    Tag DT = Tag.DT;
241
242    /** HTML5 tag for <code>em</code>. */
243    Tag EM = Tag.EM;
244
245    /** HTML5 tag for <code>embed</code>. */
246    Tag EMBED = new Tag() {
247        @Override
248        public String toString() {
249            return "embed";
250        }
251    };
252
253    /** HTML5 tag for <code>fieldset</code>. */
254    Tag FIELDSET = new Tag() {
255        @Override
256        public String toString() {
257            return "fieldset";
258        }
259    };
260
261    /** HTML5 tag for <code>figcaption</code>. */
262    Tag FIGCAPTION = new Tag() {
263        @Override
264        public String toString() {
265            return "figcaption";
266        }
267    };
268
269    /** HTML5 tag for <code>figure</code>. */
270    Tag FIGURE = new Tag() {
271        @Override
272        public String toString() {
273            return "figure";
274        }
275    };
276
277    /** HTML5 tag for <code>footer</code>. */
278    Tag FOOTER = new Tag() {
279        @Override
280        public String toString() {
281            return "footer";
282        }
283    };
284
285    /** HTML5 tag for <code>form</code>. */
286    Tag FORM = Tag.FORM;
287
288    /** HTML5 tag for <code>h1</code>. */
289    Tag H1 = Tag.H1;
290
291    /** HTML5 tag for <code>h2</code>. */
292    Tag H2 = Tag.H2;
293
294    /** HTML5 tag for <code>h3</code>. */
295    Tag H3 = Tag.H3;
296
297    /** HTML5 tag for <code>h4</code>. */
298    Tag H4 = Tag.H4;
299
300    /** HTML5 tag for <code>h5</code>. */
301    Tag H5 = Tag.H5;
302
303    /** HTML5 tag for <code>h6</code>. */
304    Tag H6 = Tag.H6;
305
306    /** HTML5 tag for <code>head</code>. */
307    Tag HEAD = Tag.HEAD;
308
309    /** HTML5 tag for <code>header</code>. */
310    Tag HEADER = new Tag() {
311
312        @Override
313        public String toString() {
314            return "header";
315        }
316    };
317
318    /** HTML5 tag for <code>hgroup</code>. */
319    Tag HGROUP = new Tag() {
320
321        @Override
322        public String toString() {
323            return "hgroup";
324        }
325    };
326
327    /** HTML5 tag for <code>hr</code>. */
328    Tag HR = Tag.HR;
329
330    /** HTML5 tag for <code>html</code>. */
331    Tag HTML = Tag.HTML;
332
333    /** HTML5 tag for <code>i</code>. */
334    Tag I = Tag.I;
335
336    /** HTML5 tag for <code>iframe</code>. */
337    Tag IFRAME = new Tag() {
338
339        @Override
340        public String toString() {
341            return "iframe";
342        }
343    };
344
345    /** HTML5 tag for <code>img</code>. */
346    Tag IMG = Tag.IMG;
347
348    /** HTML5 tag for <code>input</code>. */
349    Tag INPUT = Tag.INPUT;
350
351    /** HTML5 tag for <code>ins</code>. */
352    Tag INS = new Tag() {
353
354        @Override
355        public String toString() {
356            return "ins";
357        }
358    };
359
360    /** HTML5 tag for <code>kbd</code>. */
361    Tag KBD = Tag.KBD;
362
363    /** HTML5 tag for <code>keygen</code>. */
364    Tag KEYGEN = new Tag() {
365
366        @Override
367        public String toString() {
368            return "keygen";
369        }
370    };
371
372    /** HTML5 tag for <code>label</code>. */
373    Tag LABEL = new Tag() {
374
375        @Override
376        public String toString() {
377            return "label";
378        }
379    };
380
381    /** HTML5 tag for <code>legend</code>. */
382    Tag LEGEND = new Tag() {
383
384        @Override
385        public String toString() {
386            return "legend";
387        }
388    };
389
390    /** HTML5 tag for <code>li</code>. */
391    Tag LI = Tag.LI;
392
393    /** HTML5 tag for <code>link</code>. */
394    Tag LINK = Tag.LINK;
395
396    /** HTML5 tag for <code>map</code>. */
397    Tag MAP = Tag.MAP;
398
399    /** HTML5 tag for <code>main</code>. */
400    Tag MAIN = new Tag() {
401
402        @Override
403        public String toString() {
404            return "main";
405        }
406    };
407
408    /** HTML5 tag for <code>mark</code>. */
409    Tag MARK = new Tag() {
410
411        @Override
412        public String toString() {
413            return "mark";
414        }
415    };
416
417    /** HTML5 tag for <code>menu</code>. */
418    Tag MENU = Tag.MENU;
419
420    /** HTML5 tag for <code>menuitem</code>. */
421    Tag MENUITEM = new Tag() {
422
423        @Override
424        public String toString() {
425            return "menuitem";
426        }
427    };
428
429    /** HTML5 tag for <code>meta</code>. */
430    Tag META = Tag.META;
431
432    /** HTML5 tag for <code>meter</code>. */
433    Tag METER = new Tag() {
434
435        @Override
436        public String toString() {
437            return "meter";
438        }
439    };
440
441    /** HTML5 tag for <code>nav</code>. */
442    Tag NAV = new Tag() {
443
444        @Override
445        public String toString() {
446            return "nav";
447        }
448    };
449
450    /** HTML5 tag for <code>noscript</code>. */
451    Tag NOSCRIPT = new Tag() {
452
453        @Override
454        public String toString() {
455            return "noscript";
456        }
457    };
458
459    /** HTML5 tag for <code>object</code>. */
460    Tag OBJECT = Tag.OBJECT;
461
462    /** HTML5 tag for <code>ol</code>. */
463    Tag OL = Tag.OL;
464
465    /** HTML5 tag for <code>optgroup</code>. */
466    Tag OPTGROUP = new Tag() {
467
468        @Override
469        public String toString() {
470            return "optgroup";
471        }
472    };
473
474    /** HTML5 tag for <code>option</code>. */
475    Tag OPTION = Tag.OPTION;
476
477    /** HTML5 tag for <code>output</code>. */
478    Tag OUTPUT = new Tag() {
479
480        @Override
481        public String toString() {
482            return "output";
483        }
484    };
485
486    /** HTML5 tag for <code>p</code>. */
487    Tag P = Tag.P;
488
489    /** HTML5 tag for <code>param</code>. */
490    Tag PARAM = Tag.PARAM;
491
492    /** HTML5 tag for <code>picture</code>. */
493    Tag PICTURE = new Tag() {
494
495        @Override
496        public String toString() {
497            return "picture";
498        }
499    };
500
501    /** HTML5 tag for <code>pre</code>. */
502    Tag PRE = Tag.PRE;
503
504    /** HTML5 tag for <code>progress</code>. */
505    Tag PROGRESS = new Tag() {
506
507        @Override
508        public String toString() {
509            return "progress";
510        }
511    };
512
513    /** HTML5 tag for <code>q</code>. */
514    Tag Q = new Tag() {
515
516        @Override
517        public String toString() {
518            return "q";
519        }
520    };
521
522    /** HTML5 tag for <code>rb</code>. */
523    Tag RB = new Tag() {
524
525        @Override
526        public String toString() {
527            return "rb";
528        }
529    };
530
531    /** HTML5 tag for <code>rp</code>. */
532    Tag RP = new Tag() {
533
534        @Override
535        public String toString() {
536            return "rp";
537        }
538    };
539
540    /** HTML5 tag for <code>rt</code>. */
541    Tag RT = new Tag() {
542
543        @Override
544        public String toString() {
545            return "rt";
546        }
547    };
548
549    /** HTML5 tag for <code>rtc</code>. */
550    Tag RTC = new Tag() {
551
552        @Override
553        public String toString() {
554            return "rtc";
555        }
556    };
557
558    /** HTML5 tag for <code>ruby</code>. */
559    Tag RUBY = new Tag() {
560
561        @Override
562        public String toString() {
563            return "ruby";
564        }
565    };
566
567    /** HTML5 tag for <code>s</code>. */
568    Tag S = Tag.S;
569
570    /** HTML5 tag for <code>samp</code>. */
571    Tag SAMP = Tag.SAMP;
572
573    /** HTML5 tag for <code>script</code>. */
574    Tag SCRIPT = Tag.SCRIPT;
575
576    /** HTML5 tag for <code>section</code>. */
577    Tag SECTION = new Tag() {
578
579        @Override
580        public String toString() {
581            return "section";
582        }
583    };
584
585    /** HTML5 tag for <code>select</code>. */
586    Tag SELECT = Tag.SELECT;
587
588    /** HTML5 tag for <code>small</code>. */
589    Tag SMALL = Tag.SMALL;
590
591    /** HTML5 tag for <code>source</code>. */
592    Tag SOURCE = new Tag() {
593
594        @Override
595        public String toString() {
596            return "source";
597        }
598    };
599
600    /** HTML5 tag for <code>span</code>. */
601    Tag SPAN = Tag.SPAN;
602
603    /** HTML5 tag for <code>strong</code>. */
604    Tag STRONG = Tag.STRONG;
605
606    /** HTML5 tag for <code>style</code>. */
607    Tag STYLE = Tag.STYLE;
608
609    /** HTML5 tag for <code>sub</code>. */
610    Tag SUB = Tag.SUB;
611
612    /** HTML5 tag for <code>summary</code>. */
613    Tag SUMMARY = new Tag() {
614
615        @Override
616        public String toString() {
617            return "summary";
618        }
619    };
620
621    /** HTML5 tag for <code>sup</code>. */
622    Tag SUP = Tag.SUP;
623
624    /** HTML5 tag for <code>svg</code>. */
625    Tag SVG = new Tag() {
626
627        @Override
628        public String toString() {
629            return "svg";
630        }
631    };
632
633    /** HTML5 tag for <code>table</code>. */
634    Tag TABLE = Tag.TABLE;
635
636    /** HTML5 tag for <code>tbody</code>. */
637    Tag TBODY = new Tag() {
638
639        @Override
640        public String toString() {
641            return "tbody";
642        }
643    };
644
645    /** HTML5 tag for <code>td</code>. */
646    Tag TD = Tag.TD;
647
648    /** HTML5 tag for <code>template</code>. */
649    Tag TEMPLATE = new Tag() {
650
651        @Override
652        public String toString() {
653            return "template";
654        }
655    };
656
657    /** HTML5 tag for <code>textarea</code>. */
658    Tag TEXTAREA = Tag.TEXTAREA;
659
660    /** HTML5 tag for <code>tfoot</code>. */
661    Tag TFOOT = new Tag() {
662
663        @Override
664        public String toString() {
665            return "tfoot";
666        }
667    };
668
669    /** HTML5 tag for <code>th</code>. */
670    Tag TH = Tag.TH;
671
672    /** HTML5 tag for <code>thead</code>. */
673    Tag THEAD = new Tag() {
674
675        @Override
676        public String toString() {
677            return "thead";
678        }
679    };
680
681    /** HTML5 tag for <code>time</code>. */
682    Tag TIME = new Tag() {
683
684        @Override
685        public String toString() {
686            return "time";
687        }
688    };
689
690    /** HTML5 tag for <code>title</code>. */
691    Tag TITLE = Tag.TITLE;
692
693    /** HTML5 tag for <code>tr</code>. */
694    Tag TR = Tag.TR;
695
696    /** HTML5 tag for <code>track</code>. */
697    Tag TRACK = new Tag() {
698
699        @Override
700        public String toString() {
701            return "track";
702        }
703    };
704
705    /** HTML5 tag for <code>u</code>. */
706    Tag U = Tag.U;
707
708    /** HTML5 tag for <code>ul</code>. */
709    Tag UL = Tag.UL;
710
711    /** HTML5 tag for <code>var</code>. */
712    Tag VAR = Tag.VAR;
713
714    /** HTML5 tag for <code>video</code>. */
715    Tag VIDEO = new Tag() {
716
717        @Override
718        public String toString() {
719            return "video";
720        }
721    };
722
723    /** HTML5 tag for <code>wbr</code>. */
724    Tag WBR = new Tag() {
725
726        @Override
727        public String toString() {
728            return "wbr";
729        }
730    };
731}