HTML::...ference(3pm)

πŸ“¦
version 1.003 Β· 2 versions
  • 1.003 Β· debian bookworm, debian trixie, ubuntu noble, ubuntu resolute, ubuntu stonking (latest)
  • 1.003 Β· ubuntu jammy
, in debian bookworm, debian trixie, ubuntu noble, ubuntu resolute, ubuntu stonking

πŸ’– 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 %> β€” outputs foo in 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 at 0
  • <%= __counter__ %> β€” the current loop index, starting at 1
  • <%= __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 an EACH iteration
  • <%= __value__ %> β€” the value of an EACH iteration
  • <%= __break__ %> β€” see BREAK above
  • <%= __filename__ %> β€” filename of current template (since 0.91_001)
  • <%= __filenameshort__ %> β€” short filename of current template (since 0.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