Chunk Tag Filters

From Chunk Java Template Engine

(Difference between revisions)
Jump to: navigation, search
(alternate(,))
(ondefined())
Line 61: Line 61:
== ondefined(<output>) ==
== 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.
+
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>) ==
== onempty(<output>) ==

Revision as of 19:10, 18 November 2013

Chunk includes several useful filters right out of the box.

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

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

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.

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 &#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