package com.github.ruediste.rendersnakeXT.canvas;

public interface Html5CanvasBase<TSelf extends Html5Canvas<TSelf>> extends
        HtmlCanvas<TSelf> {
    /**
     * Add a class attribute. Multiple calls to this method are allowed. The
     * supplied classes will be combined to one single attribute.
     * */
    default TSelf CLASS(String class_) {
        internal_target().CLASS(class_);
        return self();
    }

    /**
     * Write the HTML5 doctype declaration
     */
    default TSelf doctypeHtml5() {
        writeUnescaped("<!DOCTYPE html>");
        return self();
    }

    /**
     * Append the generic <em>data</em> attribute with the given String
     * parameter as its value.
     *
     * <p>
     * The value of data will be XML escaped.
     * </p>
     */
    default TSelf DATA(String extension, String data) {
        return this.addAttribute("data-" + extension, data);
    }

    default TSelf ROLE(String value) {
        return addAttribute("role", value);
    }

    default TSelf ARIA_EXPANDED(String value) {
        return addAttribute("aria-expanded", value);
    }
}

@@ -1102,11 +1102,931 @@
 );%0A    %7D
+%0A%0A    /** These elements represent headings for their sections. */%0A    default TSelf h2() %7B%0A        return tag(%22h2%22);%0A    %7D%0A%0A    default TSelf _h2() %7B%0A        return close(%22h2%22);%0A    %7D%0A%0A    /** These elements represent headings for their sections. */%0A    default TSelf h3() %7B%0A        return tag(%22h3%22);%0A    %7D%0A%0A    default TSelf _h3() %7B%0A        return close(%22h3%22);%0A    %7D%0A%0A    /** These elements represent headings for their sections. */%0A    default TSelf h4() %7B%0A        return tag(%22h4%22);%0A    %7D%0A%0A    default TSelf _h4() %7B%0A        return close(%22h4%22);%0A    %7D%0A%0A    /** These elements represent headings for their sections. */%0A    default TSelf h5() %7B%0A        return tag(%22h5%22);%0A    %7D%0A%0A    default TSelf _h5() %7B%0A        return close(%22h5%22);%0A    %7D%0A%0A    /** These elements represent headings for their sections. */%0A    default TSelf h6() %7B%0A        return tag(%22h6%22);%0A    %7D%0A%0A    default TSelf _h6() %7B%0A        return close(%22h6%22);%0A    %7D
 %0A%7D%0A

add h2 to h6