Current section

Files

Jump to
glemplate src glemplate@html.erl
Raw

src/glemplate@html.erl

-module(glemplate@html).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/glemplate/html.gleam").
-export([encode/1, render/3]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(" Utilities for rendering HTML templates.\n").
-file("src/glemplate/html.gleam", 12).
?DOC(
" Encode content as HTML entities so it's safe in an HTML template.\n"
"\n"
" Note! This is not safe for use in `<script>` or `<style>` tags!\n"
).
-spec encode(binary()) -> gleam@string_tree:string_tree().
encode(Text) ->
_pipe = glentities:encode(Text, h_t_m_l_body),
gleam_stdlib:identity(_pipe).
-file("src/glemplate/html.gleam", 18).
?DOC(" Render an HTML template.\n").
-spec render(
glemplate@ast:template(),
gleam@dict:dict(binary(), glemplate@assigns:assign_data()),
gleam@dict:dict(binary(), glemplate@ast:template())
) -> {ok, gleam@string_tree:string_tree()} |
{error, glemplate@renderer:render_error()}.
render(Template, Assigns, Template_cache) ->
glemplate@renderer:render(
Template,
Assigns,
{render_options, fun encode/1, Template_cache}
).