public class StandardCompress extends java.lang.Object implements TemplateTransformModel
A filter that compresses each sequence of consecutive whitespace to a single line break (if the sequence contains a line break) or a single space. In addition, leading and trailing whitespace is completely removed.
Specify the transform parameter
single_line = true
to always compress to a single space instead of a line break.
The default buffer size can be overridden by specifying a
buffer_size transform parameter (in bytes).
Note: The compress tag is implemented using this filter
SimpleHash root = new SimpleHash(); root.put( "standardCompress", new freemarker.template.utility.StandardCompress() ); ...
From your FreeMarker template:
<transform standardCompress> <p>This paragraph will have extraneous whitespace removed.</p> </transform>
<p>This paragraph will have extraneous whitespace removed.</p>
|Modifier and Type||Field and Description|
|Constructor and Description|
|Modifier and Type||Method and Description|
Returns a writer that will be used by the engine to feed the transformation input to the transform.
public static final StandardCompress INSTANCE
public StandardCompress(int defaultBufferSize)
defaultBufferSize- the default amount of characters to buffer
public java.io.Writer getWriter(java.io.Writer out, java.util.Map args) throws TemplateModelException
This method should not throw
IOException that wasn't caused by writing to
the output. Such exceptions should be catched inside the method and wrapped inside a
TemplateModelException. (Note that setting
true can mitigate the negative effects of implementations that throw
out- the character stream to which to write the transformed output
args- the arguments (if any) passed to the transformation as a map of key/value pairs where the keys are strings and the arguments are
TemplateModelinstances. This is never
null. (If you need to convert the template models to POJOs, you can use the utility methods in the
DeepUnwrapclass. Though it's recommended to work with
Writerto which the engine will write the content to transform, or
nullif the transform does not support nested content (body). The returned
Writermay implements the
TransformControlinterface if it needs advanced control over the evaluation of the nested content. FreeMarker will call
Writer.close()after the transform end-tag.
Writer.close()must not close the
Writerreceived as the
outparameter (so if you are using a
FilterWriter, you must override
FilterWriter.close(), as by default that closes the wrapped
Writer). Since 2.3.27 its also allowed to return the
outwriter as is, in which case it won't be closed.
TemplateModelException- If any problem occurs that's not an
IOExceptionduring writing the template output.