36 Commits

Author SHA1 Message Date
David
fc3bb29b6a [maven-release-plugin] prepare release j2html-1.1.0 2017-08-14 17:45:02 +02:00
Sergey Bezkostnyi
ef5777e54a Add ability to change text escaper implementation (#70) 2017-08-14 17:10:02 +02:00
David
cfc1489399 Merge pull request #63 from maztan/master
Add method to get number of children of ContainerTag
2017-07-29 19:19:08 +02:00
Ed Savailonei
8112dad1bb Add methd to get number of children of ContainerTag 2017-07-03 12:41:10 +02:00
David
235dec78ed Merge pull request #62 from kiru/patch-1
Updaate Gradle Version
2017-05-19 23:05:12 +02:00
Kiru
6316dd2262 Updaate Gradle Version 2017-05-19 21:57:04 +02:00
David
5667d7c68d Update README.md 2017-05-16 18:49:27 +02:00
David
13911d5f57 [maven-release-plugin] prepare for next development iteration 2017-05-16 18:00:33 +02:00
David
0bc6e274db [maven-release-plugin] prepare release j2html-1.0.0 2017-05-16 18:00:10 +02:00
David
325afd463c Fix version 2017-05-16 17:58:03 +02:00
David
f331eb9eb3 Merge pull request #61 from EthanDRaymond/DomContentJoiner-Does-Not-Use-Delimiter
Fixed a bug (maybe) where a delimiter was not being used
2017-05-12 22:45:10 +02:00
Ethan Raymond
d37dc1cac6 Fixed a bug (maybe) where a delimiter was not being used. 2017-05-12 15:39:23 -04:00
David
dab61bd662 [maven-release-plugin] prepare for next development iteration 2017-05-03 19:57:56 +02:00
David
d559f05903 [maven-release-plugin] prepare release j2html-1.0.0-RC 2017-05-03 19:57:31 +02:00
David
97a8f34572 Make filereader java6 compatible, because why not 2017-05-02 22:39:59 +02:00
David
6305e364ca Experimental Java6/Java7 support 2017-05-02 03:12:17 +02:00
David
28ba518b12 Fix name collision + minor cleanup 2017-05-01 19:10:42 +02:00
David
5f04cde97c Merge pull request #56 from tipsy/id-class-shorthand
Add shorthand notation for id/class
2017-05-01 18:59:11 +02:00
David
b00ba50133 Add attrs method to tagcreator 2017-05-01 18:51:04 +02:00
David
e09918da12 Add missing test-case to attr.shortform 2017-05-01 18:06:10 +02:00
David
55b74e81aa Improve generics in Attr.addTo 2017-05-01 16:54:05 +02:00
David
75deeff13d Remove unwanted import 2017-05-01 16:29:22 +02:00
David
3aa05aa540 Merge branch 'master' into id-class-shorthand 2017-05-01 16:15:01 +02:00
David
fb24d1eabf Merge pull request #55 from chmuche/empty-attribute
Empty attribute
2017-05-01 15:50:07 +02:00
David
458f3baf98 Merge pull request #54 from chmuche/gradle-dependency
Add Gradle dependency in README.md
2017-05-01 15:48:25 +02:00
David
a661f37575 Add document() method that renders a html() child 2017-05-01 15:45:02 +02:00
David
26796cd30d Add shorthand notation for id/class 2017-05-01 15:22:48 +02:00
chmuche
75dc60c415 Add Test 2017-05-01 15:19:27 +02:00
chmuche
99b98f9b09 Create a method attr without value to create empty attribute inside the tag 2017-05-01 15:12:41 +02:00
chmuche
8d4756bab0 Add Gradle dependency in README.md 2017-05-01 15:07:50 +02:00
David
2c1f337348 Update README.md 2017-04-30 20:37:27 +02:00
David
d437e1affd Add a domcontentjoiner 2017-04-29 16:44:48 +02:00
David
4fdcc3c213 Remove need for with() 2017-04-29 12:15:51 +02:00
David
ba3261b210 Update README.md 2017-04-25 23:34:26 +02:00
David
ee0100d1a7 Set snapshot to 1.0.0 2017-04-20 23:17:07 +02:00
David
9ec3088d82 [maven-release-plugin] prepare for next development iteration 2017-04-20 23:13:36 +02:00
22 changed files with 1299 additions and 246 deletions

View File

@@ -13,9 +13,13 @@ The project webpage is [j2html.com](http://j2html.com).
<dependency>
<groupId>com.j2html</groupId>
<artifactId>j2html</artifactId>
<version>0.88</version>
<version>1.0.0</version>
</dependency>
```
### OR the gradle dependency
```
compile 'com.j2html:j2html:1.0.0'
```
### Import TagCreator and start building HTML
```java
@@ -24,8 +28,8 @@ import static j2html.TagCreator.*;
public class Main {
public static void main(String[] args) {
body().with(
h1("Heading!").withClass("example"),
img().withSrc("img/hello.png")
h1("Heading!").withClass("example"),
img().withSrc("img/hello.png")
).render();
}
}

18
pom.xml
View File

@@ -10,7 +10,7 @@
<groupId>com.j2html</groupId>
<artifactId>j2html</artifactId>
<version>0.99</version>
<version>1.1.0</version>
<name>j2html</name>
<description>Java to HTML builder with a fluent API</description>
@@ -64,6 +64,22 @@
<build>
<plugins>
<plugin>
<groupId>net.orfjackal.retrolambda</groupId>
<artifactId>retrolambda-maven-plugin</artifactId>
<version>2.5.1</version>
<executions>
<execution>
<goals>
<goal>process-main</goal>
<goal>process-test</goal>
</goals>
</execution>
</executions>
<configuration>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>

View File

@@ -0,0 +1,13 @@
package j2html;
import j2html.utils.SimpleEscaper;
import j2html.utils.TextEscaper;
public class Config {
private Config() {
}
public static TextEscaper textEscaper = new SimpleEscaper();
}

View File

@@ -6,8 +6,10 @@ import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import j2html.attributes.Attr;
import j2html.tags.ContainerTag;
import j2html.tags.DomContent;
import j2html.tags.DomContentJoiner;
import j2html.tags.EmptyTag;
import j2html.tags.InlineStaticResource;
import j2html.tags.Text;
@@ -36,6 +38,29 @@ public class TagCreator {
return condition ? ifValue : elseValue;
}
/**
* Returns a Attr.ShortForm object with either id, classes or both,
* obtained from parsing the input string using css selector syntax
*
* @param attrs the string with shortform attributes, only id and class is supported
* @return a Attr.ShortForm object
*/
public static Attr.ShortForm attrs(String attrs) {
return Attr.shortFormFromAttrsString(attrs);
}
/**
* Returns the HTML created by concatenating the input elements,
* separated by space, in encounter order.
* Also removes spaces before periods and commas.
*
* @param stringOrDomObjects the elements to join
* @return joined elements as HTML
*/
public static UnescapedText join(Object... stringOrDomObjects) {
return DomContentJoiner.join(" ", true, stringOrDomObjects);
}
/**
* Creates a DomContent object containing HTML using a mapping function on a collection
* Intended usage: {@literal each(numbers, n -> li(n.toString()))}
@@ -82,171 +107,736 @@ public class TagCreator {
return new Text(text);
}
/**
* Return a complete html document string
*
* @param htmlTag the html content of a website
* @return document declaration and rendered html content
*/
public static String document(ContainerTag htmlTag) {
if (htmlTag.getTagName().equals("html")) {
return new EmptyTag("!DOCTYPE html").render() + htmlTag.render();
}
throw new IllegalArgumentException("Only HTML-tag can follow document declaration");
}
//Special tags
public static ContainerTag tag(String tagName) { return new ContainerTag(tagName); }
public static EmptyTag emptyTag(String tagName) { return new EmptyTag(tagName); }
public static ContainerTag tag(String tagName) { return new ContainerTag(tagName); }
public static EmptyTag emptyTag(String tagName) { return new EmptyTag(tagName); }
public static Text fileAsEscapedString(String path) { return text(InlineStaticResource.getFileAsString(path)); }
public static UnescapedText fileAsString(String path) { return rawHtml(InlineStaticResource.getFileAsString(path)); }
public static Text fileAsEscapedString(String path) { return text(InlineStaticResource.getFileAsString(path)); }
public static UnescapedText fileAsString(String path) { return rawHtml(InlineStaticResource.getFileAsString(path)); }
public static ContainerTag styleWithInlineFile(String path) { return InlineStaticResource.get(path, InlineStaticResource.TargetFormat.CSS); }
public static ContainerTag scriptWithInlineFile(String path) { return InlineStaticResource.get(path, InlineStaticResource.TargetFormat.JS); }
public static ContainerTag styleWithInlineFile_min(String path) { return InlineStaticResource.get(path, InlineStaticResource.TargetFormat.CSS_MIN); }
public static ContainerTag scriptWithInlineFile_min(String path) { return InlineStaticResource.get(path, InlineStaticResource.TargetFormat.JS_MIN); }
public static ContainerTag styleWithInlineFile(String path) { return InlineStaticResource.get(path, InlineStaticResource.TargetFormat.CSS); }
public static ContainerTag scriptWithInlineFile(String path) { return InlineStaticResource.get(path, InlineStaticResource.TargetFormat.JS); }
public static ContainerTag styleWithInlineFile_min(String path) { return InlineStaticResource.get(path, InlineStaticResource.TargetFormat.CSS_MIN); }
public static ContainerTag scriptWithInlineFile_min(String path) { return InlineStaticResource.get(path, InlineStaticResource.TargetFormat.JS_MIN); }
//EmptyTags
public static EmptyTag area() { return new EmptyTag("area"); }
public static EmptyTag base() { return new EmptyTag("base"); }
public static EmptyTag br() { return new EmptyTag("br"); }
public static EmptyTag col() { return new EmptyTag("col"); }
public static EmptyTag document() { return new EmptyTag("!DOCTYPE html"); }
public static EmptyTag embed() { return new EmptyTag("embed"); }
public static EmptyTag hr() { return new EmptyTag("hr"); }
public static EmptyTag img() { return new EmptyTag("img"); }
public static EmptyTag input() { return new EmptyTag("input"); }
public static EmptyTag keygen() { return new EmptyTag("keygen"); }
public static EmptyTag link() { return new EmptyTag("link"); }
public static EmptyTag meta() { return new EmptyTag("meta"); }
public static EmptyTag param() { return new EmptyTag("param"); }
public static EmptyTag source() { return new EmptyTag("source"); }
public static EmptyTag track() { return new EmptyTag("track"); }
public static EmptyTag wbr() { return new EmptyTag("wbr"); }
public static EmptyTag document() { return new EmptyTag("!DOCTYPE html"); }
// EmptyTags, generated in class j2html.tags.TagCreatorCodeGenerator
public static EmptyTag area() { return new EmptyTag("area"); }
public static EmptyTag area(Attr.ShortForm shortAttr) { return Attr.addTo(new EmptyTag("area"), shortAttr); }
//ContainerTags
public static ContainerTag a() { return new ContainerTag("a"); }
public static ContainerTag a(String text) { return new ContainerTag("a").withText(text); }
public static ContainerTag abbr() { return new ContainerTag("abbr"); }
public static ContainerTag address() { return new ContainerTag("address"); }
public static ContainerTag article() { return new ContainerTag("article"); }
public static ContainerTag aside() { return new ContainerTag("aside"); }
public static ContainerTag audio() { return new ContainerTag("audio"); }
public static ContainerTag b() { return new ContainerTag("b"); }
public static ContainerTag b(String text) { return new ContainerTag("b").withText(text); }
public static ContainerTag bdi() { return new ContainerTag("bdi"); }
public static ContainerTag bdi(String text) { return new ContainerTag("bdi").withText(text); }
public static ContainerTag bdo() { return new ContainerTag("bdo"); }
public static ContainerTag bdo(String text) { return new ContainerTag("bdo").withText(text); }
public static ContainerTag blockquote() { return new ContainerTag("blockquote"); }
public static ContainerTag blockquote(String text) { return new ContainerTag("blockquote").withText(text); }
public static ContainerTag body() { return new ContainerTag("body"); }
public static ContainerTag button() { return new ContainerTag("button"); }
public static ContainerTag button(String text) { return new ContainerTag("button").withText(text); }
public static ContainerTag canvas() { return new ContainerTag("canvas"); }
public static ContainerTag caption() { return new ContainerTag("caption"); }
public static ContainerTag caption(String text) { return new ContainerTag("caption").withText(text); }
public static ContainerTag cite() { return new ContainerTag("cite"); }
public static ContainerTag cite(String text) { return new ContainerTag("cite").withText(text); }
public static ContainerTag code() { return new ContainerTag("code"); }
public static ContainerTag colgroup() { return new ContainerTag("colgroup"); }
public static ContainerTag datalist() { return new ContainerTag("datalist"); }
public static ContainerTag dd() { return new ContainerTag("dd"); }
public static ContainerTag dd(String text) { return new ContainerTag("dd").withText(text); }
public static ContainerTag del() { return new ContainerTag("del"); }
public static ContainerTag del(String text) { return new ContainerTag("del").withText(text); }
public static ContainerTag details() { return new ContainerTag("details"); }
public static ContainerTag dfn() { return new ContainerTag("dfn"); }
public static ContainerTag dfn(String text) { return new ContainerTag("dfn").withText(text); }
public static ContainerTag dialog() { return new ContainerTag("dialog"); }
public static ContainerTag dialog(String text) { return new ContainerTag("dialog").withText(text); }
public static ContainerTag div() { return new ContainerTag("div"); }
public static ContainerTag dl() { return new ContainerTag("dl"); }
public static ContainerTag dt() { return new ContainerTag("dt"); }
public static ContainerTag dt(String text) { return new ContainerTag("dt").withText(text); }
public static ContainerTag em() { return new ContainerTag("em"); }
public static ContainerTag em(String text) { return new ContainerTag("em").withText(text); }
public static ContainerTag fieldset() { return new ContainerTag("fieldset"); }
public static ContainerTag figcaption() { return new ContainerTag("figcaption"); }
public static ContainerTag figcaption(String text) { return new ContainerTag("figcaption").withText(text); }
public static ContainerTag figure() { return new ContainerTag("figure"); }
public static ContainerTag footer() { return new ContainerTag("footer"); }
public static ContainerTag form() { return new ContainerTag("form"); }
public static ContainerTag h1() { return new ContainerTag("h1"); }
public static ContainerTag h1(String text) { return new ContainerTag("h1").withText(text); }
public static ContainerTag h2() { return new ContainerTag("h2"); }
public static ContainerTag h2(String text) { return new ContainerTag("h2").withText(text); }
public static ContainerTag h3() { return new ContainerTag("h3"); }
public static ContainerTag h3(String text) { return new ContainerTag("h3").withText(text); }
public static ContainerTag h4() { return new ContainerTag("h4"); }
public static ContainerTag h4(String text) { return new ContainerTag("h4").withText(text); }
public static ContainerTag h5() { return new ContainerTag("h5"); }
public static ContainerTag h5(String text) { return new ContainerTag("h5").withText(text); }
public static ContainerTag h6() { return new ContainerTag("h6"); }
public static ContainerTag h6(String text) { return new ContainerTag("h6").withText(text); }
public static ContainerTag head() { return new ContainerTag("head"); }
public static ContainerTag header() { return new ContainerTag("header"); }
public static ContainerTag html() { return new ContainerTag("html"); }
public static ContainerTag i() { return new ContainerTag("i"); }
public static ContainerTag i(String text) { return new ContainerTag("i").withText(text); }
public static ContainerTag iframe() { return new ContainerTag("iframe"); }
public static ContainerTag ins() { return new ContainerTag("ins"); }
public static ContainerTag ins(String text) { return new ContainerTag("ins").withText(text); }
public static ContainerTag kbd() { return new ContainerTag("kbd"); }
public static ContainerTag label() { return new ContainerTag("label"); }
public static ContainerTag label(String text) { return new ContainerTag("label").withText(text); }
public static ContainerTag legend() { return new ContainerTag("legend"); }
public static ContainerTag legend(String text) { return new ContainerTag("legend").withText(text); }
public static ContainerTag li() { return new ContainerTag("li"); }
public static ContainerTag li(String text) { return new ContainerTag("li").withText(text); }
public static ContainerTag main() { return new ContainerTag("main"); }
public static ContainerTag map() { return new ContainerTag("map"); }
public static ContainerTag mark() { return new ContainerTag("mark"); }
public static ContainerTag menu() { return new ContainerTag("menu"); }
public static ContainerTag menuitem() { return new ContainerTag("menuitem"); }
public static ContainerTag meter() { return new ContainerTag("meter"); }
public static ContainerTag nav() { return new ContainerTag("nav"); }
public static ContainerTag noscript() { return new ContainerTag("noscript"); }
public static ContainerTag object() { return new ContainerTag("object"); }
public static ContainerTag ol() { return new ContainerTag("ol"); }
public static ContainerTag optgroup() { return new ContainerTag("optgroup"); }
public static ContainerTag option() { return new ContainerTag("option"); }
public static ContainerTag option(String text) { return new ContainerTag("option").withText(text); }
public static ContainerTag output() { return new ContainerTag("output"); }
public static ContainerTag p() { return new ContainerTag("p"); }
public static ContainerTag p(String text) { return new ContainerTag("p").withText(text); }
public static ContainerTag pre() { return new ContainerTag("pre"); }
public static ContainerTag progress() { return new ContainerTag("progress"); }
public static ContainerTag q() { return new ContainerTag("q"); }
public static ContainerTag q(String text) { return new ContainerTag("q").withText(text); }
public static ContainerTag rp() { return new ContainerTag("rp"); }
public static ContainerTag rt() { return new ContainerTag("rt"); }
public static ContainerTag ruby() { return new ContainerTag("ruby"); }
public static ContainerTag s() { return new ContainerTag("s"); }
public static ContainerTag s(String text) { return new ContainerTag("s").withText(text); }
public static ContainerTag samp() { return new ContainerTag("samp"); }
public static ContainerTag script() { return new ContainerTag("script"); }
public static ContainerTag section() { return new ContainerTag("section"); }
public static ContainerTag select() { return new ContainerTag("select"); }
public static ContainerTag small() { return new ContainerTag("small"); }
public static ContainerTag small(String text) { return new ContainerTag("small").withText(text); }
public static ContainerTag span() { return new ContainerTag("span"); }
public static ContainerTag span(String text) { return new ContainerTag("span").withText(text); }
public static ContainerTag strong() { return new ContainerTag("strong"); }
public static ContainerTag strong(String text) { return new ContainerTag("strong").withText(text); }
public static ContainerTag style() { return new ContainerTag("style"); }
public static ContainerTag sub() { return new ContainerTag("sub"); }
public static ContainerTag sub(String text) { return new ContainerTag("sub").withText(text); }
public static ContainerTag summary() { return new ContainerTag("summary"); }
public static ContainerTag summary(String text) { return new ContainerTag("summary").withText(text); }
public static ContainerTag sup() { return new ContainerTag("sup"); }
public static ContainerTag sup(String text) { return new ContainerTag("sup").withText(text); }
public static ContainerTag table() { return new ContainerTag("table"); }
public static ContainerTag tbody() { return new ContainerTag("tbody"); }
public static ContainerTag td() { return new ContainerTag("td"); }
public static ContainerTag td(String text) { return new ContainerTag("td").withText(text); }
public static ContainerTag textarea() { return new ContainerTag("textarea"); }
public static ContainerTag tfoot() { return new ContainerTag("tfoot"); }
public static ContainerTag th() { return new ContainerTag("th"); }
public static ContainerTag th(String text) { return new ContainerTag("th").withText(text); }
public static ContainerTag thead() { return new ContainerTag("thead"); }
public static ContainerTag time() { return new ContainerTag("time"); }
public static ContainerTag title() { return new ContainerTag("title"); }
public static ContainerTag title(String text) { return new ContainerTag("title").withText(text); }
public static ContainerTag tr() { return new ContainerTag("tr"); }
public static ContainerTag u() { return new ContainerTag("u"); }
public static ContainerTag u(String text) { return new ContainerTag("u").withText(text); }
public static ContainerTag ul() { return new ContainerTag("ul"); }
public static ContainerTag var() { return new ContainerTag("var"); }
public static ContainerTag video() { return new ContainerTag("video"); }
public static EmptyTag base() { return new EmptyTag("base"); }
public static EmptyTag base(Attr.ShortForm shortAttr) { return Attr.addTo(new EmptyTag("base"), shortAttr); }
public static EmptyTag br() { return new EmptyTag("br"); }
public static EmptyTag br(Attr.ShortForm shortAttr) { return Attr.addTo(new EmptyTag("br"), shortAttr); }
public static EmptyTag col() { return new EmptyTag("col"); }
public static EmptyTag col(Attr.ShortForm shortAttr) { return Attr.addTo(new EmptyTag("col"), shortAttr); }
public static EmptyTag embed() { return new EmptyTag("embed"); }
public static EmptyTag embed(Attr.ShortForm shortAttr) { return Attr.addTo(new EmptyTag("embed"), shortAttr); }
public static EmptyTag hr() { return new EmptyTag("hr"); }
public static EmptyTag hr(Attr.ShortForm shortAttr) { return Attr.addTo(new EmptyTag("hr"), shortAttr); }
public static EmptyTag img() { return new EmptyTag("img"); }
public static EmptyTag img(Attr.ShortForm shortAttr) { return Attr.addTo(new EmptyTag("img"), shortAttr); }
public static EmptyTag input() { return new EmptyTag("input"); }
public static EmptyTag input(Attr.ShortForm shortAttr) { return Attr.addTo(new EmptyTag("input"), shortAttr); }
public static EmptyTag keygen() { return new EmptyTag("keygen"); }
public static EmptyTag keygen(Attr.ShortForm shortAttr) { return Attr.addTo(new EmptyTag("keygen"), shortAttr); }
public static EmptyTag link() { return new EmptyTag("link"); }
public static EmptyTag link(Attr.ShortForm shortAttr) { return Attr.addTo(new EmptyTag("link"), shortAttr); }
public static EmptyTag meta() { return new EmptyTag("meta"); }
public static EmptyTag meta(Attr.ShortForm shortAttr) { return Attr.addTo(new EmptyTag("meta"), shortAttr); }
public static EmptyTag param() { return new EmptyTag("param"); }
public static EmptyTag param(Attr.ShortForm shortAttr) { return Attr.addTo(new EmptyTag("param"), shortAttr); }
public static EmptyTag source() { return new EmptyTag("source"); }
public static EmptyTag source(Attr.ShortForm shortAttr) { return Attr.addTo(new EmptyTag("source"), shortAttr); }
public static EmptyTag track() { return new EmptyTag("track"); }
public static EmptyTag track(Attr.ShortForm shortAttr) { return Attr.addTo(new EmptyTag("track"), shortAttr); }
public static EmptyTag wbr() { return new EmptyTag("wbr"); }
public static EmptyTag wbr(Attr.ShortForm shortAttr) { return Attr.addTo(new EmptyTag("wbr"), shortAttr); }
// ContainerTags, generated in class j2html.tags.TagCreatorCodeGenerator
public static ContainerTag a() { return new ContainerTag("a"); }
public static ContainerTag a(String text) { return new ContainerTag("a").withText(text); }
public static ContainerTag a(DomContent... dc) { return new ContainerTag("a").with(dc); }
public static ContainerTag a(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("a"), shortAttr); }
public static ContainerTag a(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("a").withText(text), shortAttr); }
public static ContainerTag a(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("a").with(dc), shortAttr); }
public static ContainerTag abbr() { return new ContainerTag("abbr"); }
public static ContainerTag abbr(String text) { return new ContainerTag("abbr").withText(text); }
public static ContainerTag abbr(DomContent... dc) { return new ContainerTag("abbr").with(dc); }
public static ContainerTag abbr(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("abbr"), shortAttr); }
public static ContainerTag abbr(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("abbr").withText(text), shortAttr); }
public static ContainerTag abbr(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("abbr").with(dc), shortAttr); }
public static ContainerTag address() { return new ContainerTag("address"); }
public static ContainerTag address(String text) { return new ContainerTag("address").withText(text); }
public static ContainerTag address(DomContent... dc) { return new ContainerTag("address").with(dc); }
public static ContainerTag address(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("address"), shortAttr); }
public static ContainerTag address(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("address").withText(text), shortAttr); }
public static ContainerTag address(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("address").with(dc), shortAttr); }
public static ContainerTag article() { return new ContainerTag("article"); }
public static ContainerTag article(String text) { return new ContainerTag("article").withText(text); }
public static ContainerTag article(DomContent... dc) { return new ContainerTag("article").with(dc); }
public static ContainerTag article(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("article"), shortAttr); }
public static ContainerTag article(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("article").withText(text), shortAttr); }
public static ContainerTag article(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("article").with(dc), shortAttr); }
public static ContainerTag aside() { return new ContainerTag("aside"); }
public static ContainerTag aside(String text) { return new ContainerTag("aside").withText(text); }
public static ContainerTag aside(DomContent... dc) { return new ContainerTag("aside").with(dc); }
public static ContainerTag aside(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("aside"), shortAttr); }
public static ContainerTag aside(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("aside").withText(text), shortAttr); }
public static ContainerTag aside(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("aside").with(dc), shortAttr); }
public static ContainerTag audio() { return new ContainerTag("audio"); }
public static ContainerTag audio(String text) { return new ContainerTag("audio").withText(text); }
public static ContainerTag audio(DomContent... dc) { return new ContainerTag("audio").with(dc); }
public static ContainerTag audio(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("audio"), shortAttr); }
public static ContainerTag audio(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("audio").withText(text), shortAttr); }
public static ContainerTag audio(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("audio").with(dc), shortAttr); }
public static ContainerTag b() { return new ContainerTag("b"); }
public static ContainerTag b(String text) { return new ContainerTag("b").withText(text); }
public static ContainerTag b(DomContent... dc) { return new ContainerTag("b").with(dc); }
public static ContainerTag b(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("b"), shortAttr); }
public static ContainerTag b(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("b").withText(text), shortAttr); }
public static ContainerTag b(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("b").with(dc), shortAttr); }
public static ContainerTag bdi() { return new ContainerTag("bdi"); }
public static ContainerTag bdi(String text) { return new ContainerTag("bdi").withText(text); }
public static ContainerTag bdi(DomContent... dc) { return new ContainerTag("bdi").with(dc); }
public static ContainerTag bdi(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("bdi"), shortAttr); }
public static ContainerTag bdi(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("bdi").withText(text), shortAttr); }
public static ContainerTag bdi(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("bdi").with(dc), shortAttr); }
public static ContainerTag bdo() { return new ContainerTag("bdo"); }
public static ContainerTag bdo(String text) { return new ContainerTag("bdo").withText(text); }
public static ContainerTag bdo(DomContent... dc) { return new ContainerTag("bdo").with(dc); }
public static ContainerTag bdo(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("bdo"), shortAttr); }
public static ContainerTag bdo(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("bdo").withText(text), shortAttr); }
public static ContainerTag bdo(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("bdo").with(dc), shortAttr); }
public static ContainerTag blockquote() { return new ContainerTag("blockquote"); }
public static ContainerTag blockquote(String text) { return new ContainerTag("blockquote").withText(text); }
public static ContainerTag blockquote(DomContent... dc) { return new ContainerTag("blockquote").with(dc); }
public static ContainerTag blockquote(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("blockquote"), shortAttr); }
public static ContainerTag blockquote(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("blockquote").withText(text), shortAttr); }
public static ContainerTag blockquote(Attr.ShortForm shortAttr, DomContent... dc){ return Attr.addTo(new ContainerTag("blockquote").with(dc), shortAttr); }
public static ContainerTag body() { return new ContainerTag("body"); }
public static ContainerTag body(String text) { return new ContainerTag("body").withText(text); }
public static ContainerTag body(DomContent... dc) { return new ContainerTag("body").with(dc); }
public static ContainerTag body(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("body"), shortAttr); }
public static ContainerTag body(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("body").withText(text), shortAttr); }
public static ContainerTag body(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("body").with(dc), shortAttr); }
public static ContainerTag button() { return new ContainerTag("button"); }
public static ContainerTag button(String text) { return new ContainerTag("button").withText(text); }
public static ContainerTag button(DomContent... dc) { return new ContainerTag("button").with(dc); }
public static ContainerTag button(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("button"), shortAttr); }
public static ContainerTag button(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("button").withText(text), shortAttr); }
public static ContainerTag button(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("button").with(dc), shortAttr); }
public static ContainerTag canvas() { return new ContainerTag("canvas"); }
public static ContainerTag canvas(String text) { return new ContainerTag("canvas").withText(text); }
public static ContainerTag canvas(DomContent... dc) { return new ContainerTag("canvas").with(dc); }
public static ContainerTag canvas(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("canvas"), shortAttr); }
public static ContainerTag canvas(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("canvas").withText(text), shortAttr); }
public static ContainerTag canvas(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("canvas").with(dc), shortAttr); }
public static ContainerTag caption() { return new ContainerTag("caption"); }
public static ContainerTag caption(String text) { return new ContainerTag("caption").withText(text); }
public static ContainerTag caption(DomContent... dc) { return new ContainerTag("caption").with(dc); }
public static ContainerTag caption(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("caption"), shortAttr); }
public static ContainerTag caption(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("caption").withText(text), shortAttr); }
public static ContainerTag caption(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("caption").with(dc), shortAttr); }
public static ContainerTag cite() { return new ContainerTag("cite"); }
public static ContainerTag cite(String text) { return new ContainerTag("cite").withText(text); }
public static ContainerTag cite(DomContent... dc) { return new ContainerTag("cite").with(dc); }
public static ContainerTag cite(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("cite"), shortAttr); }
public static ContainerTag cite(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("cite").withText(text), shortAttr); }
public static ContainerTag cite(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("cite").with(dc), shortAttr); }
public static ContainerTag code() { return new ContainerTag("code"); }
public static ContainerTag code(String text) { return new ContainerTag("code").withText(text); }
public static ContainerTag code(DomContent... dc) { return new ContainerTag("code").with(dc); }
public static ContainerTag code(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("code"), shortAttr); }
public static ContainerTag code(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("code").withText(text), shortAttr); }
public static ContainerTag code(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("code").with(dc), shortAttr); }
public static ContainerTag colgroup() { return new ContainerTag("colgroup"); }
public static ContainerTag colgroup(String text) { return new ContainerTag("colgroup").withText(text); }
public static ContainerTag colgroup(DomContent... dc) { return new ContainerTag("colgroup").with(dc); }
public static ContainerTag colgroup(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("colgroup"), shortAttr); }
public static ContainerTag colgroup(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("colgroup").withText(text), shortAttr); }
public static ContainerTag colgroup(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("colgroup").with(dc), shortAttr); }
public static ContainerTag datalist() { return new ContainerTag("datalist"); }
public static ContainerTag datalist(String text) { return new ContainerTag("datalist").withText(text); }
public static ContainerTag datalist(DomContent... dc) { return new ContainerTag("datalist").with(dc); }
public static ContainerTag datalist(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("datalist"), shortAttr); }
public static ContainerTag datalist(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("datalist").withText(text), shortAttr); }
public static ContainerTag datalist(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("datalist").with(dc), shortAttr); }
public static ContainerTag dd() { return new ContainerTag("dd"); }
public static ContainerTag dd(String text) { return new ContainerTag("dd").withText(text); }
public static ContainerTag dd(DomContent... dc) { return new ContainerTag("dd").with(dc); }
public static ContainerTag dd(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("dd"), shortAttr); }
public static ContainerTag dd(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("dd").withText(text), shortAttr); }
public static ContainerTag dd(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("dd").with(dc), shortAttr); }
public static ContainerTag del() { return new ContainerTag("del"); }
public static ContainerTag del(String text) { return new ContainerTag("del").withText(text); }
public static ContainerTag del(DomContent... dc) { return new ContainerTag("del").with(dc); }
public static ContainerTag del(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("del"), shortAttr); }
public static ContainerTag del(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("del").withText(text), shortAttr); }
public static ContainerTag del(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("del").with(dc), shortAttr); }
public static ContainerTag details() { return new ContainerTag("details"); }
public static ContainerTag details(String text) { return new ContainerTag("details").withText(text); }
public static ContainerTag details(DomContent... dc) { return new ContainerTag("details").with(dc); }
public static ContainerTag details(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("details"), shortAttr); }
public static ContainerTag details(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("details").withText(text), shortAttr); }
public static ContainerTag details(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("details").with(dc), shortAttr); }
public static ContainerTag dfn() { return new ContainerTag("dfn"); }
public static ContainerTag dfn(String text) { return new ContainerTag("dfn").withText(text); }
public static ContainerTag dfn(DomContent... dc) { return new ContainerTag("dfn").with(dc); }
public static ContainerTag dfn(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("dfn"), shortAttr); }
public static ContainerTag dfn(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("dfn").withText(text), shortAttr); }
public static ContainerTag dfn(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("dfn").with(dc), shortAttr); }
public static ContainerTag dialog() { return new ContainerTag("dialog"); }
public static ContainerTag dialog(String text) { return new ContainerTag("dialog").withText(text); }
public static ContainerTag dialog(DomContent... dc) { return new ContainerTag("dialog").with(dc); }
public static ContainerTag dialog(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("dialog"), shortAttr); }
public static ContainerTag dialog(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("dialog").withText(text), shortAttr); }
public static ContainerTag dialog(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("dialog").with(dc), shortAttr); }
public static ContainerTag div() { return new ContainerTag("div"); }
public static ContainerTag div(String text) { return new ContainerTag("div").withText(text); }
public static ContainerTag div(DomContent... dc) { return new ContainerTag("div").with(dc); }
public static ContainerTag div(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("div"), shortAttr); }
public static ContainerTag div(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("div").withText(text), shortAttr); }
public static ContainerTag div(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("div").with(dc), shortAttr); }
public static ContainerTag dl() { return new ContainerTag("dl"); }
public static ContainerTag dl(String text) { return new ContainerTag("dl").withText(text); }
public static ContainerTag dl(DomContent... dc) { return new ContainerTag("dl").with(dc); }
public static ContainerTag dl(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("dl"), shortAttr); }
public static ContainerTag dl(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("dl").withText(text), shortAttr); }
public static ContainerTag dl(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("dl").with(dc), shortAttr); }
public static ContainerTag dt() { return new ContainerTag("dt"); }
public static ContainerTag dt(String text) { return new ContainerTag("dt").withText(text); }
public static ContainerTag dt(DomContent... dc) { return new ContainerTag("dt").with(dc); }
public static ContainerTag dt(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("dt"), shortAttr); }
public static ContainerTag dt(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("dt").withText(text), shortAttr); }
public static ContainerTag dt(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("dt").with(dc), shortAttr); }
public static ContainerTag em() { return new ContainerTag("em"); }
public static ContainerTag em(String text) { return new ContainerTag("em").withText(text); }
public static ContainerTag em(DomContent... dc) { return new ContainerTag("em").with(dc); }
public static ContainerTag em(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("em"), shortAttr); }
public static ContainerTag em(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("em").withText(text), shortAttr); }
public static ContainerTag em(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("em").with(dc), shortAttr); }
public static ContainerTag fieldset() { return new ContainerTag("fieldset"); }
public static ContainerTag fieldset(String text) { return new ContainerTag("fieldset").withText(text); }
public static ContainerTag fieldset(DomContent... dc) { return new ContainerTag("fieldset").with(dc); }
public static ContainerTag fieldset(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("fieldset"), shortAttr); }
public static ContainerTag fieldset(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("fieldset").withText(text), shortAttr); }
public static ContainerTag fieldset(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("fieldset").with(dc), shortAttr); }
public static ContainerTag figcaption() { return new ContainerTag("figcaption"); }
public static ContainerTag figcaption(String text) { return new ContainerTag("figcaption").withText(text); }
public static ContainerTag figcaption(DomContent... dc) { return new ContainerTag("figcaption").with(dc); }
public static ContainerTag figcaption(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("figcaption"), shortAttr); }
public static ContainerTag figcaption(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("figcaption").withText(text), shortAttr); }
public static ContainerTag figcaption(Attr.ShortForm shortAttr, DomContent... dc){ return Attr.addTo(new ContainerTag("figcaption").with(dc), shortAttr); }
public static ContainerTag figure() { return new ContainerTag("figure"); }
public static ContainerTag figure(String text) { return new ContainerTag("figure").withText(text); }
public static ContainerTag figure(DomContent... dc) { return new ContainerTag("figure").with(dc); }
public static ContainerTag figure(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("figure"), shortAttr); }
public static ContainerTag figure(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("figure").withText(text), shortAttr); }
public static ContainerTag figure(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("figure").with(dc), shortAttr); }
public static ContainerTag footer() { return new ContainerTag("footer"); }
public static ContainerTag footer(String text) { return new ContainerTag("footer").withText(text); }
public static ContainerTag footer(DomContent... dc) { return new ContainerTag("footer").with(dc); }
public static ContainerTag footer(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("footer"), shortAttr); }
public static ContainerTag footer(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("footer").withText(text), shortAttr); }
public static ContainerTag footer(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("footer").with(dc), shortAttr); }
public static ContainerTag form() { return new ContainerTag("form"); }
public static ContainerTag form(String text) { return new ContainerTag("form").withText(text); }
public static ContainerTag form(DomContent... dc) { return new ContainerTag("form").with(dc); }
public static ContainerTag form(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("form"), shortAttr); }
public static ContainerTag form(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("form").withText(text), shortAttr); }
public static ContainerTag form(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("form").with(dc), shortAttr); }
public static ContainerTag h1() { return new ContainerTag("h1"); }
public static ContainerTag h1(String text) { return new ContainerTag("h1").withText(text); }
public static ContainerTag h1(DomContent... dc) { return new ContainerTag("h1").with(dc); }
public static ContainerTag h1(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("h1"), shortAttr); }
public static ContainerTag h1(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("h1").withText(text), shortAttr); }
public static ContainerTag h1(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("h1").with(dc), shortAttr); }
public static ContainerTag h2() { return new ContainerTag("h2"); }
public static ContainerTag h2(String text) { return new ContainerTag("h2").withText(text); }
public static ContainerTag h2(DomContent... dc) { return new ContainerTag("h2").with(dc); }
public static ContainerTag h2(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("h2"), shortAttr); }
public static ContainerTag h2(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("h2").withText(text), shortAttr); }
public static ContainerTag h2(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("h2").with(dc), shortAttr); }
public static ContainerTag h3() { return new ContainerTag("h3"); }
public static ContainerTag h3(String text) { return new ContainerTag("h3").withText(text); }
public static ContainerTag h3(DomContent... dc) { return new ContainerTag("h3").with(dc); }
public static ContainerTag h3(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("h3"), shortAttr); }
public static ContainerTag h3(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("h3").withText(text), shortAttr); }
public static ContainerTag h3(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("h3").with(dc), shortAttr); }
public static ContainerTag h4() { return new ContainerTag("h4"); }
public static ContainerTag h4(String text) { return new ContainerTag("h4").withText(text); }
public static ContainerTag h4(DomContent... dc) { return new ContainerTag("h4").with(dc); }
public static ContainerTag h4(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("h4"), shortAttr); }
public static ContainerTag h4(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("h4").withText(text), shortAttr); }
public static ContainerTag h4(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("h4").with(dc), shortAttr); }
public static ContainerTag h5() { return new ContainerTag("h5"); }
public static ContainerTag h5(String text) { return new ContainerTag("h5").withText(text); }
public static ContainerTag h5(DomContent... dc) { return new ContainerTag("h5").with(dc); }
public static ContainerTag h5(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("h5"), shortAttr); }
public static ContainerTag h5(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("h5").withText(text), shortAttr); }
public static ContainerTag h5(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("h5").with(dc), shortAttr); }
public static ContainerTag h6() { return new ContainerTag("h6"); }
public static ContainerTag h6(String text) { return new ContainerTag("h6").withText(text); }
public static ContainerTag h6(DomContent... dc) { return new ContainerTag("h6").with(dc); }
public static ContainerTag h6(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("h6"), shortAttr); }
public static ContainerTag h6(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("h6").withText(text), shortAttr); }
public static ContainerTag h6(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("h6").with(dc), shortAttr); }
public static ContainerTag head() { return new ContainerTag("head"); }
public static ContainerTag head(String text) { return new ContainerTag("head").withText(text); }
public static ContainerTag head(DomContent... dc) { return new ContainerTag("head").with(dc); }
public static ContainerTag head(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("head"), shortAttr); }
public static ContainerTag head(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("head").withText(text), shortAttr); }
public static ContainerTag head(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("head").with(dc), shortAttr); }
public static ContainerTag header() { return new ContainerTag("header"); }
public static ContainerTag header(String text) { return new ContainerTag("header").withText(text); }
public static ContainerTag header(DomContent... dc) { return new ContainerTag("header").with(dc); }
public static ContainerTag header(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("header"), shortAttr); }
public static ContainerTag header(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("header").withText(text), shortAttr); }
public static ContainerTag header(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("header").with(dc), shortAttr); }
public static ContainerTag html() { return new ContainerTag("html"); }
public static ContainerTag html(String text) { return new ContainerTag("html").withText(text); }
public static ContainerTag html(DomContent... dc) { return new ContainerTag("html").with(dc); }
public static ContainerTag html(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("html"), shortAttr); }
public static ContainerTag html(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("html").withText(text), shortAttr); }
public static ContainerTag html(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("html").with(dc), shortAttr); }
public static ContainerTag i() { return new ContainerTag("i"); }
public static ContainerTag i(String text) { return new ContainerTag("i").withText(text); }
public static ContainerTag i(DomContent... dc) { return new ContainerTag("i").with(dc); }
public static ContainerTag i(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("i"), shortAttr); }
public static ContainerTag i(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("i").withText(text), shortAttr); }
public static ContainerTag i(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("i").with(dc), shortAttr); }
public static ContainerTag iframe() { return new ContainerTag("iframe"); }
public static ContainerTag iframe(String text) { return new ContainerTag("iframe").withText(text); }
public static ContainerTag iframe(DomContent... dc) { return new ContainerTag("iframe").with(dc); }
public static ContainerTag iframe(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("iframe"), shortAttr); }
public static ContainerTag iframe(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("iframe").withText(text), shortAttr); }
public static ContainerTag iframe(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("iframe").with(dc), shortAttr); }
public static ContainerTag ins() { return new ContainerTag("ins"); }
public static ContainerTag ins(String text) { return new ContainerTag("ins").withText(text); }
public static ContainerTag ins(DomContent... dc) { return new ContainerTag("ins").with(dc); }
public static ContainerTag ins(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("ins"), shortAttr); }
public static ContainerTag ins(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("ins").withText(text), shortAttr); }
public static ContainerTag ins(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("ins").with(dc), shortAttr); }
public static ContainerTag kbd() { return new ContainerTag("kbd"); }
public static ContainerTag kbd(String text) { return new ContainerTag("kbd").withText(text); }
public static ContainerTag kbd(DomContent... dc) { return new ContainerTag("kbd").with(dc); }
public static ContainerTag kbd(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("kbd"), shortAttr); }
public static ContainerTag kbd(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("kbd").withText(text), shortAttr); }
public static ContainerTag kbd(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("kbd").with(dc), shortAttr); }
public static ContainerTag label() { return new ContainerTag("label"); }
public static ContainerTag label(String text) { return new ContainerTag("label").withText(text); }
public static ContainerTag label(DomContent... dc) { return new ContainerTag("label").with(dc); }
public static ContainerTag label(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("label"), shortAttr); }
public static ContainerTag label(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("label").withText(text), shortAttr); }
public static ContainerTag label(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("label").with(dc), shortAttr); }
public static ContainerTag legend() { return new ContainerTag("legend"); }
public static ContainerTag legend(String text) { return new ContainerTag("legend").withText(text); }
public static ContainerTag legend(DomContent... dc) { return new ContainerTag("legend").with(dc); }
public static ContainerTag legend(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("legend"), shortAttr); }
public static ContainerTag legend(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("legend").withText(text), shortAttr); }
public static ContainerTag legend(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("legend").with(dc), shortAttr); }
public static ContainerTag li() { return new ContainerTag("li"); }
public static ContainerTag li(String text) { return new ContainerTag("li").withText(text); }
public static ContainerTag li(DomContent... dc) { return new ContainerTag("li").with(dc); }
public static ContainerTag li(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("li"), shortAttr); }
public static ContainerTag li(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("li").withText(text), shortAttr); }
public static ContainerTag li(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("li").with(dc), shortAttr); }
public static ContainerTag main() { return new ContainerTag("main"); }
public static ContainerTag main(String text) { return new ContainerTag("main").withText(text); }
public static ContainerTag main(DomContent... dc) { return new ContainerTag("main").with(dc); }
public static ContainerTag main(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("main"), shortAttr); }
public static ContainerTag main(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("main").withText(text), shortAttr); }
public static ContainerTag main(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("main").with(dc), shortAttr); }
public static ContainerTag map() { return new ContainerTag("map"); }
public static ContainerTag map(String text) { return new ContainerTag("map").withText(text); }
public static ContainerTag map(DomContent... dc) { return new ContainerTag("map").with(dc); }
public static ContainerTag map(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("map"), shortAttr); }
public static ContainerTag map(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("map").withText(text), shortAttr); }
public static ContainerTag map(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("map").with(dc), shortAttr); }
public static ContainerTag mark() { return new ContainerTag("mark"); }
public static ContainerTag mark(String text) { return new ContainerTag("mark").withText(text); }
public static ContainerTag mark(DomContent... dc) { return new ContainerTag("mark").with(dc); }
public static ContainerTag mark(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("mark"), shortAttr); }
public static ContainerTag mark(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("mark").withText(text), shortAttr); }
public static ContainerTag mark(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("mark").with(dc), shortAttr); }
public static ContainerTag menu() { return new ContainerTag("menu"); }
public static ContainerTag menu(String text) { return new ContainerTag("menu").withText(text); }
public static ContainerTag menu(DomContent... dc) { return new ContainerTag("menu").with(dc); }
public static ContainerTag menu(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("menu"), shortAttr); }
public static ContainerTag menu(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("menu").withText(text), shortAttr); }
public static ContainerTag menu(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("menu").with(dc), shortAttr); }
public static ContainerTag menuitem() { return new ContainerTag("menuitem"); }
public static ContainerTag menuitem(String text) { return new ContainerTag("menuitem").withText(text); }
public static ContainerTag menuitem(DomContent... dc) { return new ContainerTag("menuitem").with(dc); }
public static ContainerTag menuitem(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("menuitem"), shortAttr); }
public static ContainerTag menuitem(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("menuitem").withText(text), shortAttr); }
public static ContainerTag menuitem(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("menuitem").with(dc), shortAttr); }
public static ContainerTag meter() { return new ContainerTag("meter"); }
public static ContainerTag meter(String text) { return new ContainerTag("meter").withText(text); }
public static ContainerTag meter(DomContent... dc) { return new ContainerTag("meter").with(dc); }
public static ContainerTag meter(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("meter"), shortAttr); }
public static ContainerTag meter(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("meter").withText(text), shortAttr); }
public static ContainerTag meter(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("meter").with(dc), shortAttr); }
public static ContainerTag nav() { return new ContainerTag("nav"); }
public static ContainerTag nav(String text) { return new ContainerTag("nav").withText(text); }
public static ContainerTag nav(DomContent... dc) { return new ContainerTag("nav").with(dc); }
public static ContainerTag nav(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("nav"), shortAttr); }
public static ContainerTag nav(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("nav").withText(text), shortAttr); }
public static ContainerTag nav(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("nav").with(dc), shortAttr); }
public static ContainerTag noscript() { return new ContainerTag("noscript"); }
public static ContainerTag noscript(String text) { return new ContainerTag("noscript").withText(text); }
public static ContainerTag noscript(DomContent... dc) { return new ContainerTag("noscript").with(dc); }
public static ContainerTag noscript(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("noscript"), shortAttr); }
public static ContainerTag noscript(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("noscript").withText(text), shortAttr); }
public static ContainerTag noscript(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("noscript").with(dc), shortAttr); }
public static ContainerTag object() { return new ContainerTag("object"); }
public static ContainerTag object(String text) { return new ContainerTag("object").withText(text); }
public static ContainerTag object(DomContent... dc) { return new ContainerTag("object").with(dc); }
public static ContainerTag object(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("object"), shortAttr); }
public static ContainerTag object(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("object").withText(text), shortAttr); }
public static ContainerTag object(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("object").with(dc), shortAttr); }
public static ContainerTag ol() { return new ContainerTag("ol"); }
public static ContainerTag ol(String text) { return new ContainerTag("ol").withText(text); }
public static ContainerTag ol(DomContent... dc) { return new ContainerTag("ol").with(dc); }
public static ContainerTag ol(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("ol"), shortAttr); }
public static ContainerTag ol(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("ol").withText(text), shortAttr); }
public static ContainerTag ol(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("ol").with(dc), shortAttr); }
public static ContainerTag optgroup() { return new ContainerTag("optgroup"); }
public static ContainerTag optgroup(String text) { return new ContainerTag("optgroup").withText(text); }
public static ContainerTag optgroup(DomContent... dc) { return new ContainerTag("optgroup").with(dc); }
public static ContainerTag optgroup(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("optgroup"), shortAttr); }
public static ContainerTag optgroup(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("optgroup").withText(text), shortAttr); }
public static ContainerTag optgroup(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("optgroup").with(dc), shortAttr); }
public static ContainerTag option() { return new ContainerTag("option"); }
public static ContainerTag option(String text) { return new ContainerTag("option").withText(text); }
public static ContainerTag option(DomContent... dc) { return new ContainerTag("option").with(dc); }
public static ContainerTag option(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("option"), shortAttr); }
public static ContainerTag option(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("option").withText(text), shortAttr); }
public static ContainerTag option(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("option").with(dc), shortAttr); }
public static ContainerTag output() { return new ContainerTag("output"); }
public static ContainerTag output(String text) { return new ContainerTag("output").withText(text); }
public static ContainerTag output(DomContent... dc) { return new ContainerTag("output").with(dc); }
public static ContainerTag output(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("output"), shortAttr); }
public static ContainerTag output(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("output").withText(text), shortAttr); }
public static ContainerTag output(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("output").with(dc), shortAttr); }
public static ContainerTag p() { return new ContainerTag("p"); }
public static ContainerTag p(String text) { return new ContainerTag("p").withText(text); }
public static ContainerTag p(DomContent... dc) { return new ContainerTag("p").with(dc); }
public static ContainerTag p(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("p"), shortAttr); }
public static ContainerTag p(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("p").withText(text), shortAttr); }
public static ContainerTag p(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("p").with(dc), shortAttr); }
public static ContainerTag pre() { return new ContainerTag("pre"); }
public static ContainerTag pre(String text) { return new ContainerTag("pre").withText(text); }
public static ContainerTag pre(DomContent... dc) { return new ContainerTag("pre").with(dc); }
public static ContainerTag pre(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("pre"), shortAttr); }
public static ContainerTag pre(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("pre").withText(text), shortAttr); }
public static ContainerTag pre(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("pre").with(dc), shortAttr); }
public static ContainerTag progress() { return new ContainerTag("progress"); }
public static ContainerTag progress(String text) { return new ContainerTag("progress").withText(text); }
public static ContainerTag progress(DomContent... dc) { return new ContainerTag("progress").with(dc); }
public static ContainerTag progress(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("progress"), shortAttr); }
public static ContainerTag progress(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("progress").withText(text), shortAttr); }
public static ContainerTag progress(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("progress").with(dc), shortAttr); }
public static ContainerTag q() { return new ContainerTag("q"); }
public static ContainerTag q(String text) { return new ContainerTag("q").withText(text); }
public static ContainerTag q(DomContent... dc) { return new ContainerTag("q").with(dc); }
public static ContainerTag q(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("q"), shortAttr); }
public static ContainerTag q(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("q").withText(text), shortAttr); }
public static ContainerTag q(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("q").with(dc), shortAttr); }
public static ContainerTag rp() { return new ContainerTag("rp"); }
public static ContainerTag rp(String text) { return new ContainerTag("rp").withText(text); }
public static ContainerTag rp(DomContent... dc) { return new ContainerTag("rp").with(dc); }
public static ContainerTag rp(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("rp"), shortAttr); }
public static ContainerTag rp(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("rp").withText(text), shortAttr); }
public static ContainerTag rp(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("rp").with(dc), shortAttr); }
public static ContainerTag rt() { return new ContainerTag("rt"); }
public static ContainerTag rt(String text) { return new ContainerTag("rt").withText(text); }
public static ContainerTag rt(DomContent... dc) { return new ContainerTag("rt").with(dc); }
public static ContainerTag rt(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("rt"), shortAttr); }
public static ContainerTag rt(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("rt").withText(text), shortAttr); }
public static ContainerTag rt(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("rt").with(dc), shortAttr); }
public static ContainerTag ruby() { return new ContainerTag("ruby"); }
public static ContainerTag ruby(String text) { return new ContainerTag("ruby").withText(text); }
public static ContainerTag ruby(DomContent... dc) { return new ContainerTag("ruby").with(dc); }
public static ContainerTag ruby(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("ruby"), shortAttr); }
public static ContainerTag ruby(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("ruby").withText(text), shortAttr); }
public static ContainerTag ruby(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("ruby").with(dc), shortAttr); }
public static ContainerTag s() { return new ContainerTag("s"); }
public static ContainerTag s(String text) { return new ContainerTag("s").withText(text); }
public static ContainerTag s(DomContent... dc) { return new ContainerTag("s").with(dc); }
public static ContainerTag s(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("s"), shortAttr); }
public static ContainerTag s(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("s").withText(text), shortAttr); }
public static ContainerTag s(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("s").with(dc), shortAttr); }
public static ContainerTag samp() { return new ContainerTag("samp"); }
public static ContainerTag samp(String text) { return new ContainerTag("samp").withText(text); }
public static ContainerTag samp(DomContent... dc) { return new ContainerTag("samp").with(dc); }
public static ContainerTag samp(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("samp"), shortAttr); }
public static ContainerTag samp(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("samp").withText(text), shortAttr); }
public static ContainerTag samp(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("samp").with(dc), shortAttr); }
public static ContainerTag script() { return new ContainerTag("script"); }
public static ContainerTag script(String text) { return new ContainerTag("script").withText(text); }
public static ContainerTag script(DomContent... dc) { return new ContainerTag("script").with(dc); }
public static ContainerTag script(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("script"), shortAttr); }
public static ContainerTag script(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("script").withText(text), shortAttr); }
public static ContainerTag script(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("script").with(dc), shortAttr); }
public static ContainerTag section() { return new ContainerTag("section"); }
public static ContainerTag section(String text) { return new ContainerTag("section").withText(text); }
public static ContainerTag section(DomContent... dc) { return new ContainerTag("section").with(dc); }
public static ContainerTag section(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("section"), shortAttr); }
public static ContainerTag section(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("section").withText(text), shortAttr); }
public static ContainerTag section(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("section").with(dc), shortAttr); }
public static ContainerTag select() { return new ContainerTag("select"); }
public static ContainerTag select(String text) { return new ContainerTag("select").withText(text); }
public static ContainerTag select(DomContent... dc) { return new ContainerTag("select").with(dc); }
public static ContainerTag select(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("select"), shortAttr); }
public static ContainerTag select(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("select").withText(text), shortAttr); }
public static ContainerTag select(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("select").with(dc), shortAttr); }
public static ContainerTag small() { return new ContainerTag("small"); }
public static ContainerTag small(String text) { return new ContainerTag("small").withText(text); }
public static ContainerTag small(DomContent... dc) { return new ContainerTag("small").with(dc); }
public static ContainerTag small(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("small"), shortAttr); }
public static ContainerTag small(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("small").withText(text), shortAttr); }
public static ContainerTag small(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("small").with(dc), shortAttr); }
public static ContainerTag span() { return new ContainerTag("span"); }
public static ContainerTag span(String text) { return new ContainerTag("span").withText(text); }
public static ContainerTag span(DomContent... dc) { return new ContainerTag("span").with(dc); }
public static ContainerTag span(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("span"), shortAttr); }
public static ContainerTag span(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("span").withText(text), shortAttr); }
public static ContainerTag span(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("span").with(dc), shortAttr); }
public static ContainerTag strong() { return new ContainerTag("strong"); }
public static ContainerTag strong(String text) { return new ContainerTag("strong").withText(text); }
public static ContainerTag strong(DomContent... dc) { return new ContainerTag("strong").with(dc); }
public static ContainerTag strong(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("strong"), shortAttr); }
public static ContainerTag strong(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("strong").withText(text), shortAttr); }
public static ContainerTag strong(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("strong").with(dc), shortAttr); }
public static ContainerTag style() { return new ContainerTag("style"); }
public static ContainerTag style(String text) { return new ContainerTag("style").withText(text); }
public static ContainerTag style(DomContent... dc) { return new ContainerTag("style").with(dc); }
public static ContainerTag style(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("style"), shortAttr); }
public static ContainerTag style(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("style").withText(text), shortAttr); }
public static ContainerTag style(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("style").with(dc), shortAttr); }
public static ContainerTag sub() { return new ContainerTag("sub"); }
public static ContainerTag sub(String text) { return new ContainerTag("sub").withText(text); }
public static ContainerTag sub(DomContent... dc) { return new ContainerTag("sub").with(dc); }
public static ContainerTag sub(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("sub"), shortAttr); }
public static ContainerTag sub(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("sub").withText(text), shortAttr); }
public static ContainerTag sub(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("sub").with(dc), shortAttr); }
public static ContainerTag summary() { return new ContainerTag("summary"); }
public static ContainerTag summary(String text) { return new ContainerTag("summary").withText(text); }
public static ContainerTag summary(DomContent... dc) { return new ContainerTag("summary").with(dc); }
public static ContainerTag summary(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("summary"), shortAttr); }
public static ContainerTag summary(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("summary").withText(text), shortAttr); }
public static ContainerTag summary(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("summary").with(dc), shortAttr); }
public static ContainerTag sup() { return new ContainerTag("sup"); }
public static ContainerTag sup(String text) { return new ContainerTag("sup").withText(text); }
public static ContainerTag sup(DomContent... dc) { return new ContainerTag("sup").with(dc); }
public static ContainerTag sup(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("sup"), shortAttr); }
public static ContainerTag sup(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("sup").withText(text), shortAttr); }
public static ContainerTag sup(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("sup").with(dc), shortAttr); }
public static ContainerTag table() { return new ContainerTag("table"); }
public static ContainerTag table(String text) { return new ContainerTag("table").withText(text); }
public static ContainerTag table(DomContent... dc) { return new ContainerTag("table").with(dc); }
public static ContainerTag table(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("table"), shortAttr); }
public static ContainerTag table(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("table").withText(text), shortAttr); }
public static ContainerTag table(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("table").with(dc), shortAttr); }
public static ContainerTag tbody() { return new ContainerTag("tbody"); }
public static ContainerTag tbody(String text) { return new ContainerTag("tbody").withText(text); }
public static ContainerTag tbody(DomContent... dc) { return new ContainerTag("tbody").with(dc); }
public static ContainerTag tbody(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("tbody"), shortAttr); }
public static ContainerTag tbody(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("tbody").withText(text), shortAttr); }
public static ContainerTag tbody(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("tbody").with(dc), shortAttr); }
public static ContainerTag td() { return new ContainerTag("td"); }
public static ContainerTag td(String text) { return new ContainerTag("td").withText(text); }
public static ContainerTag td(DomContent... dc) { return new ContainerTag("td").with(dc); }
public static ContainerTag td(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("td"), shortAttr); }
public static ContainerTag td(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("td").withText(text), shortAttr); }
public static ContainerTag td(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("td").with(dc), shortAttr); }
public static ContainerTag textarea() { return new ContainerTag("textarea"); }
public static ContainerTag textarea(String text) { return new ContainerTag("textarea").withText(text); }
public static ContainerTag textarea(DomContent... dc) { return new ContainerTag("textarea").with(dc); }
public static ContainerTag textarea(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("textarea"), shortAttr); }
public static ContainerTag textarea(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("textarea").withText(text), shortAttr); }
public static ContainerTag textarea(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("textarea").with(dc), shortAttr); }
public static ContainerTag tfoot() { return new ContainerTag("tfoot"); }
public static ContainerTag tfoot(String text) { return new ContainerTag("tfoot").withText(text); }
public static ContainerTag tfoot(DomContent... dc) { return new ContainerTag("tfoot").with(dc); }
public static ContainerTag tfoot(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("tfoot"), shortAttr); }
public static ContainerTag tfoot(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("tfoot").withText(text), shortAttr); }
public static ContainerTag tfoot(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("tfoot").with(dc), shortAttr); }
public static ContainerTag th() { return new ContainerTag("th"); }
public static ContainerTag th(String text) { return new ContainerTag("th").withText(text); }
public static ContainerTag th(DomContent... dc) { return new ContainerTag("th").with(dc); }
public static ContainerTag th(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("th"), shortAttr); }
public static ContainerTag th(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("th").withText(text), shortAttr); }
public static ContainerTag th(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("th").with(dc), shortAttr); }
public static ContainerTag thead() { return new ContainerTag("thead"); }
public static ContainerTag thead(String text) { return new ContainerTag("thead").withText(text); }
public static ContainerTag thead(DomContent... dc) { return new ContainerTag("thead").with(dc); }
public static ContainerTag thead(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("thead"), shortAttr); }
public static ContainerTag thead(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("thead").withText(text), shortAttr); }
public static ContainerTag thead(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("thead").with(dc), shortAttr); }
public static ContainerTag time() { return new ContainerTag("time"); }
public static ContainerTag time(String text) { return new ContainerTag("time").withText(text); }
public static ContainerTag time(DomContent... dc) { return new ContainerTag("time").with(dc); }
public static ContainerTag time(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("time"), shortAttr); }
public static ContainerTag time(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("time").withText(text), shortAttr); }
public static ContainerTag time(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("time").with(dc), shortAttr); }
public static ContainerTag title() { return new ContainerTag("title"); }
public static ContainerTag title(String text) { return new ContainerTag("title").withText(text); }
public static ContainerTag title(DomContent... dc) { return new ContainerTag("title").with(dc); }
public static ContainerTag title(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("title"), shortAttr); }
public static ContainerTag title(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("title").withText(text), shortAttr); }
public static ContainerTag title(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("title").with(dc), shortAttr); }
public static ContainerTag tr() { return new ContainerTag("tr"); }
public static ContainerTag tr(String text) { return new ContainerTag("tr").withText(text); }
public static ContainerTag tr(DomContent... dc) { return new ContainerTag("tr").with(dc); }
public static ContainerTag tr(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("tr"), shortAttr); }
public static ContainerTag tr(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("tr").withText(text), shortAttr); }
public static ContainerTag tr(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("tr").with(dc), shortAttr); }
public static ContainerTag u() { return new ContainerTag("u"); }
public static ContainerTag u(String text) { return new ContainerTag("u").withText(text); }
public static ContainerTag u(DomContent... dc) { return new ContainerTag("u").with(dc); }
public static ContainerTag u(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("u"), shortAttr); }
public static ContainerTag u(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("u").withText(text), shortAttr); }
public static ContainerTag u(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("u").with(dc), shortAttr); }
public static ContainerTag ul() { return new ContainerTag("ul"); }
public static ContainerTag ul(String text) { return new ContainerTag("ul").withText(text); }
public static ContainerTag ul(DomContent... dc) { return new ContainerTag("ul").with(dc); }
public static ContainerTag ul(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("ul"), shortAttr); }
public static ContainerTag ul(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("ul").withText(text), shortAttr); }
public static ContainerTag ul(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("ul").with(dc), shortAttr); }
public static ContainerTag var() { return new ContainerTag("var"); }
public static ContainerTag var(String text) { return new ContainerTag("var").withText(text); }
public static ContainerTag var(DomContent... dc) { return new ContainerTag("var").with(dc); }
public static ContainerTag var(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("var"), shortAttr); }
public static ContainerTag var(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("var").withText(text), shortAttr); }
public static ContainerTag var(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("var").with(dc), shortAttr); }
public static ContainerTag video() { return new ContainerTag("video"); }
public static ContainerTag video(String text) { return new ContainerTag("video").withText(text); }
public static ContainerTag video(DomContent... dc) { return new ContainerTag("video").with(dc); }
public static ContainerTag video(Attr.ShortForm shortAttr) { return Attr.addTo(new ContainerTag("video"), shortAttr); }
public static ContainerTag video(Attr.ShortForm shortAttr, String text) { return Attr.addTo(new ContainerTag("video").withText(text), shortAttr); }
public static ContainerTag video(Attr.ShortForm shortAttr, DomContent... dc) { return Attr.addTo(new ContainerTag("video").with(dc), shortAttr); }
}

