Antra

Standardbibliothek

Antra::HTML

import Antra::HTML

Hiccup-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 wie raw="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#

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 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 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)

Quelle dieser Seite