Chunk Tag Filters
From Chunk Java Template Engine
Tom McClure (Talk | contribs) (→ondefined()) |
Tom McClure (Talk | contribs) (→slice([from]:[to][:step])) |
||
Line 84: | Line 84: | ||
== slice([from]:[to][:step]) == | == slice([from]:[to][:step]) == | ||
- | Subset a LIST using python-style slice notation. | + | Subset a LIST using python-style slice notation. Negative indices and steps are supported. |
== split[(<delimiter>|/<regexdelim>/[,<limit>])] == | == split[(<delimiter>|/<regexdelim>/[,<limit>])] == |
Revision as of 19:11, 18 November 2013
Chunk includes several useful filters right out of the box.
alternate(<evenoutput>,<oddoutput>)
When tag value is even, output <evenoutput> - when odd, output <oddoutput>. Unbraced tags are valid arguments, eg:
output {$even} and {$odd} tags:
{$i|alternate($even,$odd)}
include templates {#even} and {#odd}
{$i|alternate(+#even,+#odd)}
base64
Base64-encode.
base64decode
Base64-decode.
capitalize
Uppercase the first letter of each word. Leave case of other characters intact. See #title.
Alias: cap
defang
Remove all but a short list of "harmless" characters - can apply to values from untrusted sources to neuter potential XSS attacks.
Alias: neuter
escapequotes
Escape single and double quotes (and backslashes) with a backslash.
Aliases: qs, quoted, quotedstring
escapexml
Convert & to & and handle angle brackets, etc. See #unescapexml.
Aliases: xml, html, xmlescape
get(<index>)
Output the LIST element at <index>. Negative indices count back from the end of the LIST.
indent(<howmany>[,indentstring])
Indent each line of the input by <howmany>. Default indentstring is a space.
join[(<delimiter>)]
Join the LIST elements into a STRING, optionally delimited by <delimiter>.
length
Outputs the size of a LIST or OBJECT, or the length of a STRING input.
Alias: len
lower
Convert text to lowercase. Honors Java locale settings.
Alias: lc
md5hex
MD5-hash (bytes encoded in two-character hex format)
Alias: md5
ondefined(<output>)
Output <output> when tag value is defined. Note that a tag value of null becomes the empty string, which is considered defined. To be undefined, the tag label must not exist in the tag table at all, or become null as the result of applying a filter.
onempty(<output>)
For undefined or empty (ie empty string or only whitespace) values, output the given <output>, otherwise let the tag value pass through.
onmatch(/<regex/,<output>[,/<regex2>/,<output2>[,...]])[nomatch(<nomatchoutput>)]
Don't use this. Really. Use {.if (...)} {.elseIf (...)} {.else} {/if} instead. Far more readable.
qcalc(<operation>)
Perform a limited set of mathematical transformations on an integer input. eg: {$tag|qcalc(+20)}
reverse
Reverse a LIST.
s/<regex>/<replace>/
Perl-style regular expression search and replace.
sha1hex
SHA-1 hash (bytes encoded in two-character hex format).
Alias: sha1
slice([from]:[to][:step])
Subset a LIST using python-style slice notation. Negative indices and steps are supported.
split[(<delimiter>|/<regexdelim>/[,<limit>])]
Transform delimited STRING into a LIST, using a simple delimiter or a /regex/ delimiter. Default delimiter is whitespace. <limit> arg is also optional.
sprintf(<format>)
The classic formatter.
title
Uppercase the first letter of each word, and lowercase all other characters. See #capitalize.
translate
...
Aliases: xlate, _
trim
Trim leading and trailing whitespace.
type
Output STRING, LIST, OBJECT, CHUNK or NULL per the tag value.
unescapexml
Unescape xml-escaped entities, including eg { and λ See #escapexml.
Aliases: unescapehtml, unxml, unhtml, xmlunescape
upper
Convert text to uppercase. Honors Java locale settings.
Alias: uc
urldecode
Restore %AB encoded characters. Plus character (+) is translated back to space.
urlencode
URL-Encode the value.
Alias: url