Compare commits
71 Commits
j2html-0.8
...
j2html-1.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
eb3f28a09f | ||
|
|
368241313d | ||
|
|
4288924f8f | ||
|
|
9948095c08 | ||
|
|
56090046b5 | ||
|
|
d45af42650 | ||
|
|
7d65f91f44 | ||
|
|
aecf5e71d6 | ||
|
|
cf47772c89 | ||
|
|
897c53d830 | ||
|
|
1e29d81107 | ||
|
|
dee3efb8e7 | ||
|
|
ee82201dfb | ||
|
|
691680ea51 | ||
|
|
0853692e80 | ||
|
|
c2bc4b3209 | ||
|
|
ff9d138f63 | ||
|
|
f778f4df3c | ||
|
|
a0b060ac42 | ||
|
|
4161be67bb | ||
|
|
863527f684 | ||
|
|
5ef2dd3ec5 | ||
|
|
fc3bb29b6a | ||
|
|
ef5777e54a | ||
|
|
cfc1489399 | ||
|
|
8112dad1bb | ||
|
|
235dec78ed | ||
|
|
6316dd2262 | ||
|
|
5667d7c68d | ||
|
|
13911d5f57 | ||
|
|
0bc6e274db | ||
|
|
325afd463c | ||
|
|
f331eb9eb3 | ||
|
|
d37dc1cac6 | ||
|
|
dab61bd662 | ||
|
|
d559f05903 | ||
|
|
97a8f34572 | ||
|
|
6305e364ca | ||
|
|
28ba518b12 | ||
|
|
5f04cde97c | ||
|
|
b00ba50133 | ||
|
|
e09918da12 | ||
|
|
55b74e81aa | ||
|
|
75deeff13d | ||
|
|
3aa05aa540 | ||
|
|
fb24d1eabf | ||
|
|
458f3baf98 | ||
|
|
a661f37575 | ||
|
|
26796cd30d | ||
|
|
75dc60c415 | ||
|
|
99b98f9b09 | ||
|
|
8d4756bab0 | ||
|
|
2c1f337348 | ||
|
|
d437e1affd | ||
|
|
4fdcc3c213 | ||
|
|
ba3261b210 | ||
|
|
ee0100d1a7 | ||
|
|
9ec3088d82 | ||
|
|
8052cdaff1 | ||
|
|
34b2410830 | ||
|
|
75d361fa20 | ||
|
|
3e91da0640 | ||
|
|
d1613b0570 | ||
|
|
a841271ba4 | ||
|
|
9272438940 | ||
|
|
3d43eb159f | ||
|
|
30bfe4ea7f | ||
|
|
7409772c20 | ||
|
|
29e16df057 | ||
|
|
6903bcbe4d | ||
|
|
56b830782f |
16
README.md
16
README.md
@@ -7,25 +7,29 @@ Java to HTML generator. Enjoy typesafe HTML generation.
|
||||
|
||||
The project webpage is [j2html.com](http://j2html.com).
|
||||
|
||||
##Getting started
|
||||
###Add the maven dependency
|
||||
## Getting started
|
||||
### Add the maven dependency
|
||||
```xml
|
||||
<dependency>
|
||||
<groupId>com.j2html</groupId>
|
||||
<artifactId>j2html</artifactId>
|
||||
<version>0.7</version>
|
||||
<version>1.2.0</version>
|
||||
</dependency>
|
||||
```
|
||||
### OR the gradle dependency
|
||||
```
|
||||
compile 'com.j2html:j2html:1.2.0'
|
||||
```
|
||||
|
||||
###Import TagCreator and start building HTML
|
||||
### Import TagCreator and start building HTML
|
||||
```java
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
||||
25
pom.xml
25
pom.xml
@@ -10,7 +10,7 @@
|
||||
|
||||
<groupId>com.j2html</groupId>
|
||||
<artifactId>j2html</artifactId>
|
||||
<version>0.88</version>
|
||||
<version>1.2.1</version>
|
||||
|
||||
<name>j2html</name>
|
||||
<description>Java to HTML builder with a fluent API</description>
|
||||
@@ -52,12 +52,35 @@
|
||||
<version>1.3</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-lang3</artifactId>
|
||||
<version>3.0</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>net.orfjackal.retrolambda</groupId>
|
||||
<artifactId>retrolambda-maven-plugin</artifactId>
|
||||
<version>2.5.1</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<?m2e ignore?>
|
||||
<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>
|
||||
|
||||
50
src/main/java/j2html/Config.java
Normal file
50
src/main/java/j2html/Config.java
Normal file
@@ -0,0 +1,50 @@
|
||||
package j2html;
|
||||
|
||||
import java.util.Collections;
|
||||
|
||||
import j2html.utils.CSSMin;
|
||||
import j2html.utils.EscapeUtil;
|
||||
import j2html.utils.Indenter;
|
||||
import j2html.utils.JSMin;
|
||||
import j2html.utils.Minifier;
|
||||
import j2html.utils.TextEscaper;
|
||||
|
||||
public class Config {
|
||||
|
||||
private static String FOUR_SPACES = " ";
|
||||
|
||||
private Config() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Change this to configure text-escaping
|
||||
* For example, to disable escaping, do <code>{@code Config.textEscaper = text -> text;}</code>
|
||||
*/
|
||||
public static TextEscaper textEscaper = EscapeUtil::escape;
|
||||
|
||||
/**
|
||||
* Change this to configure css-minification.
|
||||
* The default minifier is https://github.com/barryvan/CSSMin
|
||||
*/
|
||||
public static Minifier cssMinifier = CSSMin::compressCss;
|
||||
|
||||
/**
|
||||
* Change this to configure js-minification.
|
||||
* The default minifier is a simple whitespace/newline stripper
|
||||
*/
|
||||
public static Minifier jsMinifier = JSMin::compressJs;
|
||||
|
||||
/**
|
||||
* Change this to configure indentation when rendering formatted html
|
||||
* The default is four spaces
|
||||
*/
|
||||
public static Indenter indenter = (level, text) -> String.join("", Collections.nCopies(level, FOUR_SPACES)) + text;
|
||||
|
||||
|
||||
/**
|
||||
* Change this to configure enable/disable closing empty tags
|
||||
* The default is to NOT close them
|
||||
*/
|
||||
public static boolean closeEmptyTags = false;
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
@@ -17,11 +19,53 @@ public class TagCreator {
|
||||
|
||||
private TagCreator() {}
|
||||
|
||||
/**
|
||||
* Generic if-expression to do if'ing inside method calls
|
||||
*
|
||||
* @param <T> The derived generic parameter type
|
||||
* @param condition the condition to if-on
|
||||
* @param ifValue the value to return if condition is true
|
||||
* @return value if condition is true, null otherwise
|
||||
*/
|
||||
public static <T> T iff(boolean condition, T ifValue) {
|
||||
return condition ? ifValue : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Like {@link j2html.TagCreator#iff}, but returns else-value instead of null
|
||||
*/
|
||||
public static <T> T iffElse(boolean condition, T ifValue, T elseValue) {
|
||||
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()))}
|
||||
*
|
||||
* @param <T> The derived generic parameter type
|
||||
* @param <T> The derived generic parameter type
|
||||
* @param collection the collection to iterate over, ex: a list of values "1, 2, 3"
|
||||
* @param mapper the mapping function, ex: {@literal "n -> li(n.toString())"}
|
||||
* @return rawHtml containing mapped data {@literal (ex. docs: <li>1</li><li>2</li><li>3</li>)}
|
||||
@@ -34,7 +78,7 @@ public class TagCreator {
|
||||
* Filters a collection to a list, to be used with {@link j2html.TagCreator#each}
|
||||
* Intended usage: {@literal each(filter(numbers, n -> n % 2 == 0), n -> li(n.toString()))}
|
||||
*
|
||||
* @param <T> The derived generic parameter type
|
||||
* @param <T> The derived generic parameter type
|
||||
* @param collection the collection to filter, ex: a list of values "1, 2, 3"
|
||||
* @param filter the filter predicate, {@literal ex: "n -> n % 2 == 0"}
|
||||
* @return the filtered collection as a list (ex. docs: 2)
|
||||
@@ -63,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 document().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 DomContent document() { return rawHtml("<!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); }
|
||||
|
||||
}
|
||||
|
||||
@@ -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() {
|
||||
}
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -4,6 +4,8 @@ import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import j2html.Config;
|
||||
|
||||
public class ContainerTag extends Tag<ContainerTag> {
|
||||
|
||||
private List<DomContent> children;
|
||||
@@ -22,7 +24,10 @@ public class ContainerTag extends Tag<ContainerTag> {
|
||||
*/
|
||||
public ContainerTag with(DomContent child) {
|
||||
if (this == child) {
|
||||
throw new Error("Cannot append a tag to itself.");
|
||||
throw new RuntimeException("Cannot append a tag to itself.");
|
||||
}
|
||||
if (child == null) {
|
||||
return this; // in some cases, like when using iff(), we ignore null children
|
||||
}
|
||||
children.add(child);
|
||||
return this;
|
||||
@@ -108,6 +113,12 @@ 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
|
||||
@@ -117,7 +128,7 @@ public class ContainerTag extends Tag<ContainerTag> {
|
||||
@Override
|
||||
public String render() {
|
||||
StringBuilder rendered = new StringBuilder(renderOpenTag());
|
||||
if (children != null && !children.isEmpty()) {
|
||||
if (!children.isEmpty()) {
|
||||
for (DomContent child : children) {
|
||||
rendered.append(child.render());
|
||||
}
|
||||
@@ -126,6 +137,34 @@ public class ContainerTag extends Tag<ContainerTag> {
|
||||
return rendered.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Render the ContainerTag and its children, adding newlines before each
|
||||
* child and using Config.indenter to indent child based on how deep
|
||||
* in the tree it is
|
||||
*
|
||||
* @return the rendered and formatted string
|
||||
*/
|
||||
public String renderFormatted() {
|
||||
return renderFormatted(0);
|
||||
}
|
||||
|
||||
private String renderFormatted(int lvl) {
|
||||
StringBuilder sb = new StringBuilder(renderOpenTag() + "\n");
|
||||
if (!children.isEmpty()) {
|
||||
for (DomContent c : children) {
|
||||
lvl++;
|
||||
if (c instanceof ContainerTag) {
|
||||
sb.append(Config.indenter.indent(lvl, ((ContainerTag) c).renderFormatted(lvl)));
|
||||
} else {
|
||||
sb.append(Config.indenter.indent(lvl, c.render())).append("\n");
|
||||
}
|
||||
lvl--;
|
||||
}
|
||||
}
|
||||
sb.append(Config.indenter.indent(lvl, renderCloseTag())).append("\n");
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(Appendable writer) throws IOException {
|
||||
writer.append(renderOpenTag());
|
||||
|
||||
24
src/main/java/j2html/tags/DomContentJoiner.java
Normal file
24
src/main/java/j2html/tags/DomContentJoiner.java
Normal 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);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,7 @@
|
||||
package j2html.tags;
|
||||
|
||||
import j2html.Config;
|
||||
|
||||
public class EmptyTag extends Tag<EmptyTag> {
|
||||
|
||||
public EmptyTag(String tagName) {
|
||||
@@ -8,6 +10,10 @@ public class EmptyTag extends Tag<EmptyTag> {
|
||||
|
||||
@Override
|
||||
public String render() {
|
||||
if (Config.closeEmptyTags) {
|
||||
String tag = renderOpenTag();
|
||||
return tag.substring(0, tag.length() - 1) + "/>";
|
||||
}
|
||||
return renderOpenTag();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,48 +1,43 @@
|
||||
package j2html.tags;
|
||||
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Paths;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.InputStream;
|
||||
import java.util.Scanner;
|
||||
|
||||
import j2html.utils.CSSMin;
|
||||
import j2html.utils.JSMin;
|
||||
import j2html.Config;
|
||||
|
||||
import static j2html.TagCreator.script;
|
||||
import static j2html.TagCreator.style;
|
||||
import static j2html.TagCreator.rawHtml;
|
||||
import static j2html.TagCreator.*;
|
||||
|
||||
public class InlineStaticResource {
|
||||
|
||||
public enum TargetFormat {CSS_MIN, CSS, JS_MIN, JS}
|
||||
|
||||
public static ContainerTag get(String path, TargetFormat format) {
|
||||
ContainerTag errorAlert = script().with(rawHtml("alert('Unable to read file. File: \"" + path + "\", Type: \"" + format + "\"')"));
|
||||
String fileString = getFileAsString(path);
|
||||
if(fileString != null) {
|
||||
switch(format) {
|
||||
case CSS_MIN : return style().with(rawHtml(compressCss(fileString)));
|
||||
case JS_MIN : return script().with(rawHtml(compressJs(fileString)));
|
||||
case CSS : return style().with(rawHtml(fileString));
|
||||
case JS : return script().with(rawHtml(fileString));
|
||||
default : return errorAlert;
|
||||
}
|
||||
switch (format) {
|
||||
case CSS_MIN : return style().with(rawHtml(Config.cssMinifier.minify(fileString)));
|
||||
case JS_MIN : return script().with(rawHtml(Config.jsMinifier.minify((fileString))));
|
||||
case CSS : return style().with(rawHtml(fileString));
|
||||
case JS : return script().with(rawHtml(fileString));
|
||||
default : throw new RuntimeException("Invalid target format");
|
||||
}
|
||||
return errorAlert;
|
||||
}
|
||||
|
||||
public static String getFileAsString(String path) {
|
||||
try {
|
||||
return new String(Files.readAllBytes(Paths.get(InlineStaticResource.class.getResource(path).toURI())), "UTF-8");
|
||||
} catch (Exception e) {
|
||||
return null;
|
||||
return streamToString(InlineStaticResource.class.getResourceAsStream(path));
|
||||
} catch (Exception expected) { // we don't ask users to specify classpath or file-system
|
||||
try {
|
||||
return streamToString(new FileInputStream(path));
|
||||
} catch (Exception exception) {
|
||||
throw new RuntimeException("Couldn't find file with path='" + path + "'");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static String compressCss(String code) {
|
||||
return CSSMin.compress(code);
|
||||
}
|
||||
|
||||
private static String compressJs(String code) {
|
||||
return JSMin.compressJs(code);
|
||||
private static String streamToString(InputStream inputStream) {
|
||||
Scanner s = new Scanner(inputStream).useDelimiter("\\A");
|
||||
return s.hasNext() ? s.next() : "";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -15,6 +15,9 @@ public abstract class Tag<T extends Tag<T>> extends DomContent {
|
||||
this.attributes = new ArrayList<>();
|
||||
}
|
||||
|
||||
public String getTagName() {
|
||||
return this.tagName;
|
||||
}
|
||||
|
||||
String renderOpenTag() {
|
||||
StringBuilder sb = new StringBuilder("<").append(tagName);
|
||||
@@ -58,15 +61,26 @@ public abstract class Tag<T extends Tag<T>> extends DomContent {
|
||||
* @param value the attribute value
|
||||
* @return itself for easy chaining
|
||||
*/
|
||||
public T attr(String attribute, String value) {
|
||||
setAttribute(attribute, value);
|
||||
public T attr(String attribute, Object value) {
|
||||
setAttribute(attribute, value == null ? null : String.valueOf(value));
|
||||
return (T) this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets a custom attribute without value
|
||||
*
|
||||
* @param attribute the attribute name
|
||||
* @return itself for easy chaining
|
||||
* @see Tag#attr(String, Object)
|
||||
*/
|
||||
public T attr(String attribute) {
|
||||
return attr(attribute, null);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Call attr-method based on condition
|
||||
* {@link #attr(String attribute, String value)}
|
||||
* {@link #attr(String attribute, Object value)}
|
||||
*
|
||||
* @param condition the condition
|
||||
* @param attribute the attribute name
|
||||
@@ -89,8 +103,18 @@ public abstract class Tag<T extends Tag<T>> extends DomContent {
|
||||
|
||||
/**
|
||||
* Convenience methods that call attr with predefined attributes
|
||||
*
|
||||
* @return itself for easy chaining
|
||||
*/
|
||||
|
||||
public T withClasses(String... classes) {
|
||||
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); }
|
||||
public T isAutoFocus() { return attr(Attr.AUTOFOCUS, null); }
|
||||
public T isHidden() { return attr(Attr.HIDDEN, null); }
|
||||
@@ -100,13 +124,16 @@ public abstract class Tag<T extends Tag<T>> extends DomContent {
|
||||
public T withCharset(String charset) { return attr(Attr.CHARSET, charset); }
|
||||
public T withClass(String className) { return attr(Attr.CLASS, className); }
|
||||
public T withContent(String content) { return attr(Attr.CONTENT, content); }
|
||||
public T withDir(String dir) { return attr(Attr.DIR, dir); }
|
||||
public T withHref(String href) { return attr(Attr.HREF, href); }
|
||||
public T withId(String id) { return attr(Attr.ID, id); }
|
||||
public T withData(String dataAttr, String value) { return attr(Attr.DATA + "-" + dataAttr, value); }
|
||||
public T withLang(String lang) { return attr(Attr.LANG, lang); }
|
||||
public T withMethod(String method) { return attr(Attr.METHOD, method); }
|
||||
public T withName(String name) { return attr(Attr.NAME, name); }
|
||||
public T withPlaceholder(String placeholder) { return attr(Attr.PLACEHOLDER, placeholder); }
|
||||
public T withTarget(String target) { return attr(Attr.TARGET, target); }
|
||||
public T withTitle(String title) { return attr(Attr.TITLE, title); }
|
||||
public T withType(String type) { return attr(Attr.TYPE, type); }
|
||||
public T withRel(String rel) { return attr(Attr.REL, rel); }
|
||||
public T withRole(String role) { return attr(Attr.ROLE, role); }
|
||||
@@ -123,13 +150,16 @@ public abstract class Tag<T extends Tag<T>> extends DomContent {
|
||||
public T withCharset(boolean condition, String charset) { return condAttr(condition, Attr.CHARSET, charset); }
|
||||
public T withCondClass(boolean condition, String className) { return condAttr(condition, Attr.CLASS, className); }
|
||||
public T withCondContent(boolean condition, String content) { return condAttr(condition, Attr.CONTENT, content); }
|
||||
public T withCondDir(boolean condition, String dir) { return condAttr(condition, Attr.DIR, dir); }
|
||||
public T withCondHref(boolean condition, String href) { return condAttr(condition, Attr.HREF, href); }
|
||||
public T withCondId(boolean condition, String id) { return condAttr(condition, Attr.ID, id); }
|
||||
public T withCondData(boolean condition, String dataAttr, String value) { return condAttr(condition, Attr.DATA + "-" + dataAttr, value); }
|
||||
public T withCondLang(boolean condition, String lang) { return condAttr(condition, Attr.LANG, lang); }
|
||||
public T withCondMethod(boolean condition, String method) { return condAttr(condition, Attr.METHOD, method); }
|
||||
public T withCondName(boolean condition, String name) { return condAttr(condition, Attr.NAME, name); }
|
||||
public T withCondPlaceholder(boolean condition, String placeholder) { return condAttr(condition, Attr.PLACEHOLDER, placeholder); }
|
||||
public T withCondTarget(boolean condition, String target) { return condAttr(condition, Attr.TARGET, target); }
|
||||
public T withCondTitle(boolean condition, String title) { return condAttr(condition, Attr.TITLE, title); }
|
||||
public T withCondType(boolean condition, String type) { return condAttr(condition, Attr.TYPE, type); }
|
||||
public T withCondRel(boolean condition, String rel) { return condAttr(condition, Attr.REL, rel); }
|
||||
public T withCondSrc(boolean condition, String src) { return condAttr(condition, Attr.SRC, src); }
|
||||
|
||||
167
src/main/java/j2html/tags/TagCreatorCodeGenerator.java
Normal file
167
src/main/java/j2html/tags/TagCreatorCodeGenerator.java
Normal 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"
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/**
|
||||
/*
|
||||
* * CSSMin Copyright License Agreement (BSD License)
|
||||
* <p>
|
||||
* Copyright (c) 2011-2014, Barry van Oudtshoorn
|
||||
@@ -79,11 +79,11 @@ public class CSSMin {
|
||||
* @param input the CSS
|
||||
* @return the compressed version
|
||||
*/
|
||||
public static String compress(String input) {
|
||||
public static String compressCss(String input) {
|
||||
try {
|
||||
int k,
|
||||
j, // Number of open braces
|
||||
n; // Current position in stream
|
||||
j, // Number of open braces
|
||||
n; // Current position in stream
|
||||
char curr;
|
||||
|
||||
BufferedReader br = new BufferedReader(new StringReader(input));
|
||||
@@ -224,7 +224,8 @@ class Selector {
|
||||
if (contents.length() == 1) {
|
||||
throw new EmptySelectorBodyException(selector);
|
||||
}
|
||||
contents = contents.substring(0, contents.length() - 2);
|
||||
int endIndex = contents.endsWith(";}") ? 2 : 1;
|
||||
contents = contents.substring(0, contents.length() - endIndex);
|
||||
|
||||
this.properties = new Property[0];
|
||||
this.properties = parseProperties(contents).toArray(this.properties);
|
||||
@@ -266,7 +267,7 @@ class Selector {
|
||||
private ArrayList<Property> parseProperties(String contents) {
|
||||
ArrayList<String> parts = new ArrayList<>();
|
||||
boolean bInsideString = false,
|
||||
bInsideURL = false;
|
||||
bInsideURL = false;
|
||||
int j = 0;
|
||||
String substr;
|
||||
for (int i = 0; i < contents.length(); i++) {
|
||||
|
||||
36
src/main/java/j2html/utils/EscapeUtil.java
Normal file
36
src/main/java/j2html/utils/EscapeUtil.java
Normal file
@@ -0,0 +1,36 @@
|
||||
package j2html.utils;
|
||||
|
||||
public class EscapeUtil {
|
||||
|
||||
public static String escape(String s) {
|
||||
if (s == null) {
|
||||
return null;
|
||||
}
|
||||
StringBuilder escapedText = new StringBuilder();
|
||||
char currentChar;
|
||||
for (int i = 0; i < s.length(); i++) {
|
||||
currentChar = s.charAt(i);
|
||||
switch (currentChar) {
|
||||
case '<':
|
||||
escapedText.append("<");
|
||||
break;
|
||||
case '>':
|
||||
escapedText.append(">");
|
||||
break;
|
||||
case '&':
|
||||
escapedText.append("&");
|
||||
break;
|
||||
case '"':
|
||||
escapedText.append(""");
|
||||
break;
|
||||
case '\'':
|
||||
escapedText.append("'");
|
||||
break;
|
||||
default:
|
||||
escapedText.append(currentChar);
|
||||
}
|
||||
}
|
||||
return escapedText.toString();
|
||||
}
|
||||
|
||||
}
|
||||
6
src/main/java/j2html/utils/Indenter.java
Normal file
6
src/main/java/j2html/utils/Indenter.java
Normal file
@@ -0,0 +1,6 @@
|
||||
package j2html.utils;
|
||||
|
||||
@FunctionalInterface
|
||||
public interface Indenter {
|
||||
String indent(int level, String text);
|
||||
}
|
||||
@@ -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 "";
|
||||
}
|
||||
@@ -302,4 +302,4 @@ public class JSMin {
|
||||
private class UnterminatedRegExpLiteralException extends Exception {
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
6
src/main/java/j2html/utils/Minifier.java
Normal file
6
src/main/java/j2html/utils/Minifier.java
Normal file
@@ -0,0 +1,6 @@
|
||||
package j2html.utils;
|
||||
|
||||
@FunctionalInterface
|
||||
public interface Minifier {
|
||||
String minify(String s);
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
package j2html.utils;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class SimpleEscaper {
|
||||
|
||||
private static Map<Character, String> map = new HashMap<Character, String>() {{
|
||||
put('&', "&");
|
||||
put('<', "<");
|
||||
put('>', ">");
|
||||
put('"', """);
|
||||
put('\'', "'");
|
||||
}};
|
||||
|
||||
public static String escape(String s) {
|
||||
if(s == null) {
|
||||
return null;
|
||||
}
|
||||
String escapedString = "";
|
||||
for(char c : s.toCharArray()) {
|
||||
String escaped = map.get(c);
|
||||
escapedString += escaped != null ? escaped : c;
|
||||
}
|
||||
return escapedString;
|
||||
}
|
||||
|
||||
}
|
||||
6
src/main/java/j2html/utils/TextEscaper.java
Normal file
6
src/main/java/j2html/utils/TextEscaper.java
Normal file
@@ -0,0 +1,6 @@
|
||||
package j2html.utils;
|
||||
|
||||
@FunctionalInterface
|
||||
public interface TextEscaper {
|
||||
String escape(String text);
|
||||
}
|
||||
1
src/test/files/AnyContent.java
Normal file
1
src/test/files/AnyContent.java
Normal file
@@ -0,0 +1 @@
|
||||
public class AnyContent{}
|
||||
7
src/test/files/test.css
Normal file
7
src/test/files/test.css
Normal file
@@ -0,0 +1,7 @@
|
||||
body {
|
||||
background: goldenrod;
|
||||
margin-top: 10px;
|
||||
margin-right: 10px;
|
||||
margin-bottom: 10px;
|
||||
margin-left: 10px;
|
||||
}
|
||||
3
src/test/files/test.html
Normal file
3
src/test/files/test.html
Normal file
@@ -0,0 +1,3 @@
|
||||
<body>
|
||||
Any content
|
||||
</body>
|
||||
6
src/test/files/test.js
Normal file
6
src/test/files/test.js
Normal file
@@ -0,0 +1,6 @@
|
||||
(function () {
|
||||
var test = 5;
|
||||
var tast = 10;
|
||||
var testTast = test + tast;
|
||||
console.log(testTast);
|
||||
})();
|
||||
49
src/test/java/j2html/PerformanceTest.java
Normal file
49
src/test/java/j2html/PerformanceTest.java
Normal file
@@ -0,0 +1,49 @@
|
||||
package j2html;
|
||||
|
||||
import java.util.concurrent.Callable;
|
||||
|
||||
import org.apache.commons.lang3.StringEscapeUtils;
|
||||
import org.junit.Test;
|
||||
|
||||
import j2html.utils.EscapeUtil;
|
||||
|
||||
public class PerformanceTest {
|
||||
|
||||
private String shortTestString = "<body>\n"
|
||||
+ " <h1 class=\"example\">Heading!</h1>\n"
|
||||
+ " <img src=\"img/hello.png\">\n"
|
||||
+ "</body>";
|
||||
|
||||
// syntax-highlighted getting started example from j2html.com:
|
||||
private String longTestString =
|
||||
"<pre class=\" language-java\"><code class=\" language-java\"><span class=\"token keyword\">import</span> <span class=\"token keyword\">static</span> j2html<span class=\"token punctuation\">.</span>TagCreator<span class=\"token punctuation\">.</span>*<span class=\"token punctuation\">;</span>\n"
|
||||
+ "\n"
|
||||
+ "<span class=\"token keyword\">public</span> <span class=\"token keyword\">class</span> <span class=\"token class-name\">Main</span> <span class=\"token punctuation\">{</span>\n"
|
||||
+ " <span class=\"token keyword\">public</span> <span class=\"token keyword\">static</span> <span class=\"token keyword\">void</span> <span class=\"token function\">main<span class=\"token punctuation\">(</span></span>String<span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> args<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n"
|
||||
+ " <span class=\"token function\">body<span class=\"token punctuation\">(</span></span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">with<span class=\"token punctuation\">(</span></span>\n"
|
||||
+ " <span class=\"token function\">h1<span class=\"token punctuation\">(</span></span><span class=\"token string\">\"Heading!\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">withClass<span class=\"token punctuation\">(</span></span><span class=\"token string\">\"example\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span>\n"
|
||||
+ " <span class=\"token function\">img<span class=\"token punctuation\">(</span></span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">withSrc<span class=\"token punctuation\">(</span></span><span class=\"token string\">\"img/hello.png\"</span><span class=\"token punctuation\">)</span>\n"
|
||||
+ " <span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">render<span class=\"token punctuation\">(</span></span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n"
|
||||
+ " <span class=\"token punctuation\">}</span>\n"
|
||||
+ "<span class=\"token punctuation\">}</span>\n"
|
||||
+ "</code></pre>";
|
||||
|
||||
@Test
|
||||
public void test_escaper_performnce() throws Exception {
|
||||
timeEscaper("SimpleEscaper#short", () -> EscapeUtil.escape(shortTestString));
|
||||
timeEscaper("SimpleEscaper#long", () -> EscapeUtil.escape(longTestString));
|
||||
timeEscaper("ApacheEscaper#short", () -> StringEscapeUtils.escapeHtml4(shortTestString));
|
||||
timeEscaper("ApacheEscaper#long", () -> StringEscapeUtils.escapeHtml4(longTestString));
|
||||
}
|
||||
|
||||
private void timeEscaper(String name, Callable escaper) throws Exception {
|
||||
long startTime = System.nanoTime();
|
||||
for (int i = 0; i < 1000; i++) {
|
||||
escaper.call();
|
||||
}
|
||||
long endTime = System.nanoTime();
|
||||
long durationMs = (endTime - startTime) / 1000000;
|
||||
System.out.println(String.format("%-21s%s", name + ":", +durationMs + "ms"));
|
||||
}
|
||||
|
||||
}
|
||||
38
src/test/java/j2html/TextEscaperTest.java
Normal file
38
src/test/java/j2html/TextEscaperTest.java
Normal file
@@ -0,0 +1,38 @@
|
||||
package j2html;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import j2html.utils.EscapeUtil;
|
||||
import j2html.utils.TextEscaper;
|
||||
|
||||
import static org.hamcrest.MatcherAssert.*;
|
||||
import static org.hamcrest.Matchers.*;
|
||||
|
||||
public class TextEscaperTest {
|
||||
|
||||
@Test
|
||||
public void testTextEscaper() throws Exception {
|
||||
String expected = "<div></div>";
|
||||
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));
|
||||
Config.textEscaper = EscapeUtil::escape; // reset escaper
|
||||
}
|
||||
|
||||
private static class NoOpEscaper implements TextEscaper {
|
||||
|
||||
@Override
|
||||
public String escape(String text) {
|
||||
return text;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
61
src/test/java/j2html/attributes/AttrShortFormTest.java
Normal file
61
src/test/java/j2html/attributes/AttrShortFormTest.java
Normal 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();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -2,24 +2,10 @@ package j2html.tags;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import j2html.TagCreator;
|
||||
import j2html.attributes.Attr;
|
||||
|
||||
import static j2html.TagCreator.a;
|
||||
import static j2html.TagCreator.body;
|
||||
import static j2html.TagCreator.button;
|
||||
import static j2html.TagCreator.div;
|
||||
import static j2html.TagCreator.document;
|
||||
import static j2html.TagCreator.footer;
|
||||
import static j2html.TagCreator.h1;
|
||||
import static j2html.TagCreator.h2;
|
||||
import static j2html.TagCreator.head;
|
||||
import static j2html.TagCreator.header;
|
||||
import static j2html.TagCreator.html;
|
||||
import static j2html.TagCreator.input;
|
||||
import static j2html.TagCreator.main;
|
||||
import static j2html.TagCreator.script;
|
||||
import static j2html.TagCreator.text;
|
||||
import static j2html.TagCreator.title;
|
||||
import static j2html.TagCreator.*;
|
||||
import static org.hamcrest.CoreMatchers.is;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
|
||||
@@ -29,35 +15,139 @@ 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();
|
||||
}
|
||||
|
||||
private String renderTest3() {
|
||||
boolean USER_SHOULD_LOG_IN = true;
|
||||
boolean USER_SHOULD_SIGN_UP = false;
|
||||
return document().render() + "\n" +
|
||||
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")
|
||||
)
|
||||
).renderFormatted();
|
||||
}
|
||||
|
||||
@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));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testComplexRender_formatted() {
|
||||
assertThat(renderTest3(),
|
||||
is("<!DOCTYPE html>\n"
|
||||
+ "<html>\n"
|
||||
+ " <head>\n"
|
||||
+ " <title>\n"
|
||||
+ " Test\n"
|
||||
+ " </title>\n"
|
||||
+ " </head>\n"
|
||||
+ " <body>\n"
|
||||
+ " <header>\n"
|
||||
+ " <h1>\n"
|
||||
+ " Test Header \n"
|
||||
+ " <a href=\"http://example.com\">\n"
|
||||
+ " with link\n"
|
||||
+ " </a>\n"
|
||||
+ " .\n"
|
||||
+ " </h1>\n"
|
||||
+ " </header>\n"
|
||||
+ " <main>\n"
|
||||
+ " <h2>\n"
|
||||
+ " Test Form\n"
|
||||
+ " </h2>\n"
|
||||
+ " <div>\n"
|
||||
+ " <input type=\"email\" name=\"email\" placeholder=\"Email\">\n"
|
||||
+ " <input type=\"password\" name=\"password\" placeholder=\"Password\">\n"
|
||||
+ " <button type=\"submit\">\n"
|
||||
+ " Login\n"
|
||||
+ " </button>\n"
|
||||
+ " </div>\n"
|
||||
+ " </main>\n"
|
||||
+ " <footer class=\"footer\" id=\"id\">\n"
|
||||
+ " Test Footer\n"
|
||||
+ " </footer>\n"
|
||||
+ " <script src=\"/testScript.js\">\n"
|
||||
+ " </script>\n"
|
||||
+ " </body>\n"
|
||||
+ "</html>\n"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,6 +32,7 @@ public class ConvenienceMethodTest {
|
||||
assertThat(input().withName("test-name").render(), is("<input name=\"test-name\">"));
|
||||
assertThat(input().withPlaceholder("test-placeholder").render(), is("<input placeholder=\"test-placeholder\">"));
|
||||
assertThat(a().withTarget("_blank").render(), is("<a target=\"_blank\"></a>"));
|
||||
assertThat(a().withTitle("Title").render(), is("<a title=\"Title\"></a>"));
|
||||
assertThat(input().withType("email").render(), is("<input type=\"email\">"));
|
||||
assertThat(link().withRel("stylesheet").render(), is("<link rel=\"stylesheet\">"));
|
||||
assertThat(link().withRole("role").render(), is("<link role=\"role\">"));
|
||||
|
||||
46
src/test/java/j2html/tags/InlineStaticResourceTest.java
Normal file
46
src/test/java/j2html/tags/InlineStaticResourceTest.java
Normal file
@@ -0,0 +1,46 @@
|
||||
package j2html.tags;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import static j2html.TagCreator.fileAsEscapedString;
|
||||
import static j2html.TagCreator.fileAsString;
|
||||
import static j2html.TagCreator.scriptWithInlineFile_min;
|
||||
import static j2html.TagCreator.styleWithInlineFile_min;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.hamcrest.Matchers.is;
|
||||
|
||||
public class InlineStaticResourceTest {
|
||||
|
||||
private static final String EOL = System.getProperty("line.separator"); // System independent End Of Line
|
||||
|
||||
@Test
|
||||
public void testAllTags() throws Exception {
|
||||
|
||||
String expectedCss = "<style>body{background:#daa520;margin-bottom:10px;margin-left:10px;margin-right:10px;margin-top:10px}</style>";
|
||||
String expectedJs = "<script>(function(){var test=5;var tast=10;var testTast=test+tast;console.log(testTast);})();</script>";
|
||||
String expectedHtml = "<body>" + EOL + " Any content" + EOL + "</body>" + EOL;
|
||||
String expectedEscapedHtml = "<body>" + EOL + " Any content" + EOL + "</body>" + EOL;
|
||||
String expectedAnyContent = "public class AnyContent{}" + EOL;
|
||||
|
||||
// classpath files
|
||||
assertThat(styleWithInlineFile_min("/test.css").render(), is(expectedCss));
|
||||
assertThat(styleWithInlineFile_min("/test-without-trailing-semis.css").render(), is(expectedCss));
|
||||
assertThat(scriptWithInlineFile_min("/test.js").render(), is(expectedJs));
|
||||
assertThat(fileAsString("/test.html").render(), is(expectedHtml));
|
||||
assertThat(fileAsEscapedString("/test.html").render(), is(expectedEscapedHtml));
|
||||
assertThat(fileAsString("/AnyContent.java").render(), is(expectedAnyContent));
|
||||
|
||||
// files outside classpath
|
||||
assertThat(styleWithInlineFile_min("src/test/files/test.css").render(), is(expectedCss));
|
||||
assertThat(scriptWithInlineFile_min("src/test/files/test.js").render(), is(expectedJs));
|
||||
assertThat(fileAsString("src/test/files/test.html").render(), is(expectedHtml));
|
||||
assertThat(fileAsEscapedString("src/test/files/test.html").render(), is(expectedEscapedHtml));
|
||||
assertThat(fileAsString("src/test/files/AnyContent.java").render(), is(expectedAnyContent));
|
||||
}
|
||||
|
||||
@Test(expected=RuntimeException.class)
|
||||
public void testExceptionForBadPath() throws Exception {
|
||||
styleWithInlineFile_min("NOT A FILE");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -4,11 +4,14 @@ import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.*;
|
||||
|
||||
import j2html.Config;
|
||||
|
||||
import static j2html.TagCreator.*;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.hamcrest.Matchers.is;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
public class TagCreatorTest {
|
||||
|
||||
@@ -16,41 +19,79 @@ public class TagCreatorTest {
|
||||
|
||||
List<Employee> employees = Arrays.asList(new Employee(1, "Name 1", "Title 1"), new Employee(2, "Name 2", "Title 2"), new Employee(3, "Name 3", "Title 3"));
|
||||
|
||||
|
||||
@Test
|
||||
public void testDocument() throws Exception {
|
||||
Config.closeEmptyTags = true;
|
||||
assertEquals("<!DOCTYPE html>", document().render());
|
||||
assertEquals("<!DOCTYPE html><html></html>", document(html()));
|
||||
Config.closeEmptyTags = false;
|
||||
assertEquals("<!DOCTYPE html>", document().render());
|
||||
assertEquals("<!DOCTYPE html><html></html>", document(html()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIff() throws Exception {
|
||||
String expected = "<div><p>Test</p><a href=\"#\">Test</a></div>";
|
||||
String actual = div(
|
||||
p("Test"),
|
||||
iff(1 == 1, a("Test").withHref("#")),
|
||||
iff(1 == 2, a("Tast").withHref("#"))
|
||||
).render();
|
||||
assertThat(actual, is(expected));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIffElse() throws Exception {
|
||||
String expected = "<div><p>Tast</p></div>";
|
||||
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>"));
|
||||
@@ -65,11 +106,6 @@ public class TagCreatorTest {
|
||||
assertThat(text("text").render(), is("text"));
|
||||
assertThat(text("<script> and \"</script>\"").render(), is("<script> and "</script>""));
|
||||
assertThat(rawHtml("<script>").render(), is("<script>"));
|
||||
assertThat(styleWithInlineFile_min("/test.css").render(), is("<style>body{background:#daa520;margin-bottom:10px;margin-left:10px;margin-right:10px;margin-top:10px}</style>"));
|
||||
assertThat(scriptWithInlineFile_min("/test.js").render(), is("<script>(function(){var test=5;var tast=10;var testTast=test+tast;console.log(testTast);})();</script>"));
|
||||
assertThat(fileAsString("/test.html").render(), is("<body>" + EOL + " Any content" + EOL + "</body>" + EOL));
|
||||
assertThat(fileAsEscapedString("/test.html").render(), is("<body>" + EOL + " Any content" + EOL + "</body>" + EOL));
|
||||
assertThat(fileAsString("/AnyContent.java").render(), is("public class AnyContent{}" + EOL));
|
||||
|
||||
//EmptyTags
|
||||
assertThat(document().render(), is("<!DOCTYPE html>"));
|
||||
|
||||
@@ -2,15 +2,11 @@ package j2html.tags;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import static j2html.TagCreator.body;
|
||||
import static j2html.TagCreator.footer;
|
||||
import static j2html.TagCreator.header;
|
||||
import static j2html.TagCreator.html;
|
||||
import static j2html.TagCreator.main;
|
||||
import static j2html.TagCreator.p;
|
||||
import static j2html.TagCreator.tag;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.hamcrest.Matchers.is;
|
||||
import j2html.Config;
|
||||
|
||||
import static j2html.TagCreator.*;
|
||||
import static org.hamcrest.MatcherAssert.*;
|
||||
import static org.hamcrest.Matchers.*;
|
||||
|
||||
public class TagTest {
|
||||
|
||||
@@ -42,6 +38,19 @@ public class TagTest {
|
||||
assertThat(testTag.renderCloseTag(), is("</a>"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSelfClosingTags() throws Exception {
|
||||
Config.closeEmptyTags = true;
|
||||
assertThat(img().withSrc("/test.png").render(), is("<img src=\"/test.png\"/>"));
|
||||
assertThat(input().withType("text").render(), is("<input type=\"text\"/>"));
|
||||
Config.closeEmptyTags = false;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFormattedTags() throws Exception { // better test in ComplexRenderTest.java
|
||||
assertThat(div(p("Hello")).renderFormatted(), is("<div>\n <p>\n Hello\n </p>\n</div>\n"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEquals() throws Exception {
|
||||
Tag tagOne = tag("p").withClass("class").withText("Test");
|
||||
@@ -49,4 +58,31 @@ public class TagTest {
|
||||
assertThat(tagOne.equals(tagTwo), is(true));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAcceptObjectValueAttribute() throws Exception {
|
||||
ContainerTag complexTestTag = new ContainerTag("input")
|
||||
.attr("attr1", "value1")
|
||||
.attr("attr2", 2)
|
||||
.attr("attr3", null);
|
||||
String expectedResult = "<input attr1=\"value1\" attr2=\"2\" attr3>";
|
||||
assertThat(complexTestTag.renderOpenTag(), is(expectedResult));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testWithClasses() throws Exception {
|
||||
String expected = "<div class=\"c1 c2\"></div>";
|
||||
String actual = div().withClasses("c1", iff(1 == 1, "c2"), iff(1 == 2, "c3")).render();
|
||||
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>"));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
7
src/test/resources/test-without-trailing-semis.css
Normal file
7
src/test/resources/test-without-trailing-semis.css
Normal file
@@ -0,0 +1,7 @@
|
||||
body {
|
||||
background: goldenrod;
|
||||
margin-top: 10px;
|
||||
margin-right: 10px;
|
||||
margin-bottom: 10px;
|
||||
margin-left: 10px
|
||||
}
|
||||
Reference in New Issue
Block a user