Chunk Tag Filters

From Chunk Java Template Engine

Revision as of 21:33, 18 November 2013 by Tom McClure (Talk | contribs)
Jump to: navigation, search

Chunk includes several useful filters right out of the box, eg {$tag|upper}.

Filters may be chained ad infinitum: {$tag|md5hex|upper}.

Contents

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 &amp; 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 &#123; and &#x03BB; 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

Personal tools