View File

@@ -1,7 +1,62 @@
package j2html.attributes;
import j2html.tags.Tag;
public class Attr {
public static class ShortForm {
String id;
String classes;
private ShortForm(String id, String classes) {
this.id = id;
this.classes = classes;
}
boolean hasId() {
return id != null && !"".equals(id);
}
boolean hasClasses() {
return classes != null && !"".equals(classes);
}
}
public static ShortForm shortFormFromAttrsString(String attrs) {
if (!attrs.contains(".") && !attrs.contains(("#"))) {
throw new IllegalArgumentException("String must contain either id (#) or class (.)");
}
if (attrs.split("#").length > 2) {
throw new IllegalArgumentException("Only one id (#) allowed");
}
String id = "";
StringBuilder classes = new StringBuilder();
for (String attr : attrs.split("\\.")) {
if (attr.contains("#")) {
if (!attr.startsWith("#")) {
throw new IllegalArgumentException("# cannot be in the middle of string");
}
id = attr.replace("#", "");
} else {
classes.append(attr).append(" ");
}
}
return new ShortForm(id.trim(), classes.toString().trim());
}
public static <T extends Tag<T>> T addTo(T tag, ShortForm shortForm) {
if (shortForm.hasId() && shortForm.hasClasses()) {
return tag.withId(shortForm.id).withClass(shortForm.classes);
}
if (shortForm.hasId()) {
return tag.withId(shortForm.id);
}
if (shortForm.hasClasses()) {
return tag.withClass(shortForm.classes);
}
return tag;
}
private Attr() {
}

View File

@@ -1,7 +1,7 @@
package j2html.attributes;
import j2html.utils.SimpleEscaper;
import j2html.Config;
public class Attribute {
private String name;
@@ -9,7 +9,7 @@ public class Attribute {
public Attribute(String name, String value) {
this.name = name;
this.value = SimpleEscaper.escape(value);
this.value = Config.textEscaper.escape(value);
}
public Attribute(String name) {

View File

@@ -10,7 +10,7 @@ public class ContainerTag extends Tag<ContainerTag> {
public ContainerTag(String tagName) {
super(tagName);
this.children = new ArrayList<>();
this.children = new ArrayList<DomContent>();
}
@@ -111,7 +111,13 @@ public class ContainerTag extends Tag<ContainerTag> {
return with(new Text(text));
}
/**
* Gets number of child nodes this tag element contains
*/
public int getNumChildren() {
return children.size();
}
/**
* Render the ContainerTag and its children
*

View File

@@ -0,0 +1,24 @@
package j2html.tags;
public class DomContentJoiner {
public static UnescapedText join(CharSequence delimiter, boolean fixPeriodAndCommaSpacing, Object... stringOrDomObjects) {
StringBuilder sb = new StringBuilder();
for (Object o : stringOrDomObjects) {
if (o instanceof String) {
sb.append(((String) o).trim()).append(delimiter);
} else if (o instanceof DomContent) {
sb.append(((DomContent) o).render().trim()).append(delimiter);
} else {
throw new RuntimeException("You can only join DomContent and String objects");
}
}
String joined = sb.toString().trim();
if (fixPeriodAndCommaSpacing) {
joined = joined.replaceAll("\\s\\.", ".");
joined = joined.replaceAll("\\s\\,", ",");
}
return new UnescapedText(joined);
}
}

View File

@@ -1,16 +1,13 @@
package j2html.tags;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import j2html.utils.CSSMin;
import j2html.utils.JSMin;
import static j2html.TagCreator.rawHtml;
import static j2html.TagCreator.script;
import static j2html.TagCreator.style;
import static j2html.TagCreator.*;
public class InlineStaticResource {
@@ -29,18 +26,27 @@ public class InlineStaticResource {
public static String getFileAsString(String path) {
try {
return readFileAsString(Paths.get(InlineStaticResource.class.getResource(path).toURI()));
return readFileAsString(InlineStaticResource.class.getResource(path).getPath());
} catch (Exception e1) {
try {
return readFileAsString(Paths.get(path));
return readFileAsString(path);
} catch (Exception e2) {
throw new RuntimeException("Couldn't find file with path='" + path + "'");
}
}
}
private static String readFileAsString(Path path) throws IOException {
return new String(Files.readAllBytes(path), "UTF-8");
/**
* @author kjheimark <3
*/
private static String readFileAsString(String path) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new FileReader(path));
StringBuilder sb = new StringBuilder();
int c;
while ((c = bufferedReader.read()) >= 0 && c >= 0) {
sb.append((char) c);
}
return sb.toString();
}
}

View File

@@ -14,9 +14,12 @@ public abstract class Tag<T extends Tag<T>> extends DomContent {
protected Tag(String tagName) {
this.tagName = tagName;
this.attributes = new ArrayList<>();
this.attributes = new ArrayList<Attribute>();
}
public String getTagName() {
return this.tagName;
}
String renderOpenTag() {
StringBuilder sb = new StringBuilder("<").append(tagName);
@@ -65,6 +68,17 @@ public abstract class Tag<T extends Tag<T>> extends DomContent {
return (T) this;
}
/**
* Sets a custom attribute without value
*
* @param attribute the attribute name
* @return itself for easy chaining
* @see Tag#attr(String, String)
*/
public T attr(String attribute) {
return attr(attribute, null);
}
/**
* Call attr-method based on condition
@@ -95,12 +109,11 @@ public abstract class Tag<T extends Tag<T>> extends DomContent {
*/
public T withClasses(String... classes) {
return attr(Attr.CLASS,
Stream.of(classes)
.map(c -> c != null ? c : "")
.collect(Collectors.joining(" "))
.trim()
);
StringBuilder sb = new StringBuilder();
for (String s : classes) {
sb.append(s != null ? s : "").append(" ");
}
return attr(Attr.CLASS, sb.toString().trim());
}
public T isAutoComplete() { return attr(Attr.AUTOCOMPLETE, null); }

View File

@@ -0,0 +1,167 @@
package j2html.tags;
import java.util.Arrays;
import java.util.List;
class TagCreatorCodeGenerator {
public static void main(String[] args) {
System.out.println("// EmptyTags, generated in " + TagCreatorCodeGenerator.class);
for (String tag : emptyTags()) {
String emptyA1 = "public static EmptyTag " + tag + "()";
String emptyA2 = "{ return new EmptyTag(\"" + tag + "\"); }";
// Attr shorthands
String emptyB1 = "public static EmptyTag " + tag + "(Attr.ShortForm shortAttr)";
String emptyB2 = "{ return Attr.addTo(new EmptyTag(\"" + tag + "\"), shortAttr); }";
// Print
System.out.println(String.format("%-80s%1s", emptyA1, emptyA2));
System.out.println(String.format("%-80s%1s", emptyB1, emptyB2));
System.out.println("");
}
System.out.println("// ContainerTags, generated in " + TagCreatorCodeGenerator.class);
for (String tag : containerTags()) {
String containerA1 = "public static ContainerTag " + tag + "()";
String containerA2 = "{ return new ContainerTag(\"" + tag + "\"); }";
String containerB1 = "public static ContainerTag " + tag + "(String text)";
String containerB2 = "{ return new ContainerTag(\"" + tag + "\").withText(text); }";
String containerC1 = "public static ContainerTag " + tag + "(DomContent... dc)";
String containerC2 = "{ return new ContainerTag(\"" + tag + "\").with(dc); }";
// Attr shorthands
String containerD1 = "public static ContainerTag " + tag + "(Attr.ShortForm shortAttr)";
String containerD2 = "{ return Attr.addTo(new ContainerTag(\"" + tag + "\"), shortAttr); }";
String containerE1 = "public static ContainerTag " + tag + "(Attr.ShortForm shortAttr, String text)";
String containerE2 = "{ return Attr.addTo(new ContainerTag(\"" + tag + "\").withText(text), shortAttr); }";
String containerF1 = "public static ContainerTag " + tag + "(Attr.ShortForm shortAttr, DomContent... dc)";
String containerF2 = "{ return Attr.addTo(new ContainerTag(\"" + tag + "\").with(dc), shortAttr); }";
// Print
System.out.println(String.format("%-80s%1s", containerA1, containerA2));
System.out.println(String.format("%-80s%1s", containerB1, containerB2));
System.out.println(String.format("%-80s%1s", containerC1, containerC2));
System.out.println(String.format("%-80s%1s", containerD1, containerD2));
System.out.println(String.format("%-80s%1s", containerE1, containerE2));
System.out.println(String.format("%-80s%1s", containerF1, containerF2));
System.out.println("");
}
}
// This is a method that contains all ContainerTags, there is nothing below it
private static List<String> emptyTags() {
return Arrays.asList(
"area",
"base",
"br",
"col",
//"!DOCTYPE html",
"embed",
"hr",
"img",
"input",
"keygen",
"link",
"meta",
"param",
"source",
"track",
"wbr"
);
}
private static List<String> containerTags() {
return Arrays.asList(
"a",
"abbr",
"address",
"article",
"aside",
"audio",
"b",
"bdi",
"bdo",
"blockquote",
"body",
"button",
"canvas",
"caption",
"cite",
"code",
"colgroup",
"datalist",
"dd",
"del",
"details",
"dfn",
"dialog",
"div",
"dl",
"dt",
"em",
"fieldset",
"figcaption",
"figure",
"footer",
"form",
"h1",
"h2",
"h3",
"h4",
"h5",
"h6",
"head",
"header",
"html",
"i",
"iframe",
"ins",
"kbd",
"label",
"legend",
"li",
"main",
"map",
"mark",
"menu",
"menuitem",
"meter",
"nav",
"noscript",
"object",
"ol",
"optgroup",
"option",
"output",
"p",
"pre",
"progress",
"q",
"rp",
"rt",
"ruby",
"s",
"samp",
"script",
"section",
"select",
"small",
"span",
"strong",
"style",
"sub",
"summary",
"sup",
"table",
"tbody",
"td",
"textarea",
"tfoot",
"th",
"thead",
"time",
"title",
"tr",
"u",
"ul",
"var",
"video"
);
}
}

View File

@@ -1,6 +1,6 @@
package j2html.tags;
import j2html.utils.SimpleEscaper;
import j2html.Config;
public class Text extends DomContent {
@@ -12,7 +12,7 @@ public class Text extends DomContent {
@Override
public String render() {
return SimpleEscaper.escape(text);
return Config.textEscaper.escape(text);
}
}

View File

@@ -124,7 +124,7 @@ public class CSSMin {
if (debugLogging) {
LOG.info("Parsing and processing selectors...");
}
Vector<Selector> selectors = new Vector<>();
Vector<Selector> selectors = new Vector<Selector>();
n = 0;
j = 0;
for (int i = 0; i < sb.length(); i++) {
@@ -203,7 +203,7 @@ class Selector {
// We're dealing with a nested property, eg @-webkit-keyframes
if (parts.length > 2) {
this.subSelectors = new Vector<>();
this.subSelectors = new Vector<Selector>();
parts = selector.split("(\\s*\\{\\s*)|(\\s*\\}\\s*)");
for (int i = 1; i < parts.length; i += 2) {
parts[i] = parts[i].trim();
@@ -264,7 +264,7 @@ class Selector {
* @return An array of properties parsed from this selector.
*/
private ArrayList<Property> parseProperties(String contents) {
ArrayList<String> parts = new ArrayList<>();
ArrayList<String> parts = new ArrayList<String>();
boolean bInsideString = false,
bInsideURL = false;
int j = 0;
@@ -293,7 +293,7 @@ class Selector {
parts.add(substr);
}
ArrayList<Property> results = new ArrayList<>();
ArrayList<Property> results = new ArrayList<Property>();
for (String part : parts) {
try {
results.add(new Property(part));
@@ -331,7 +331,7 @@ class Property implements Comparable<Property> {
Property(String property) throws IncompletePropertyException {
try {
// Parse the property.
ArrayList<String> parts = new ArrayList<>();
ArrayList<String> parts = new ArrayList<String>();
boolean bCanSplit = true;
int j = 0;
String substr;

View File

@@ -62,7 +62,7 @@ public class JSMin {
try {
jsmin.jsmin();
return outStream.toString().trim();
} catch (IOException | UnterminatedRegExpLiteralException | UnterminatedCommentException | UnterminatedStringLiteralException e) {
} catch (Exception e) {
e.printStackTrace();
return "";
}

View File

@@ -1,8 +1,8 @@
package j2html.utils;
public class SimpleEscaper {
public class SimpleEscaper implements TextEscaper {
public static String escape(String s) {
public String escape(String s) {
if (s == null) {
return null;
}

View File

@@ -0,0 +1,7 @@
package j2html.utils;
public interface TextEscaper {
String escape(String text);
}

View File

@@ -30,8 +30,8 @@ public class PerformanceTest {
@Test
public void test_escaper_performnce() throws Exception {
timeEscaper("SimpleEscaper#short", () -> SimpleEscaper.escape(shortTestString));
timeEscaper("SimpleEscaper#long", () -> SimpleEscaper.escape(longTestString));
timeEscaper("SimpleEscaper#short", () -> new SimpleEscaper().escape(shortTestString));
timeEscaper("SimpleEscaper#long", () -> new SimpleEscaper().escape(longTestString));
timeEscaper("ApacheEscaper#short", () -> StringEscapeUtils.escapeHtml4(shortTestString));
timeEscaper("ApacheEscaper#long", () -> StringEscapeUtils.escapeHtml4(longTestString));
}

View File

@@ -0,0 +1,40 @@
package j2html;
import j2html.utils.SimpleEscaper;
import j2html.utils.TextEscaper;
import org.junit.Test;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.instanceOf;
import static org.hamcrest.Matchers.is;
public class TextEscaperTest {
@Test
public void testTextEscaper() throws Exception {
assertThat("default text escaper is SimpleEscaper",
Config.textEscaper, is(instanceOf(SimpleEscaper.class)));
String expected = "&lt;div&gt;&lt;/div&gt;";
assertThat("default text escaper works",
Config.textEscaper.escape("<div></div>"), is(expected));
Config.textEscaper = new NoOpEscaper();
assertThat("user can change text escaper implementation",
Config.textEscaper, is(instanceOf(NoOpEscaper.class)));
expected = "<div></div>";
assertThat("user provided text escaper actually works",
Config.textEscaper.escape("<div></div>"), is(expected));
}
private static class NoOpEscaper implements TextEscaper {
@Override
public String escape(String text) {
return text;
}
}
}

View File

@@ -0,0 +1,61 @@
package j2html.attributes;
import org.junit.Test;
import static j2html.TagCreator.*;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
public class AttrShortFormTest {
@Test
public void addTo_emptyTag() throws Exception {
String expected = "<input id=\"some-id\" class=\"some-class\">";
String actual = input(attrs("#some-id.some-class")).render();
assertThat(actual, is(expected));
}
@Test
public void addTo_containerTag() throws Exception {
String expected = "<div id=\"some-id\" class=\"some-class\"></div>";
String actual = div(attrs("#some-id.some-class")).render();
assertThat(actual, is(expected));
}
@Test
public void addTo_justId() throws Exception {
String expected = "<div id=\"some-id\"></div>";
String actual = div(attrs("#some-id")).render();
assertThat(actual, is(expected));
}
@Test
public void addTo_justClass() throws Exception {
String expected = "<div class=\"some-class\"></div>";
String actual = div(attrs(".some-class")).render();
assertThat(actual, is(expected));
}
@Test
public void addTo_addTwoClasses() throws Exception {
String expected = "<div class=\"some-class some-other-class\"></div>";
String actual = div(attrs(".some-class.some-other-class")).render();
assertThat(actual, is(expected));
}
@Test(expected = IllegalArgumentException.class)
public void addTo_stringWithoutIdOrClass() throws Exception {
div(attrs("some-class")).render();
}
@Test(expected = IllegalArgumentException.class)
public void addTo_stringWithTwoIds() throws Exception {
div(attrs("#id1#id2")).render();
}
@Test(expected = IllegalArgumentException.class)
public void addTo_stringWithStupidlyPlacedId() throws Exception {
div(attrs("id1#id2")).render();
}
}

View File

@@ -15,6 +15,7 @@ import static j2html.TagCreator.h2;
import static j2html.TagCreator.head;
import static j2html.TagCreator.header;
import static j2html.TagCreator.html;
import static j2html.TagCreator.iff;
import static j2html.TagCreator.input;
import static j2html.TagCreator.main;
import static j2html.TagCreator.script;
@@ -29,35 +30,67 @@ public class ComplexRenderTest {
boolean USER_SHOULD_LOG_IN = true;
boolean USER_SHOULD_SIGN_UP = false;
return document().render() +
html().with(
head().with(
title().withText("Test")
),
body().with(
header().with(
h1().with(
text("Test Header "),
a("with link").withHref("http://example.com"),
text(".")
)
),
main().with(
h2("Test Form"),
div().with(
input().withType("email").withName("email").withPlaceholder("Email"),
input().withType("password").withName("password").withPlaceholder("Password")
).condWith(USER_SHOULD_LOG_IN, button().withType("submit").withText("Login")
).condWith(USER_SHOULD_SIGN_UP, button().withType("submit").withText("Signup"))
),
footer().attr(Attr.CLASS, "footer").condAttr(1 == 1, Attr.ID, "id").withText("Test Footer"),
script().withSrc("/testScript.js")
html().with(
head().with(
title().withText("Test")
),
body().with(
header().with(
h1().with(
text("Test Header "),
a("with link").withHref("http://example.com"),
text(".")
)
).render();
),
main().with(
h2("Test Form"),
div().with(
input().withType("email").withName("email").withPlaceholder("Email"),
input().withType("password").withName("password").withPlaceholder("Password")
).condWith(USER_SHOULD_LOG_IN, button().withType("submit").withText("Login")
).condWith(USER_SHOULD_SIGN_UP, button().withType("submit").withText("Signup"))
),
footer().attr(Attr.CLASS, "footer").condAttr(1 == 1, Attr.ID, "id").withText("Test Footer"),
script().withSrc("/testScript.js")
)
).render();
}
private String renderTest2() {
boolean USER_SHOULD_LOG_IN = true;
boolean USER_SHOULD_SIGN_UP = false;
return document().render() +
html(
head(
title("Test")
),
body(
header(
h1(
text("Test Header "),
a("with link").withHref("http://example.com"),
text(".")
)
),
main(
h2("Test Form"),
div(
input().withType("email").withName("email").withPlaceholder("Email"),
input().withType("password").withName("password").withPlaceholder("Password"),
iff(USER_SHOULD_LOG_IN, button().withType("submit").withText("Login")),
iff(USER_SHOULD_SIGN_UP, button().withType("submit").withText("Signup"))
)
),
footer("Test Footer").attr(Attr.CLASS, "footer").condAttr(1 == 1, Attr.ID, "id"),
script().withSrc("/testScript.js")
)
).render();
}
@Test
public void testComplexRender() {
String expectedResult = "<!DOCTYPE html><html><head><title>Test</title></head><body><header><h1>Test Header <a href=\"http://example.com\">with link</a>.</h1></header><main><h2>Test Form</h2><div><input type=\"email\" name=\"email\" placeholder=\"Email\"><input type=\"password\" name=\"password\" placeholder=\"Password\"><button type=\"submit\">Login</button></div></main><footer class=\"footer\" id=\"id\">Test Footer</footer><script src=\"/testScript.js\"></script></body></html>";
assertThat(renderTest(), is(expectedResult));
assertThat(renderTest2(), is(expectedResult));
}
}

View File

@@ -4,7 +4,7 @@ import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import org.junit.Test;
import org.junit.*;
import static j2html.TagCreator.*;
import static org.hamcrest.MatcherAssert.assertThat;
@@ -19,10 +19,10 @@ public class TagCreatorTest {
@Test
public void testIff() throws Exception {
String expected = "<div><p>Test</p><a href=\"#\">Test</a></div>";
String actual = div().with(
p("Test"),
iff(1 == 1, a("Test").withHref("#")),
iff(1 == 2, a("Tast").withHref("#"))
String actual = div(
p("Test"),
iff(1 == 1, a("Test").withHref("#")),
iff(1 == 2, a("Tast").withHref("#"))
).render();
assertThat(actual, is(expected));
}
@@ -30,45 +30,54 @@ public class TagCreatorTest {
@Test
public void testIffElse() throws Exception {
String expected = "<div><p>Tast</p></div>";
String actual = div().with(iffElse(1 == 2, p("Test"), p("Tast"))).render();
String actual = div(iffElse(1 == 2, p("Test"), p("Tast"))).render();
assertThat(actual, is(expected));
}
@Test
public void testJoin() throws Exception {
String expected = "This is my joined string. It has a <a href=\"#\">link in the middle</a> and <code>code at the end</code>.";
String actual = join("This is my joined string. It has a", a("link in the middle").withHref("#"), "and", code("code at the end"), ".").render();
assertThat(actual, is(expected));
}
@Test
@Ignore // Having some trouble with RetroLambda setup
public void testEach() throws Exception {
String j2htmlMap = ul().with(
li("Begin list"),
each(employees, employee -> li().with(
h2(employee.name),
p(employee.title)
))
li("Begin list"),
each(employees, employee -> li(
h2(employee.name),
p(employee.title)
))
).render();
String javaMap = ul().with(
li("Begin list"),
rawHtml(employees.stream().map(employee -> li().with(
h2(employee.name),
p(employee.title)
)).map(DomContent::render).collect(Collectors.joining()))
li("Begin list"),
rawHtml(employees.stream().map(employee -> li(
h2(employee.name),
p(employee.title)
)).map(DomContent::render).collect(Collectors.joining()))
).render();
assertThat(j2htmlMap.equals(javaMap), is(true));
assertThat(j2htmlMap, is("<ul><li>Begin list</li><li><h2>Name 1</h2><p>Title 1</p></li><li><h2>Name 2</h2><p>Title 2</p></li><li><h2>Name 3</h2><p>Title 3</p></li></ul>"));
}
@Test
@Ignore // Having some trouble with RetroLambda setup
public void testFilter() throws Exception {
String j2htmlFilter = ul().with(
li("Begin list"),
each(filter(employees, e -> e.id % 2 == 1), employee -> li().with(
h2(employee.name),
p(employee.title)
))
li("Begin list"),
each(filter(employees, e -> e.id % 2 == 1), employee -> li(
h2(employee.name),
p(employee.title)
))
).render();
String javaFilter = ul().with(
li("Begin list"),
rawHtml(employees.stream().filter(e -> e.id % 2 == 1).map(employee -> li().with(
h2(employee.name),
p(employee.title)
)).map(DomContent::render).collect(Collectors.joining()))
li("Begin list"),
rawHtml(employees.stream().filter(e -> e.id % 2 == 1).map(employee -> li(
h2(employee.name),
p(employee.title)
)).map(DomContent::render).collect(Collectors.joining()))
).render();
assertThat(j2htmlFilter.equals(javaFilter), is(true));
assertThat(j2htmlFilter, is("<ul><li>Begin list</li><li><h2>Name 1</h2><p>Title 1</p></li><li><h2>Name 3</h2><p>Title 3</p></li></ul>"));

View File

@@ -58,5 +58,14 @@ public class TagTest {
assertThat(actual, is(expected));
}
@Test
public void testEmptyAttribute() throws Exception {
ContainerTag testTagWithAttrValueNull = new ContainerTag("a").attr("attribute", null);
assertThat(testTagWithAttrValueNull.render(), is("<a attribute></a>"));
ContainerTag testTagAttrWithoutAttr = new ContainerTag("a").attr("attribute");
assertThat(testTagAttrWithoutAttr.render(), is("<a attribute></a>"));
}
}