Class HtmlCompressor

java.lang.Object
com.iizix.js.build.compressors.HtmlCompressor
All Implemented Interfaces:
Compressor

public class HtmlCompressor extends Object implements Compressor
Class that compresses given HTML source by removing comments, extra spaces and line breaks while preserving content within <pre>, <textarea>, <script> and <style> tags.

Blocks that should be additionally preserved could be marked with:
<!-- {{{ --
    ...
<!-- }}} -->

or any number of user defined patterns.

Content inside <script> or <style> tags could be optionally compressed using Yahoo YUI Compressor or Google Closure Compiler libraries.

Author:
Sergiy Kovalchuk
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
    Could be passed to setRemoveSurroundingSpaces method to remove all surrounding spaces (not recommended).
    static final String
    Predefined list of tags that are block-level by default, excluding <div> and <li> tags.
    static final String
    Predefined list of tags that are very likely to be block-level.
    static final Pattern
    Predefined pattern that matches <?php ...
    static final Pattern
    Predefined pattern that matches <% ...
    static final Pattern
    Predefined pattern that matches <--# ...
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    The main method that compresses given HTML source and returns compressed result.
    Returns CSS compressor implementation that will be used to compress inline CSS in HTML.
    Returns a list of Patterns defining custom preserving block rules
    Returns a comma separated list of tags around which spaces will be removed.
    Returns HtmlCompressorStatistics object containing statistics of the last HTML compression, if enabled.
    int
    Returns number of symbols per line Yahoo YUI Compressor will use during CSS compression.
    int
    Returns number of symbols per line Yahoo YUI Compressor will use during JavaScript compression.
    boolean
    Returns true if CSS compression is enabled.
    boolean
    Returns true if JavaScript compression is enabled.
    boolean
    Returns true if compression is enabled.
    boolean
    Returns true if HTML compression statistics is generated
    boolean
    Returns true if line breaks will be preserved.
    boolean
    Returns true if all HTML comments will be removed.
    boolean
    Returns true if method="get" attributes will be removed from <form> tags
    boolean
    Returns true if HTTP protocol will be removed from href, src, cite, and action tag attributes.
    boolean
    Returns true if HTTPS protocol will be removed from href, src, cite, and action tag attributes.
    boolean
    Returns true if type="text" attributes will be removed from <input> tags
    boolean
    Returns true if all inter-tag whitespace characters will be removed.
    boolean
    Returns true if javascript: pseudo-protocol will be removed from inline event handlers.
    boolean
    Returns true if unnecessary attributes will be removed from <link> tags
    boolean
    Returns true if all multiple whitespace characters will be replaced with single spaces.
    boolean
    Returns true if all unnecessary quotes will be removed from tag attributes.
    boolean
    Returns true if unnecessary attributes will be removed from <script> tags
    boolean
    Returns true if type="text/style" attributes will be removed from <style> tags
    boolean
    Returns true if boolean attributes will be simplified
    boolean
    Returns true if existing DOCTYPE declaration will be replaced with simple <!DOCTYPE html> declaration.
    boolean
    Returns true if Yahoo YUI Compressor will disable all the built-in micro optimizations during JavaScript compression.
    boolean
    Returns true if Yahoo YUI Compressor will only minify javascript without obfuscating local symbols.
    boolean
    Returns true if Yahoo YUI Compressor will preserve unnecessary semicolons during JavaScript compression.
    void
    setCompressCss(boolean compressCss)
    Enables CSS compression within <style> tags using Yahoo YUI Compressor if set to true.
    void
    setCompressJavaScript(boolean compressJavaScript)
    Enables JavaScript compression within <script> tags using Yahoo YUI Compressor if set to true.
    void
    Sets CSS compressor implementation that will be used to compress inline CSS in HTML.
    void
    setEnabled(boolean enabled)
    If set to false all compression will be bypassed.
    void
    setGenerateStatistics(boolean generateStatistics)
    If set to true, HTML compression statistics will be generated.
    void
    setPreserveLineBreaks(boolean preserveLineBreaks)
    If set to true, line breaks will be preserved.
    void
    setPreservePatterns(List<Pattern> preservePatterns)
    This method allows setting custom block preservation rules defined by regular expression patterns.
    void
    setRemoveComments(boolean removeComments)
    If set to true all HTML comments will be removed.
    void
    setRemoveFormAttributes(boolean removeFormAttributes)
    If set to true, method="get" attributes will be removed from <form> tags.
    void
    setRemoveHttpProtocol(boolean removeHttpProtocol)
    If set to true, HTTP protocol will be removed from href, src, cite, and action tag attributes.
    void
    setRemoveHttpsProtocol(boolean removeHttpsProtocol)
    If set to true, HTTPS protocol will be removed from href, src, cite, and action tag attributes.
    void
    setRemoveInputAttributes(boolean removeInputAttributes)
    If set to true, type="text" attributes will be removed from <input> tags.
    void
    setRemoveIntertagSpaces(boolean removeIntertagSpaces)
    If set to true all inter-tag whitespace characters will be removed.
    void
    setRemoveJavaScriptProtocol(boolean removeJavaScriptProtocol)
    If set to true, javascript: pseudo-protocol will be removed from inline event handlers.
    void
    setRemoveLinkAttributes(boolean removeLinkAttributes)
    If set to true, following attributes will be removed from <link rel="stylesheet"> and <link rel="alternate stylesheet"> tags: type="text/css" type="text/plain"
    void
    setRemoveMultiSpaces(boolean removeMultiSpaces)
    If set to true all multiple whitespace characters will be replaced with single spaces.
    void
    setRemoveQuotes(boolean removeQuotes)
    If set to true all unnecessary quotes will be removed from tag attributes.
    void
    setRemoveScriptAttributes(boolean removeScriptAttributes)
    If set to true, following attributes will be removed from <script> tags: type="text/javascript" type="application/javascript" language="javascript"
    void
    setRemoveStyleAttributes(boolean removeStyleAttributes)
    If set to true, type="text/style" attributes will be removed from <style> tags.
    void
    Enables surrounding spaces removal around provided comma separated list of tags.
    void
    setSimpleBooleanAttributes(boolean simpleBooleanAttributes)
    If set to true, any values of following boolean attributes will be removed: checked selected disabled readonly
    void
    setSimpleDoctype(boolean simpleDoctype)
    If set to true, existing DOCTYPE declaration will be replaced with simple <!DOCTYPE html> declaration.
    void
    setYuiCssLineBreak(int yuiCssLineBreak)
    Tells Yahoo YUI Compressor to break lines after the specified number of symbols during CSS compression.
    void
    setYuiJsDisableOptimizations(boolean yuiJsDisableOptimizations)
    Tells Yahoo YUI Compressor to disable all the built-in micro optimizations during JavaScript compression.
    void
    setYuiJsLineBreak(int yuiJsLineBreak)
    Tells Yahoo YUI Compressor to break lines after the specified number of symbols during JavaScript compression.
    void
    setYuiJsNoMunge(boolean yuiJsNoMunge)
    Tells Yahoo YUI Compressor to only minify javascript without obfuscating local symbols.
    void
    setYuiJsPreserveAllSemiColons(boolean yuiJsPreserveAllSemiColons)
    Tells Yahoo YUI Compressor to preserve unnecessary semicolons during JavaScript compression.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • PHP_TAG_PATTERN

      public static final Pattern PHP_TAG_PATTERN
      Predefined pattern that matches <?php ... ?> tags. Could be passed inside a list to setPreservePatterns method.
    • SERVER_SCRIPT_TAG_PATTERN

      public static final Pattern SERVER_SCRIPT_TAG_PATTERN
      Predefined pattern that matches <% ... %> tags. Could be passed inside a list to setPreservePatterns method.
    • SERVER_SIDE_INCLUDE_PATTERN

      public static final Pattern SERVER_SIDE_INCLUDE_PATTERN
      Predefined pattern that matches <--# ... --> tags. Could be passed inside a list to setPreservePatterns method.
    • BLOCK_TAGS_MIN

      public static final String BLOCK_TAGS_MIN
      Predefined list of tags that are very likely to be block-level. Could be passed to setRemoveSurroundingSpaces method.
      See Also:
    • BLOCK_TAGS_MAX

      public static final String BLOCK_TAGS_MAX
      Predefined list of tags that are block-level by default, excluding <div> and <li> tags. Table tags are also included. Could be passed to setRemoveSurroundingSpaces method.
      See Also:
    • ALL_TAGS

      public static final String ALL_TAGS
      Could be passed to setRemoveSurroundingSpaces method to remove all surrounding spaces (not recommended).
      See Also:
  • Constructor Details

    • HtmlCompressor

      public HtmlCompressor()
  • Method Details

    • compress

      public String compress(String html)
      The main method that compresses given HTML source and returns compressed result.
      Specified by:
      compress in interface Compressor
      Parameters:
      html - HTML content to compress
      Returns:
      compressed content.
    • isCompressJavaScript

      public boolean isCompressJavaScript()
      Returns true if JavaScript compression is enabled.
      Returns:
      current state of JavaScript compression.
    • setCompressJavaScript

      public void setCompressJavaScript(boolean compressJavaScript)
      Enables JavaScript compression within <script> tags using Yahoo YUI Compressor if set to true. Default is false for performance reasons.

      Note: Compressing JavaScript is not recommended if pages are compressed dynamically on-the-fly because of performance impact. You should consider putting JavaScript into a separate file and compressing it using standalone YUICompressor for example.

      Parameters:
      compressJavaScript - set true to enable JavaScript compression. Default is false
      See Also:
    • isCompressCss

      public boolean isCompressCss()
      Returns true if CSS compression is enabled.
      Returns:
      current state of CSS compression.
    • setCompressCss

      public void setCompressCss(boolean compressCss)
      Enables CSS compression within <style> tags using Yahoo YUI Compressor if set to true. Default is false for performance reasons.

      Note: Compressing CSS is not recommended if pages are compressed dynamically on-the-fly because of performance impact. You should consider putting CSS into a separate file and compressing it using standalone YUICompressor for example.

      Parameters:
      compressCss - set true to enable CSS compression. Default is false
      See Also:
    • isYuiJsNoMunge

      public boolean isYuiJsNoMunge()
      Returns true if Yahoo YUI Compressor will only minify javascript without obfuscating local symbols. This corresponds to --nomunge command line option.
      Returns:
      nomunge parameter value used for JavaScript compression.
      See Also:
    • setYuiJsNoMunge

      public void setYuiJsNoMunge(boolean yuiJsNoMunge)
      Tells Yahoo YUI Compressor to only minify javascript without obfuscating local symbols. This corresponds to --nomunge command line option. This option has effect only if JavaScript compression is enabled. Default is false.
      Parameters:
      yuiJsNoMunge - set true to enable nomunge mode
      See Also:
    • isYuiJsPreserveAllSemiColons

      public boolean isYuiJsPreserveAllSemiColons()
      Returns true if Yahoo YUI Compressor will preserve unnecessary semicolons during JavaScript compression. This corresponds to --preserve-semi command line option.
      Returns:
      preserve-semi parameter value used for JavaScript compression.
      See Also:
    • setYuiJsPreserveAllSemiColons

      public void setYuiJsPreserveAllSemiColons(boolean yuiJsPreserveAllSemiColons)
      Tells Yahoo YUI Compressor to preserve unnecessary semicolons during JavaScript compression. This corresponds to --preserve-semi command line option. This option has effect only if JavaScript compression is enabled. Default is false.
      Parameters:
      yuiJsPreserveAllSemiColons - set true to enable preserve-semi mode
      See Also:
    • isYuiJsDisableOptimizations

      public boolean isYuiJsDisableOptimizations()
      Returns true if Yahoo YUI Compressor will disable all the built-in micro optimizations during JavaScript compression. This corresponds to --disable-optimizations command line option.
      Returns:
      disable-optimizations parameter value used for JavaScript compression.
      See Also:
    • setYuiJsDisableOptimizations

      public void setYuiJsDisableOptimizations(boolean yuiJsDisableOptimizations)
      Tells Yahoo YUI Compressor to disable all the built-in micro optimizations during JavaScript compression. This corresponds to --disable-optimizations command line option. This option has effect only if JavaScript compression is enabled. Default is false.
      Parameters:
      yuiJsDisableOptimizations - set true to enable disable-optimizations mode
      See Also:
    • getYuiJsLineBreak

      public int getYuiJsLineBreak()
      Returns number of symbols per line Yahoo YUI Compressor will use during JavaScript compression. This corresponds to --line-break command line option.
      Returns:
      line-break parameter value used for JavaScript compression.
      See Also:
    • setYuiJsLineBreak

      public void setYuiJsLineBreak(int yuiJsLineBreak)
      Tells Yahoo YUI Compressor to break lines after the specified number of symbols during JavaScript compression. This corresponds to --line-break command line option. This option has effect only if JavaScript compression is enabled. Default is -1 to disable line breaks.
      Parameters:
      yuiJsLineBreak - set number of symbols per line
      See Also:
    • getYuiCssLineBreak

      public int getYuiCssLineBreak()
      Returns number of symbols per line Yahoo YUI Compressor will use during CSS compression. This corresponds to --line-break command line option.
      Returns:
      line-break parameter value used for CSS compression.
      See Also:
    • setYuiCssLineBreak

      public void setYuiCssLineBreak(int yuiCssLineBreak)
      Tells Yahoo YUI Compressor to break lines after the specified number of symbols during CSS compression. This corresponds to --line-break command line option. This option has effect only if CSS compression is enabled. Default is -1 to disable line breaks.
      Parameters:
      yuiCssLineBreak - set number of symbols per line
      See Also:
    • isRemoveQuotes

      public boolean isRemoveQuotes()
      Returns true if all unnecessary quotes will be removed from tag attributes.
    • setRemoveQuotes

      public void setRemoveQuotes(boolean removeQuotes)
      If set to true all unnecessary quotes will be removed from tag attributes. Default is false.

      Note: Even though quotes are removed only when it is safe to do so, it still might break strict HTML validation. Turn this option on only if a page validation is not very important or to squeeze the most out of the compression. This option has no performance impact.

      Parameters:
      removeQuotes - set true to remove unnecessary quotes from tag attributes
    • isEnabled

      public boolean isEnabled()
      Returns true if compression is enabled.
      Returns:
      true if compression is enabled.
    • setEnabled

      public void setEnabled(boolean enabled)
      If set to false all compression will be bypassed. Might be useful for testing purposes. Default is true.
      Parameters:
      enabled - set false to bypass all compression
    • isRemoveComments

      public boolean isRemoveComments()
      Returns true if all HTML comments will be removed.
      Returns:
      true if all HTML comments will be removed
    • setRemoveComments

      public void setRemoveComments(boolean removeComments)
      If set to true all HTML comments will be removed. Default is true.
      Parameters:
      removeComments - set true to remove all HTML comments
    • isRemoveMultiSpaces

      public boolean isRemoveMultiSpaces()
      Returns true if all multiple whitespace characters will be replaced with single spaces.
      Returns:
      true if all multiple whitespace characters will be replaced with single spaces.
    • setRemoveMultiSpaces

      public void setRemoveMultiSpaces(boolean removeMultiSpaces)
      If set to true all multiple whitespace characters will be replaced with single spaces. Default is true.
      Parameters:
      removeMultiSpaces - set true to replace all multiple whitespace characters will single spaces.
    • isRemoveIntertagSpaces

      public boolean isRemoveIntertagSpaces()
      Returns true if all inter-tag whitespace characters will be removed.
      Returns:
      true if all inter-tag whitespace characters will be removed.
    • setRemoveIntertagSpaces

      public void setRemoveIntertagSpaces(boolean removeIntertagSpaces)
      If set to true all inter-tag whitespace characters will be removed. Default is false.

      Note: It is fairly safe to turn this option on unless you rely on spaces for page formatting. Even if you do, you can always preserve required spaces with &nbsp;. This option has no performance impact.

      Parameters:
      removeIntertagSpaces - set true to remove all inter-tag whitespace characters
    • getPreservePatterns

      public List<Pattern> getPreservePatterns()
      Returns a list of Patterns defining custom preserving block rules
      Returns:
      list of Pattern objects defining rules for preserving block rules
    • setPreservePatterns

      public void setPreservePatterns(List<Pattern> preservePatterns)
      This method allows setting custom block preservation rules defined by regular expression patterns. Blocks that match provided patterns will be skipped during HTML compression.

      Custom preservation rules have higher priority than default rules. Priority between custom rules are defined by their position in a list (beginning of a list has higher priority).

      Besides custom patterns, you can use 3 predefined patterns: PHP_TAG_PATTERN, SERVER_SCRIPT_TAG_PATTERN, SERVER_SIDE_INCLUDE_PATTERN.

      Parameters:
      preservePatterns - List of Pattern objects that will be used to skip matched blocks during compression
    • getCssCompressor

      public Compressor getCssCompressor()
      Returns CSS compressor implementation that will be used to compress inline CSS in HTML.
      Returns:
      Compressor implementation that will be used to compress inline CSS in HTML.
      See Also:
    • setCssCompressor

      public void setCssCompressor(Compressor cssCompressor)
      Sets CSS compressor implementation that will be used to compress inline CSS in HTML.

      HtmlCompressor currently comes with basic implementation for Yahoo YUI Compressor (called YuiCssCompressor), but users can also create their own CSS compressors for custom needs.

      If no compressor is set YuiCssCompressor will be used by default.

      Parameters:
      cssCompressor - Compressor implementation that will be used for inline CSS compression
      See Also:
    • isSimpleDoctype

      public boolean isSimpleDoctype()
      Returns true if existing DOCTYPE declaration will be replaced with simple <!DOCTYPE html> declaration.
      Returns:
      true if existing DOCTYPE declaration will be replaced with simple <!DOCTYPE html> declaration.
    • setSimpleDoctype

      public void setSimpleDoctype(boolean simpleDoctype)
      If set to true, existing DOCTYPE declaration will be replaced with simple <!DOCTYPE html> declaration. Default is false.
      Parameters:
      simpleDoctype - set true to replace existing DOCTYPE declaration with <!DOCTYPE html>
    • isRemoveScriptAttributes

      public boolean isRemoveScriptAttributes()
      Returns true if unnecessary attributes will be removed from <script> tags
      Returns:
      true if unnecessary attributes will be removed from <script> tags
    • setRemoveScriptAttributes

      public void setRemoveScriptAttributes(boolean removeScriptAttributes)
      If set to true, following attributes will be removed from <script> tags:
      • type="text/javascript"
      • type="application/javascript"
      • language="javascript"

      Default is false.

      Parameters:
      removeScriptAttributes - set true to remove unnecessary attributes from <script> tags
    • isRemoveStyleAttributes

      public boolean isRemoveStyleAttributes()
      Returns true if type="text/style" attributes will be removed from <style> tags
      Returns:
      true if type="text/style" attributes will be removed from <style> tags
    • setRemoveStyleAttributes

      public void setRemoveStyleAttributes(boolean removeStyleAttributes)
      If set to true, type="text/style" attributes will be removed from <style> tags. Default is false.
      Parameters:
      removeStyleAttributes - set true to remove type="text/style" attributes from <style> tags
    • isRemoveLinkAttributes

      public boolean isRemoveLinkAttributes()
      Returns true if unnecessary attributes will be removed from <link> tags
      Returns:
      true if unnecessary attributes will be removed from <link> tags
    • setRemoveLinkAttributes

      public void setRemoveLinkAttributes(boolean removeLinkAttributes)
      If set to true, following attributes will be removed from <link rel="stylesheet"> and <link rel="alternate stylesheet"> tags:
      • type="text/css"
      • type="text/plain"

      Default is false.

      Parameters:
      removeLinkAttributes - set true to remove unnecessary attributes from <link> tags
    • isRemoveFormAttributes

      public boolean isRemoveFormAttributes()
      Returns true if method="get" attributes will be removed from <form> tags
      Returns:
      true if method="get" attributes will be removed from <form> tags
    • setRemoveFormAttributes

      public void setRemoveFormAttributes(boolean removeFormAttributes)
      If set to true, method="get" attributes will be removed from <form> tags. Default is false.
      Parameters:
      removeFormAttributes - set true to remove method="get" attributes from <form> tags
    • isRemoveInputAttributes

      public boolean isRemoveInputAttributes()
      Returns true if type="text" attributes will be removed from <input> tags
      Returns:
      true if type="text" attributes will be removed from <input> tags
    • setRemoveInputAttributes

      public void setRemoveInputAttributes(boolean removeInputAttributes)
      If set to true, type="text" attributes will be removed from <input> tags. Default is false.
      Parameters:
      removeInputAttributes - set true to remove type="text" attributes from <input> tags
    • isSimpleBooleanAttributes

      public boolean isSimpleBooleanAttributes()
      Returns true if boolean attributes will be simplified
      Returns:
      true if boolean attributes will be simplified
    • setSimpleBooleanAttributes

      public void setSimpleBooleanAttributes(boolean simpleBooleanAttributes)
      If set to true, any values of following boolean attributes will be removed:
      • checked
      • selected
      • disabled
      • readonly

      For example, <input readonly="readonly"> would become <input readonly>

      Default is false.

      Parameters:
      simpleBooleanAttributes - set true to simplify boolean attributes
    • isRemoveJavaScriptProtocol

      public boolean isRemoveJavaScriptProtocol()
      Returns true if javascript: pseudo-protocol will be removed from inline event handlers.
      Returns:
      true if javascript: pseudo-protocol will be removed from inline event handlers.
    • setRemoveJavaScriptProtocol

      public void setRemoveJavaScriptProtocol(boolean removeJavaScriptProtocol)
      If set to true, javascript: pseudo-protocol will be removed from inline event handlers.

      For example, <a onclick="javascript:alert()"> would become <a onclick="alert()">

      Default is false.

      Parameters:
      removeJavaScriptProtocol - set true to remove javascript: pseudo-protocol from inline event handlers.
    • isRemoveHttpProtocol

      public boolean isRemoveHttpProtocol()
      Returns true if HTTP protocol will be removed from href, src, cite, and action tag attributes.
      Returns:
      true if HTTP protocol will be removed from href, src, cite, and action tag attributes.
    • setRemoveHttpProtocol

      public void setRemoveHttpProtocol(boolean removeHttpProtocol)
      If set to true, HTTP protocol will be removed from href, src, cite, and action tag attributes. URL without a protocol would make a browser use document's current protocol instead.

      Tags marked with rel="external" will be skipped.

      For example:

      <a href="http://example.com"> <script src="http://google.com/js.js" rel="external">

      would become:

      <a href="//example.com"> <script src="http://google.com/js.js" rel="external">

      Default is false.

      Parameters:
      removeHttpProtocol - set true to remove HTTP protocol from tag attributes
    • isRemoveHttpsProtocol

      public boolean isRemoveHttpsProtocol()
      Returns true if HTTPS protocol will be removed from href, src, cite, and action tag attributes.
      Returns:
      true if HTTPS protocol will be removed from href, src, cite, and action tag attributes.
    • setRemoveHttpsProtocol

      public void setRemoveHttpsProtocol(boolean removeHttpsProtocol)
      If set to true, HTTPS protocol will be removed from href, src, cite, and action tag attributes. URL without a protocol would make a browser use document's current protocol instead.

      Tags marked with rel="external" will be skipped.

      For example:

      <a href="https://example.com"> <script src="https://google.com/js.js" rel="external">

      would become:

      <a href="//example.com"> <script src="https://google.com/js.js" rel="external">

      Default is false.

      Parameters:
      removeHttpsProtocol - set true to remove HTTP protocol from tag attributes
    • isGenerateStatistics

      public boolean isGenerateStatistics()
      Returns true if HTML compression statistics is generated
      Returns:
      true if HTML compression statistics is generated
    • setGenerateStatistics

      public void setGenerateStatistics(boolean generateStatistics)
      If set to true, HTML compression statistics will be generated.

      Important: Enabling statistics makes HTML compressor not thread safe.

      Default is false.

      Parameters:
      generateStatistics - set true to generate HTML compression statistics
      See Also:
    • getStatistics

      public HtmlCompressorStatistics getStatistics()
      Returns HtmlCompressorStatistics object containing statistics of the last HTML compression, if enabled. Should be called after compress(String)
      Returns:
      HtmlCompressorStatistics object containing last HTML compression statistics
      See Also:
    • isPreserveLineBreaks

      public boolean isPreserveLineBreaks()
      Returns true if line breaks will be preserved.
      Returns:
      true if line breaks will be preserved.
    • setPreserveLineBreaks

      public void setPreserveLineBreaks(boolean preserveLineBreaks)
      If set to true, line breaks will be preserved.

      Default is false.

      Parameters:
      preserveLineBreaks - set true to preserve line breaks
    • getRemoveSurroundingSpaces

      public String getRemoveSurroundingSpaces()
      Returns a comma separated list of tags around which spaces will be removed.
      Returns:
      a comma separated list of tags around which spaces will be removed.
    • setRemoveSurroundingSpaces

      public void setRemoveSurroundingSpaces(String tagList)
      Enables surrounding spaces removal around provided comma separated list of tags.

      Besides custom defined lists, you can pass one of 3 predefined lists of tags: BLOCK_TAGS_MIN, BLOCK_TAGS_MAX, ALL_TAGS.

      Parameters:
      tagList - a comma separated list of tags around which spaces will be removed