Chunk Tag Filters
From Chunk Java Template Engine
Tom McClure (Talk | contribs) (→sprintf()) |
Tom McClure (Talk | contribs) m (→onmatch(/[,//,[,...]])[nomatch()]) |
||
Line 74: | Line 74: | ||
For undefined or empty (ie empty string or only whitespace) values, output the given <output>, otherwise let the tag value pass through. | 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>)] == | + | == onmatch(/<regex>/,<output>[,/<regex2>/,<output2>[,...]])[nomatch(<nomatchoutput>)] == |
Don't use this. Really. Use {.if (...)} {.elseIf (...)} {.else} {/if} instead. Far more readable. | Don't use this. Really. Use {.if (...)} {.elseIf (...)} {.else} {/if} instead. Far more readable. | ||
Revision as of 21:33, 18 November 2013
Chunk includes several useful filters right out of the box, eg {$tag|upper}.
Filters may be chained ad infinitum: {$tag|md5hex|upper}.
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
checked(<testvalue>)
Output checked="checked" when tag value matches <testvalue>. Argument may be an unbraced $tag.
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
filter(<#xtemplate>)
Bind the tag value to {$x} and include the specified template. Provides a way to write user-contributed filters using template tag language.
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.
selected(<testvalue>)
Output selected="selected" when tag value matches <testvalue>. Argument may be an unbraced $tag.
Aliases: select, sel
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. See [sprintf examples].
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