HTML::...ference(3pm)
π HTML::Template::Compiled::Reference π
okay bestie, sit DOWN. this is the quick reference for HTML::Template::Compiled syntax, and it's a perl manual page (section 3pm, from the User Contributed Perl Documentation crew) β but like, the fun kind of reference. everything you need to know about the syntax, all in one place. no cap. π
β¨ TAGSTYLES β¨
three flavours, pick your fighter:
<TMPL_IF var><TMPL_VAR foo></tmpl_if var>
<!-- TMPL_IF var --><!-- TMPL_VAR foo --><!-- /tmpl_if var -->
<%if var %><%= foo %><%/if var %>
and there's an optional tagstyle called tt, if that's more your vibe:
[%if var %][%= foo %][%/if var %]
π¦ ACCESSING VARIABLES π¦
<%= _.foo %>β outputsfooin the current position of the stash, and it's literally the exact same thing as<%= foo %><%= .config.url %>β this one goes all the way to the root of the parameter stash; it's giving$params->{config}->{url}<%= ..foo %>β goes one level up in the stash. climbing, bestie π§<%= list[3].keyname.method %>β acts like$stash->[3]->{keyname}->method
π₯ TAGS π₯
VAR
<%var foo%> or <%= foo%>
IF, IF_DEFINED, UNLESS, ELSIF, ELSE
conditions like in Perl. periodt.
LOOP, WHILE, EACH
for-loop and while-loop like in Perl.
<%loop cds%><%= __counter__%>. Title: <%= _.title%><%/loop cds%>
<%loop cds join=", " %><%= _.title%><%/loop cds%>
<%while resultset.next%><%= __counter__%>. <%= _.foo %><%/while %>
<%each hashref%><%= __key__ %>=<%= __value__ %><%/each %> (sorted alphanumeric)
<%each hashref sort=alpha %><%= __key__ %>=<%= __value__ %><%/each %> (sorted alphanumeric)
<%each hashref sort=num %><%= __key__ %>=<%= __value__ %><%/each %> (sorted numeric)
<%each hashref sort=0 %><%= __key__ %>=<%= __value__ %><%/each %> (not sorted)
WITH
<%with cds[0].artist.fanclub%><%= _.address%><%= _.homepage%><%/with %>
INCLUDE, INCLUDE_VAR
<%include template.htc%>
<%include_var param_with_template_name%>
COMMENT, VERBATIM, NOPARSE
<%comment explanation %>
This will not appear in the rendered template.
blah blah...
<%/comment explanation %>
SWITCH, CASE
<%switch .config.language%>
<%case de%>Hallo
<%case es%>Hola
<%case en,default%>Hello
<%/switch .config.language%>
PERL
go read the section Perl in HTML::Template::Compiled. iykyk π
π ATTRIBUTES π
every single attribute can be written any of these ways:
attribute=foo
attribute="some thing"
attribute='some "thing"'
NAME
you can totally omit the name= right here:
<%if var%>var<%elsif name=var2%>var4<%/if%>
can be used in all tags. universal queen behavior.
ESCAPE
<%= message escape=html %>
<%= params escape=url %>
<%= params escape=js %>
<%= some_var escape=dump|html%>
can be used in VAR-tags.
DEFAULT
<%= this.var.might_be_undef default="my fault" %>
can be used in VAR-tags.
ALIAS
<%loop cds alias="cd" %><%= $cd.title %><%/loop cds %>
can be used in LOOP and WHILE. works like SET_VAR and is short for:
<%loop cds %><%set_var cd value=_ %><%= cd.title %><%/loop cds %>
super useful for nested loops, fr fr. πͺ
SET_VAR
<%set_var myvar value=.another.var %>
<%set_var myvar2 expr="60 * 60 * 24" %>
this creates a variable similar to a package var with local() in perl.
USE_VARS
<!-- recognize myvar and myvar2 as variables not parameter stash -->
<%use_vars myvar,myvar2 %>
myvar: <%= myvar %>
JOIN
<%loop cds join=", " %><%= _.title%><%/loop cds%>
can be used in LOOP.
BREAK
<%loop cds break="3" %>
<%= _.title%><%if __break__ %>\n</%if %>
<%/loop cds%>
sets __break__ to 1 every *x*th loop. can be used in LOOP, WHILE and EACH.
π OPTIONS π
(loop)_context_vars
<%= __index__ %>β the current loop index, starting at0<%= __counter__ %>β the current loop index, starting at1<%= __first__ %>β true if first iteration<%= __last__ %>β true if last iteration<%= __odd__ %>β true if__counter__is odd<%= __inner__ %>β true if not last or first iteration<%= __key__ %>β the key of anEACHiteration<%= __value__ %>β the value of anEACHiteration<%= __break__ %>β seeBREAKabove<%= __filename__ %>β filename of current template (since0.91_001)<%= __filenameshort__ %>β short filename of current template (since0.91_001)
okay that's the whole page bestie, you're officially certified π
and that's a wrap!! this whole thing came to you courtesy of perl v5.36.0, dated 2022-11-19 β so if anything's giving ancient, that's why. now go build something iconic π«Άβ¨πΈ
π¦ where this page comes from
- debian bookworm: libhtml-template-compiled-perl 1.003-3 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- debian trixie: libhtml-template-compiled-perl 1.003-3 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu noble: libhtml-template-compiled-perl 1.003-3 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu resolute: libhtml-template-compiled-perl 1.003-3 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu stonking: libhtml-template-compiled-perl 1.003-3 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms