Standardbibliothek
Antra::HTML
import Antra::HTMLHiccup-style HTML rendering for Antra.
Nodes are plain data: [tag, attrs?, child1, child2, ...].
Tags are usually keywords like :div, attributes are maps, and child nodes
may be nested element arrays, strings, numbers, or fragments.
println(HTML.render(page, [colorize: true]))
Überblick#
Ein besonderes Modul, weil es Hiccup-artige HTML-Daten und HTML-Rendering zusammenbringt.
Das ist interessant, wenn du HTML nicht als bloßen String, sondern als strukturierte Daten behandeln willst.
Referenz#
Wichtige Referenzpunkte:
- Hiccup-artige Datenform
[tag, attrs?, ...children] HTML.render(...),HTML.parse(...),HTML.parse(...).!,HTML.raw(...)html-Codeblock-Literale mit$name,${expr},${if ...}und${for ...}html-Codeblock-Literale erlauben auch Fence-Optionen wieraw="true"; damit bleibt der interpolierte HTML-Text roh statt direkt zu Hiccup geparst zu werden- Convenience-Wrapper wie
div(...),body(...),title(...),html(...)
HTML.parse(...) liefert bei kaputtem Markup strukturierte
%Err[%Error{...}]; HTML.parse(...).! wirft denselben %Error{...} dann direkt.
Funktionen#
aaddressarticleasideaudioblockquotebodybrbuttoncanvascaptioncitecodecolcolgroupdatalistdddetailsdialogdivdldtemescapefieldsetfigcaptionfigurefooterformh1h2h3h4h5h6headheaderhrhtmliframeimginputlabellegendlilinkmainmarkmetanavnoscriptoloptgroupoptionoutputpparsepicturepreqrawrenderscriptsectionselectslotsmallsourcespanstrongstylesubsummarysuptabletbodytdtemplatetextareatfootththeadtitletrulvideo
fn a(..args)fn address(..args)fn article(..args)fn aside(..args)fn audio(..args)fn blockquote(..args)fn body(..args)fn br(..args)fn button(..args)fn canvas(..args)fn caption(..args)fn cite(..args)fn code(..args)fn col(..args)fn colgroup(..args)fn datalist(..args)fn dd(..args)fn details(..args)fn dialog(..args)fn div(..args)fn dl(..args)fn dt(..args)fn em(..args)fn escape(value)Escapes a text value for safe HTML output.
Example:
HTML.escape("<b>hi</b>")fn fieldset(..args)fn figcaption(..args)fn figure(..args)fn form(..args)fn h1(..args)fn h2(..args)fn h3(..args)fn h4(..args)fn h5(..args)fn h6(..args)fn head(..args)fn header(..args)fn hr(..args)fn html(..args)Convenience wrappers for common HTML5 tags.
fn iframe(..args)fn img(..args)fn input(..args)fn label(..args)fn legend(..args)fn li(..args)fn link(..args)fn main(..args)fn mark(..args)fn meta(..args)fn noscript(..args)fn ol(..args)fn optgroup(..args)fn option(..args)fn output(..args)fn p(..args)fn parse(html)Parses an HTML string back into Hiccup-style data.
Example:
import Antra::HTML as HTML
my node = HTML.parse('<div class="panel">Hello <span>world</span></div>').!
println(node)fn picture(..args)fn pre(..args)fn q(..args)fn raw(html)Marks a string as already-safe HTML so render(...) inserts it unescaped.
Example:
HTML.raw("<strong>safe</strong>")fn render(node)
fn render(node, [
pretty: _ = false,
indent: _ = 4,
colorize: _ = false, ..
] as opts)Renders a Hiccup-style node tree to an HTML string.
Example:
import Antra::HTML as HTML
fn panel(text) -> [:div, %{class: "panel"}, text]
my page = [
:html,
[:head, [:title, "Hello"]],
[:body, panel("Welcome")]
]
println(HTML.render(page))
println(HTML.render(page, [pretty: true, indent: 4, colorize: false]))fn script(..args)fn section(..args)fn select(..args)fn slot(..args)fn small(..args)fn source(..args)fn span(..args)fn strong(..args)fn style(..args)fn sub(..args)fn summary(..args)fn sup(..args)fn table(..args)fn tbody(..args)fn td(..args)fn template(..args)fn textarea(..args)fn tfoot(..args)fn th(..args)fn thead(..args)fn title(..args)fn tr(..args)fn ul(..args)fn video(..args)