Current section
Files
Jump to
Current section
Files
src/ag_html.erl
-module(ag_html).
-compile(no_auto_import).
-export([render/1, render_document/1, text/1, open_node/2, node/3, html/2, base/2, head/2, style/2, title/2, address/2, article/2, footer/2, header/2, h1/2, h2/2, h3/2, h4/2, h5/2, h6/2, hgroup/2, nav/2, section/2, dd/2, 'div'/2, dl/2, dt/2, figcaption/2, figure/2, hr/1, li/2, main/2, ol/2, p/2, pre/2, ul/2, abbr/2, b/2, bdi/2, bdo/2, br/1, cite/2, code/2, data/2, dfn/2, em/2, i/2, kbd/2, mark/2, q/2, rp/2, rt/2, rtc/2, ruby/2, s/2, samp/2, small/2, span/2, strong/2, sub/2, sup/2, time/2, u/2, var/2, wbr/1, area/2, audio/2, map/2, track/2, video/2, embed/2, object/2, param/2, source/2, canvas/2, noscript/2, script/2, del/2, ins/2, caption/2, col/2, colgroup/2, table/2, tbody/2, td/2, tfoot/2, th/2, thead/2, tr/2, button/2, datalist/2, fieldset/2, form/2, input/1, keygen/2, label/2, legend/2, meter/2, optgroup/2, option/2, output/2, progress/2, select/2, details/2, dialog/2, menu/2, menuitem/2, summary/2, content/2, element/2, shadow/2, template/2, acronym/2, applet/2, basefont/2, big/2, blink/2, center/2, dir/2, frame/2, frameset/2, isindex/2, listing/2, noembed/2, plaintext/2, spacer/2, strike/2, tt/2, xmp/2, a/2, textarea/2, svg/2, path/2, polygon/2, img/2, link/1, meta/1]).
-export_type([html/0]).
-opaque html() :: {content_node,
binary(),
list(html()),
list(ag_html@attributes:attribute())} |
{open_node, binary(), list(ag_html@attributes:attribute())} |
{text_node, binary()}.
-spec render_open(binary(), list(ag_html@attributes:attribute())) -> gleam@string_builder:string_builder().
render_open(Tag, Attributes) ->
_pipe = [<<"<"/utf8>>, Tag],
_pipe@1 = gleam@string_builder:from_strings(_pipe),
_pipe@2 = gleam@string_builder:append_builder(
_pipe@1,
ag_html@attributes:render_list(Attributes)
),
gleam@string_builder:append(_pipe@2, <<">"/utf8>>).
-spec render_content(
binary(),
list(html()),
list(ag_html@attributes:attribute())
) -> gleam@string_builder:string_builder().
render_content(Tag, Children, Attributes) ->
_pipe = [<<"<"/utf8>>, Tag],
_pipe@1 = gleam@string_builder:from_strings(_pipe),
_pipe@2 = gleam@string_builder:append_builder(
_pipe@1,
ag_html@attributes:render_list(Attributes)
),
_pipe@3 = gleam@string_builder:append(_pipe@2, <<">"/utf8>>),
_pipe@4 = gleam@string_builder:append_builder(
_pipe@3,
render_list(Children)
),
_pipe@5 = gleam@string_builder:append(_pipe@4, <<"</"/utf8>>),
_pipe@6 = gleam@string_builder:append(_pipe@5, Tag),
gleam@string_builder:append(_pipe@6, <<">"/utf8>>).
-spec render_list(list(html())) -> gleam@string_builder:string_builder().
render_list(Content) ->
_pipe = Content,
_pipe@1 = gleam@list:map(_pipe, fun do_render/1),
gleam@string_builder:concat(_pipe@1).
-spec render(html()) -> binary().
render(Content) ->
_pipe = Content,
_pipe@1 = do_render(_pipe),
gleam@string_builder:to_string(_pipe@1).
-spec render_document(html()) -> binary().
render_document(Content) ->
_pipe = Content,
_pipe@1 = do_render(_pipe),
_pipe@2 = gleam@string_builder:prepend(_pipe@1, <<"<!doctype html>"/utf8>>),
gleam@string_builder:to_string(_pipe@2).
-spec do_render(html()) -> gleam@string_builder:string_builder().
do_render(Content) ->
case Content of
{text_node, Text} ->
escape(Text);
{open_node, Tag, Attributes} ->
render_open(Tag, Attributes);
{content_node, Tag@1, Children, Attributes@1} ->
render_content(Tag@1, Children, Attributes@1)
end.
-spec escape(binary()) -> gleam@string_builder:string_builder().
escape(Text) ->
ag_html@string_utils:map(Text, fun(G) -> case G of
<<"<"/utf8>> ->
<<"<"/utf8>>;
<<">"/utf8>> ->
<<">"/utf8>>;
<<"&"/utf8>> ->
<<"&"/utf8>>;
_@1 ->
G
end end).
-spec text(binary()) -> html().
text(Text) ->
{text_node, Text}.
-spec open_node(binary(), list(ag_html@attributes:attribute())) -> html().
open_node(Name, Attributes) ->
{open_node, Name, Attributes}.
-spec node(binary(), list(html()), list(ag_html@attributes:attribute())) -> html().
node(Name, Children, Attributes) ->
{content_node, Name, Children, Attributes}.
-spec html(list(html()), list(ag_html@attributes:attribute())) -> html().
html(Children, Attributes) ->
node(<<"html"/utf8>>, Children, Attributes).
-spec base(list(html()), list(ag_html@attributes:attribute())) -> html().
base(Children, Attributes) ->
node(<<"base"/utf8>>, Children, Attributes).
-spec head(list(html()), list(ag_html@attributes:attribute())) -> html().
head(Children, Attributes) ->
node(<<"head"/utf8>>, Children, Attributes).
-spec style(list(html()), list(ag_html@attributes:attribute())) -> html().
style(Children, Attributes) ->
node(<<"style"/utf8>>, Children, Attributes).
-spec title(list(html()), list(ag_html@attributes:attribute())) -> html().
title(Children, Attributes) ->
node(<<"title"/utf8>>, Children, Attributes).
-spec address(list(html()), list(ag_html@attributes:attribute())) -> html().
address(Children, Attributes) ->
node(<<"address"/utf8>>, Children, Attributes).
-spec article(list(html()), list(ag_html@attributes:attribute())) -> html().
article(Children, Attributes) ->
node(<<"article"/utf8>>, Children, Attributes).
-spec footer(list(html()), list(ag_html@attributes:attribute())) -> html().
footer(Children, Attributes) ->
node(<<"footer"/utf8>>, Children, Attributes).
-spec header(list(html()), list(ag_html@attributes:attribute())) -> html().
header(Children, Attributes) ->
node(<<"header"/utf8>>, Children, Attributes).
-spec h1(list(html()), list(ag_html@attributes:attribute())) -> html().
h1(Children, Attributes) ->
node(<<"h1"/utf8>>, Children, Attributes).
-spec h2(list(html()), list(ag_html@attributes:attribute())) -> html().
h2(Children, Attributes) ->
node(<<"h2"/utf8>>, Children, Attributes).
-spec h3(list(html()), list(ag_html@attributes:attribute())) -> html().
h3(Children, Attributes) ->
node(<<"h3"/utf8>>, Children, Attributes).
-spec h4(list(html()), list(ag_html@attributes:attribute())) -> html().
h4(Children, Attributes) ->
node(<<"h4"/utf8>>, Children, Attributes).
-spec h5(list(html()), list(ag_html@attributes:attribute())) -> html().
h5(Children, Attributes) ->
node(<<"h5"/utf8>>, Children, Attributes).
-spec h6(list(html()), list(ag_html@attributes:attribute())) -> html().
h6(Children, Attributes) ->
node(<<"h6"/utf8>>, Children, Attributes).
-spec hgroup(list(html()), list(ag_html@attributes:attribute())) -> html().
hgroup(Children, Attributes) ->
node(<<"hgroup"/utf8>>, Children, Attributes).
-spec nav(list(html()), list(ag_html@attributes:attribute())) -> html().
nav(Children, Attributes) ->
node(<<"nav"/utf8>>, Children, Attributes).
-spec section(list(html()), list(ag_html@attributes:attribute())) -> html().
section(Children, Attributes) ->
node(<<"section"/utf8>>, Children, Attributes).
-spec dd(list(html()), list(ag_html@attributes:attribute())) -> html().
dd(Children, Attributes) ->
node(<<"dd"/utf8>>, Children, Attributes).
-spec 'div'(list(html()), list(ag_html@attributes:attribute())) -> html().
'div'(Children, Attributes) ->
node(<<"div"/utf8>>, Children, Attributes).
-spec dl(list(html()), list(ag_html@attributes:attribute())) -> html().
dl(Children, Attributes) ->
node(<<"dl"/utf8>>, Children, Attributes).
-spec dt(list(html()), list(ag_html@attributes:attribute())) -> html().
dt(Children, Attributes) ->
node(<<"dt"/utf8>>, Children, Attributes).
-spec figcaption(list(html()), list(ag_html@attributes:attribute())) -> html().
figcaption(Children, Attributes) ->
node(<<"figcaption"/utf8>>, Children, Attributes).
-spec figure(list(html()), list(ag_html@attributes:attribute())) -> html().
figure(Children, Attributes) ->
node(<<"figure"/utf8>>, Children, Attributes).
-spec hr(list(ag_html@attributes:attribute())) -> html().
hr(Attributes) ->
open_node(<<"hr"/utf8>>, Attributes).
-spec li(list(html()), list(ag_html@attributes:attribute())) -> html().
li(Children, Attributes) ->
node(<<"li"/utf8>>, Children, Attributes).
-spec main(list(html()), list(ag_html@attributes:attribute())) -> html().
main(Children, Attributes) ->
node(<<"main"/utf8>>, Children, Attributes).
-spec ol(list(html()), list(ag_html@attributes:attribute())) -> html().
ol(Children, Attributes) ->
node(<<"ol"/utf8>>, Children, Attributes).
-spec p(list(html()), list(ag_html@attributes:attribute())) -> html().
p(Children, Attributes) ->
node(<<"p"/utf8>>, Children, Attributes).
-spec pre(list(html()), list(ag_html@attributes:attribute())) -> html().
pre(Children, Attributes) ->
node(<<"pre"/utf8>>, Children, Attributes).
-spec ul(list(html()), list(ag_html@attributes:attribute())) -> html().
ul(Children, Attributes) ->
node(<<"ul"/utf8>>, Children, Attributes).
-spec abbr(list(html()), list(ag_html@attributes:attribute())) -> html().
abbr(Children, Attributes) ->
node(<<"abbr"/utf8>>, Children, Attributes).
-spec b(list(html()), list(ag_html@attributes:attribute())) -> html().
b(Children, Attributes) ->
node(<<"b"/utf8>>, Children, Attributes).
-spec bdi(list(html()), list(ag_html@attributes:attribute())) -> html().
bdi(Children, Attributes) ->
node(<<"bdi"/utf8>>, Children, Attributes).
-spec bdo(list(html()), list(ag_html@attributes:attribute())) -> html().
bdo(Children, Attributes) ->
node(<<"bdo"/utf8>>, Children, Attributes).
-spec br(list(ag_html@attributes:attribute())) -> html().
br(Attributes) ->
open_node(<<"br"/utf8>>, Attributes).
-spec cite(list(html()), list(ag_html@attributes:attribute())) -> html().
cite(Children, Attributes) ->
node(<<"cite"/utf8>>, Children, Attributes).
-spec code(list(html()), list(ag_html@attributes:attribute())) -> html().
code(Children, Attributes) ->
node(<<"code"/utf8>>, Children, Attributes).
-spec data(list(html()), list(ag_html@attributes:attribute())) -> html().
data(Children, Attributes) ->
node(<<"data"/utf8>>, Children, Attributes).
-spec dfn(list(html()), list(ag_html@attributes:attribute())) -> html().
dfn(Children, Attributes) ->
node(<<"dfn"/utf8>>, Children, Attributes).
-spec em(list(html()), list(ag_html@attributes:attribute())) -> html().
em(Children, Attributes) ->
node(<<"em"/utf8>>, Children, Attributes).
-spec i(list(html()), list(ag_html@attributes:attribute())) -> html().
i(Children, Attributes) ->
node(<<"i"/utf8>>, Children, Attributes).
-spec kbd(list(html()), list(ag_html@attributes:attribute())) -> html().
kbd(Children, Attributes) ->
node(<<"kbd"/utf8>>, Children, Attributes).
-spec mark(list(html()), list(ag_html@attributes:attribute())) -> html().
mark(Children, Attributes) ->
node(<<"mark"/utf8>>, Children, Attributes).
-spec q(list(html()), list(ag_html@attributes:attribute())) -> html().
q(Children, Attributes) ->
node(<<"q"/utf8>>, Children, Attributes).
-spec rp(list(html()), list(ag_html@attributes:attribute())) -> html().
rp(Children, Attributes) ->
node(<<"rp"/utf8>>, Children, Attributes).
-spec rt(list(html()), list(ag_html@attributes:attribute())) -> html().
rt(Children, Attributes) ->
node(<<"rt"/utf8>>, Children, Attributes).
-spec rtc(list(html()), list(ag_html@attributes:attribute())) -> html().
rtc(Children, Attributes) ->
node(<<"rtc"/utf8>>, Children, Attributes).
-spec ruby(list(html()), list(ag_html@attributes:attribute())) -> html().
ruby(Children, Attributes) ->
node(<<"ruby"/utf8>>, Children, Attributes).
-spec s(list(html()), list(ag_html@attributes:attribute())) -> html().
s(Children, Attributes) ->
node(<<"s"/utf8>>, Children, Attributes).
-spec samp(list(html()), list(ag_html@attributes:attribute())) -> html().
samp(Children, Attributes) ->
node(<<"samp"/utf8>>, Children, Attributes).
-spec small(list(html()), list(ag_html@attributes:attribute())) -> html().
small(Children, Attributes) ->
node(<<"small"/utf8>>, Children, Attributes).
-spec span(list(html()), list(ag_html@attributes:attribute())) -> html().
span(Children, Attributes) ->
node(<<"span"/utf8>>, Children, Attributes).
-spec strong(list(html()), list(ag_html@attributes:attribute())) -> html().
strong(Children, Attributes) ->
node(<<"strong"/utf8>>, Children, Attributes).
-spec sub(list(html()), list(ag_html@attributes:attribute())) -> html().
sub(Children, Attributes) ->
node(<<"sub"/utf8>>, Children, Attributes).
-spec sup(list(html()), list(ag_html@attributes:attribute())) -> html().
sup(Children, Attributes) ->
node(<<"sup"/utf8>>, Children, Attributes).
-spec time(list(html()), list(ag_html@attributes:attribute())) -> html().
time(Children, Attributes) ->
node(<<"time"/utf8>>, Children, Attributes).
-spec u(list(html()), list(ag_html@attributes:attribute())) -> html().
u(Children, Attributes) ->
node(<<"u"/utf8>>, Children, Attributes).
-spec var(list(html()), list(ag_html@attributes:attribute())) -> html().
var(Children, Attributes) ->
node(<<"var"/utf8>>, Children, Attributes).
-spec wbr(list(ag_html@attributes:attribute())) -> html().
wbr(Attributes) ->
open_node(<<"wbr"/utf8>>, Attributes).
-spec area(list(html()), list(ag_html@attributes:attribute())) -> html().
area(Children, Attributes) ->
node(<<"area"/utf8>>, Children, Attributes).
-spec audio(list(html()), list(ag_html@attributes:attribute())) -> html().
audio(Children, Attributes) ->
node(<<"audio"/utf8>>, Children, Attributes).
-spec map(list(html()), list(ag_html@attributes:attribute())) -> html().
map(Children, Attributes) ->
node(<<"map"/utf8>>, Children, Attributes).
-spec track(list(html()), list(ag_html@attributes:attribute())) -> html().
track(Children, Attributes) ->
node(<<"track"/utf8>>, Children, Attributes).
-spec video(list(html()), list(ag_html@attributes:attribute())) -> html().
video(Children, Attributes) ->
node(<<"video"/utf8>>, Children, Attributes).
-spec embed(list(html()), list(ag_html@attributes:attribute())) -> html().
embed(Children, Attributes) ->
node(<<"embed"/utf8>>, Children, Attributes).
-spec object(list(html()), list(ag_html@attributes:attribute())) -> html().
object(Children, Attributes) ->
node(<<"object"/utf8>>, Children, Attributes).
-spec param(list(html()), list(ag_html@attributes:attribute())) -> html().
param(Children, Attributes) ->
node(<<"param"/utf8>>, Children, Attributes).
-spec source(list(html()), list(ag_html@attributes:attribute())) -> html().
source(Children, Attributes) ->
node(<<"source"/utf8>>, Children, Attributes).
-spec canvas(list(html()), list(ag_html@attributes:attribute())) -> html().
canvas(Children, Attributes) ->
node(<<"canvas"/utf8>>, Children, Attributes).
-spec noscript(list(html()), list(ag_html@attributes:attribute())) -> html().
noscript(Children, Attributes) ->
node(<<"noscript"/utf8>>, Children, Attributes).
-spec script(list(html()), list(ag_html@attributes:attribute())) -> html().
script(Children, Attributes) ->
node(<<"script"/utf8>>, Children, Attributes).
-spec del(list(html()), list(ag_html@attributes:attribute())) -> html().
del(Children, Attributes) ->
node(<<"del"/utf8>>, Children, Attributes).
-spec ins(list(html()), list(ag_html@attributes:attribute())) -> html().
ins(Children, Attributes) ->
node(<<"ins"/utf8>>, Children, Attributes).
-spec caption(list(html()), list(ag_html@attributes:attribute())) -> html().
caption(Children, Attributes) ->
node(<<"caption"/utf8>>, Children, Attributes).
-spec col(list(html()), list(ag_html@attributes:attribute())) -> html().
col(Children, Attributes) ->
node(<<"col"/utf8>>, Children, Attributes).
-spec colgroup(list(html()), list(ag_html@attributes:attribute())) -> html().
colgroup(Children, Attributes) ->
node(<<"colgroup"/utf8>>, Children, Attributes).
-spec table(list(html()), list(ag_html@attributes:attribute())) -> html().
table(Children, Attributes) ->
node(<<"table"/utf8>>, Children, Attributes).
-spec tbody(list(html()), list(ag_html@attributes:attribute())) -> html().
tbody(Children, Attributes) ->
node(<<"tbody"/utf8>>, Children, Attributes).
-spec td(list(html()), list(ag_html@attributes:attribute())) -> html().
td(Children, Attributes) ->
node(<<"td"/utf8>>, Children, Attributes).
-spec tfoot(list(html()), list(ag_html@attributes:attribute())) -> html().
tfoot(Children, Attributes) ->
node(<<"tfoot"/utf8>>, Children, Attributes).
-spec th(list(html()), list(ag_html@attributes:attribute())) -> html().
th(Children, Attributes) ->
node(<<"th"/utf8>>, Children, Attributes).
-spec thead(list(html()), list(ag_html@attributes:attribute())) -> html().
thead(Children, Attributes) ->
node(<<"thead"/utf8>>, Children, Attributes).
-spec tr(list(html()), list(ag_html@attributes:attribute())) -> html().
tr(Children, Attributes) ->
node(<<"tr"/utf8>>, Children, Attributes).
-spec button(list(html()), list(ag_html@attributes:attribute())) -> html().
button(Children, Attributes) ->
node(<<"button"/utf8>>, Children, Attributes).
-spec datalist(list(html()), list(ag_html@attributes:attribute())) -> html().
datalist(Children, Attributes) ->
node(<<"datalist"/utf8>>, Children, Attributes).
-spec fieldset(list(html()), list(ag_html@attributes:attribute())) -> html().
fieldset(Children, Attributes) ->
node(<<"fieldset"/utf8>>, Children, Attributes).
-spec form(list(html()), list(ag_html@attributes:attribute())) -> html().
form(Children, Attributes) ->
node(<<"form"/utf8>>, Children, Attributes).
-spec input(list(ag_html@attributes:attribute())) -> html().
input(Attributes) ->
open_node(<<"input"/utf8>>, Attributes).
-spec keygen(list(html()), list(ag_html@attributes:attribute())) -> html().
keygen(Children, Attributes) ->
node(<<"keygen"/utf8>>, Children, Attributes).
-spec label(list(html()), list(ag_html@attributes:attribute())) -> html().
label(Children, Attributes) ->
node(<<"label"/utf8>>, Children, Attributes).
-spec legend(list(html()), list(ag_html@attributes:attribute())) -> html().
legend(Children, Attributes) ->
node(<<"legend"/utf8>>, Children, Attributes).
-spec meter(list(html()), list(ag_html@attributes:attribute())) -> html().
meter(Children, Attributes) ->
node(<<"meter"/utf8>>, Children, Attributes).
-spec optgroup(list(html()), list(ag_html@attributes:attribute())) -> html().
optgroup(Children, Attributes) ->
node(<<"optgroup"/utf8>>, Children, Attributes).
-spec option(list(html()), list(ag_html@attributes:attribute())) -> html().
option(Children, Attributes) ->
node(<<"option"/utf8>>, Children, Attributes).
-spec output(list(html()), list(ag_html@attributes:attribute())) -> html().
output(Children, Attributes) ->
node(<<"output"/utf8>>, Children, Attributes).
-spec progress(list(html()), list(ag_html@attributes:attribute())) -> html().
progress(Children, Attributes) ->
node(<<"progress"/utf8>>, Children, Attributes).
-spec select(list(html()), list(ag_html@attributes:attribute())) -> html().
select(Children, Attributes) ->
node(<<"select"/utf8>>, Children, Attributes).
-spec details(list(html()), list(ag_html@attributes:attribute())) -> html().
details(Children, Attributes) ->
node(<<"details"/utf8>>, Children, Attributes).
-spec dialog(list(html()), list(ag_html@attributes:attribute())) -> html().
dialog(Children, Attributes) ->
node(<<"dialog"/utf8>>, Children, Attributes).
-spec menu(list(html()), list(ag_html@attributes:attribute())) -> html().
menu(Children, Attributes) ->
node(<<"menu"/utf8>>, Children, Attributes).
-spec menuitem(list(html()), list(ag_html@attributes:attribute())) -> html().
menuitem(Children, Attributes) ->
node(<<"menuitem"/utf8>>, Children, Attributes).
-spec summary(list(html()), list(ag_html@attributes:attribute())) -> html().
summary(Children, Attributes) ->
node(<<"summary"/utf8>>, Children, Attributes).
-spec content(list(html()), list(ag_html@attributes:attribute())) -> html().
content(Children, Attributes) ->
node(<<"content"/utf8>>, Children, Attributes).
-spec element(list(html()), list(ag_html@attributes:attribute())) -> html().
element(Children, Attributes) ->
node(<<"element"/utf8>>, Children, Attributes).
-spec shadow(list(html()), list(ag_html@attributes:attribute())) -> html().
shadow(Children, Attributes) ->
node(<<"shadow"/utf8>>, Children, Attributes).
-spec template(list(html()), list(ag_html@attributes:attribute())) -> html().
template(Children, Attributes) ->
node(<<"template"/utf8>>, Children, Attributes).
-spec acronym(list(html()), list(ag_html@attributes:attribute())) -> html().
acronym(Children, Attributes) ->
node(<<"acronym"/utf8>>, Children, Attributes).
-spec applet(list(html()), list(ag_html@attributes:attribute())) -> html().
applet(Children, Attributes) ->
node(<<"applet"/utf8>>, Children, Attributes).
-spec basefont(list(html()), list(ag_html@attributes:attribute())) -> html().
basefont(Children, Attributes) ->
node(<<"basefont"/utf8>>, Children, Attributes).
-spec big(list(html()), list(ag_html@attributes:attribute())) -> html().
big(Children, Attributes) ->
node(<<"big"/utf8>>, Children, Attributes).
-spec blink(list(html()), list(ag_html@attributes:attribute())) -> html().
blink(Children, Attributes) ->
node(<<"blink"/utf8>>, Children, Attributes).
-spec center(list(html()), list(ag_html@attributes:attribute())) -> html().
center(Children, Attributes) ->
node(<<"center"/utf8>>, Children, Attributes).
-spec dir(list(html()), list(ag_html@attributes:attribute())) -> html().
dir(Children, Attributes) ->
node(<<"dir"/utf8>>, Children, Attributes).
-spec frame(list(html()), list(ag_html@attributes:attribute())) -> html().
frame(Children, Attributes) ->
node(<<"frame"/utf8>>, Children, Attributes).
-spec frameset(list(html()), list(ag_html@attributes:attribute())) -> html().
frameset(Children, Attributes) ->
node(<<"frameset"/utf8>>, Children, Attributes).
-spec isindex(list(html()), list(ag_html@attributes:attribute())) -> html().
isindex(Children, Attributes) ->
node(<<"isindex"/utf8>>, Children, Attributes).
-spec listing(list(html()), list(ag_html@attributes:attribute())) -> html().
listing(Children, Attributes) ->
node(<<"listing"/utf8>>, Children, Attributes).
-spec noembed(list(html()), list(ag_html@attributes:attribute())) -> html().
noembed(Children, Attributes) ->
node(<<"noembed"/utf8>>, Children, Attributes).
-spec plaintext(list(html()), list(ag_html@attributes:attribute())) -> html().
plaintext(Children, Attributes) ->
node(<<"plaintext"/utf8>>, Children, Attributes).
-spec spacer(list(html()), list(ag_html@attributes:attribute())) -> html().
spacer(Children, Attributes) ->
node(<<"spacer"/utf8>>, Children, Attributes).
-spec strike(list(html()), list(ag_html@attributes:attribute())) -> html().
strike(Children, Attributes) ->
node(<<"strike"/utf8>>, Children, Attributes).
-spec tt(list(html()), list(ag_html@attributes:attribute())) -> html().
tt(Children, Attributes) ->
node(<<"tt"/utf8>>, Children, Attributes).
-spec xmp(list(html()), list(ag_html@attributes:attribute())) -> html().
xmp(Children, Attributes) ->
node(<<"xmp"/utf8>>, Children, Attributes).
-spec a(list(html()), list(ag_html@attributes:attribute())) -> html().
a(Children, Attributes) ->
node(<<"a"/utf8>>, Children, Attributes).
-spec textarea(list(html()), list(ag_html@attributes:attribute())) -> html().
textarea(Children, Attributes) ->
node(<<"textarea"/utf8>>, Children, Attributes).
-spec svg(list(html()), list(ag_html@attributes:attribute())) -> html().
svg(Children, Attributes) ->
node(<<"svg"/utf8>>, Children, Attributes).
-spec path(list(html()), list(ag_html@attributes:attribute())) -> html().
path(Children, Attributes) ->
node(<<"path"/utf8>>, Children, Attributes).
-spec polygon(list(html()), list(ag_html@attributes:attribute())) -> html().
polygon(Children, Attributes) ->
node(<<"polygon"/utf8>>, Children, Attributes).
-spec img(list(html()), list(ag_html@attributes:attribute())) -> html().
img(Children, Attributes) ->
node(<<"img"/utf8>>, Children, Attributes).
-spec link(list(ag_html@attributes:attribute())) -> html().
link(Attributes) ->
open_node(<<"link"/utf8>>, Attributes).
-spec meta(list(ag_html@attributes:attribute())) -> html().
meta(Attributes) ->
open_node(<<"meta"/utf8>>, Attributes).