Class HtmlCompressor
- java.lang.Object
- com.iizix.js.build.compressors.HtmlCompressor
- All Implemented Interfaces:
Compressor
public class HtmlCompressor extends java.lang.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 java.lang.StringALL_TAGSCould be passed tosetRemoveSurroundingSpacesmethod to remove all surrounding spaces (not recommended).static java.lang.StringBLOCK_TAGS_MAXPredefined list of tags that are block-level by default, excluding<div>and<li>tags.static java.lang.StringBLOCK_TAGS_MINPredefined list of tags that are very likely to be block-level.static java.util.regex.PatternPHP_TAG_PATTERNPredefined pattern that matches<?php ...static java.util.regex.PatternSERVER_SCRIPT_TAG_PATTERNPredefined pattern that matches<% ...static java.util.regex.PatternSERVER_SIDE_INCLUDE_PATTERNPredefined pattern that matches<--# ...
Constructor Summary
Constructors Constructor Description HtmlCompressor()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Stringcompress(java.lang.String html)The main method that compresses given HTML source and returns compressed result.CompressorgetCssCompressor()Returns CSS compressor implementation that will be used to compress inline CSS in HTML.java.util.List<java.util.regex.Pattern>getPreservePatterns()Returns a list of Patterns defining custom preserving block rulesjava.lang.StringgetRemoveSurroundingSpaces()Returns a comma separated list of tags around which spaces will be removed.HtmlCompressorStatisticsgetStatistics()ReturnsHtmlCompressorStatisticsobject containing statistics of the last HTML compression, if enabled.intgetYuiCssLineBreak()Returns number of symbols per line Yahoo YUI Compressor will use during CSS compression.org.mozilla.javascript.ErrorReportergetYuiErrorReporter()ReturnsErrorReporterused by YUI Compressor to log error messages during JavasSript compressionintgetYuiJsLineBreak()Returns number of symbols per line Yahoo YUI Compressor will use during JavaScript compression.booleanisCompressCss()Returnstrueif CSS compression is enabled.booleanisCompressJavaScript()Returnstrueif JavaScript compression is enabled.booleanisEnabled()Returnstrueif compression is enabled.booleanisGenerateStatistics()Returnstrueif HTML compression statistics is generatedbooleanisPreserveLineBreaks()Returnstrueif line breaks will be preserved.booleanisRemoveComments()Returnstrueif all HTML comments will be removed.booleanisRemoveFormAttributes()Returnstrueifmethod="get"attributes will be removed from<form>tagsbooleanisRemoveHttpProtocol()ReturnstrueifHTTPprotocol will be removed fromhref,src,cite, andactiontag attributes.booleanisRemoveHttpsProtocol()ReturnstrueifHTTPSprotocol will be removed fromhref,src,cite, andactiontag attributes.booleanisRemoveInputAttributes()Returnstrueiftype="text"attributes will be removed from<input>tagsbooleanisRemoveIntertagSpaces()Returnstrueif all inter-tag whitespace characters will be removed.booleanisRemoveJavaScriptProtocol()Returnstrueifjavascript:pseudo-protocol will be removed from inline event handlers.booleanisRemoveLinkAttributes()Returnstrueif unnecessary attributes will be removed from<link>tagsbooleanisRemoveMultiSpaces()Returnstrueif all multiple whitespace characters will be replaced with single spaces.booleanisRemoveQuotes()Returnstrueif all unnecessary quotes will be removed from tag attributes.booleanisRemoveScriptAttributes()Returnstrueif unnecessary attributes will be removed from<script>tagsbooleanisRemoveStyleAttributes()Returnstrueiftype="text/style"attributes will be removed from<style>tagsbooleanisSimpleBooleanAttributes()Returnstrueif boolean attributes will be simplifiedbooleanisSimpleDoctype()Returnstrueif existing DOCTYPE declaration will be replaced with simple<!DOCTYPE html>declaration.booleanisYuiJsDisableOptimizations()Returnstrueif Yahoo YUI Compressor will disable all the built-in micro optimizations during JavaScript compression.booleanisYuiJsNoMunge()Returnstrueif Yahoo YUI Compressor will only minify javascript without obfuscating local symbols.booleanisYuiJsPreserveAllSemiColons()Returnstrueif Yahoo YUI Compressor will preserve unnecessary semicolons during JavaScript compression.voidsetCompressCss(boolean compressCss)Enables CSS compression within <style> tags using Yahoo YUI Compressor if set totrue.voidsetCompressJavaScript(boolean compressJavaScript)Enables JavaScript compression within <script> tags using Yahoo YUI Compressor if set totrue.voidsetCssCompressor(Compressor cssCompressor)Sets CSS compressor implementation that will be used to compress inline CSS in HTML.voidsetEnabled(boolean enabled)If set tofalseall compression will be bypassed.voidsetGenerateStatistics(boolean generateStatistics)If set totrue, HTML compression statistics will be generated.voidsetPreserveLineBreaks(boolean preserveLineBreaks)If set totrue, line breaks will be preserved.voidsetPreservePatterns(java.util.List<java.util.regex.Pattern> preservePatterns)This method allows setting custom block preservation rules defined by regular expression patterns.voidsetRemoveComments(boolean removeComments)If set totrueall HTML comments will be removed.voidsetRemoveFormAttributes(boolean removeFormAttributes)If set totrue,method="get"attributes will be removed from<form>tags.voidsetRemoveHttpProtocol(boolean removeHttpProtocol)If set totrue,HTTPprotocol will be removed fromhref,src,cite, andactiontag attributes.voidsetRemoveHttpsProtocol(boolean removeHttpsProtocol)If set totrue,HTTPSprotocol will be removed fromhref,src,cite, andactiontag attributes.voidsetRemoveInputAttributes(boolean removeInputAttributes)If set totrue,type="text"attributes will be removed from<input>tags.voidsetRemoveIntertagSpaces(boolean removeIntertagSpaces)If set totrueall inter-tag whitespace characters will be removed.voidsetRemoveJavaScriptProtocol(boolean removeJavaScriptProtocol)If set totrue,javascript:pseudo-protocol will be removed from inline event handlers.voidsetRemoveLinkAttributes(boolean removeLinkAttributes)If set totrue, following attributes will be removed from<link rel="stylesheet">and<link rel="alternate stylesheet">tags: type="text/css" type="text/plain"voidsetRemoveMultiSpaces(boolean removeMultiSpaces)If set totrueall multiple whitespace characters will be replaced with single spaces.voidsetRemoveQuotes(boolean removeQuotes)If set totrueall unnecessary quotes will be removed from tag attributes.voidsetRemoveScriptAttributes(boolean removeScriptAttributes)If set totrue, following attributes will be removed from<script>tags: type="text/javascript" type="application/javascript" language="javascript"voidsetRemoveStyleAttributes(boolean removeStyleAttributes)If set totrue,type="text/style"attributes will be removed from<style>tags.voidsetRemoveSurroundingSpaces(java.lang.String tagList)Enables surrounding spaces removal around provided comma separated list of tags.voidsetSimpleBooleanAttributes(boolean simpleBooleanAttributes)If set totrue, any values of following boolean attributes will be removed: checked selected disabled readonlyvoidsetSimpleDoctype(boolean simpleDoctype)If set totrue, existing DOCTYPE declaration will be replaced with simple<!DOCTYPE html>declaration.voidsetYuiCssLineBreak(int yuiCssLineBreak)Tells Yahoo YUI Compressor to break lines after the specified number of symbols during CSS compression.voidsetYuiErrorReporter(org.mozilla.javascript.ErrorReporter yuiErrorReporter)SetsErrorReporterthat YUI Compressor will use for reporting errors during JavaScript compression.voidsetYuiJsDisableOptimizations(boolean yuiJsDisableOptimizations)Tells Yahoo YUI Compressor to disable all the built-in micro optimizations during JavaScript compression.voidsetYuiJsLineBreak(int yuiJsLineBreak)Tells Yahoo YUI Compressor to break lines after the specified number of symbols during JavaScript compression.voidsetYuiJsNoMunge(boolean yuiJsNoMunge)Tells Yahoo YUI Compressor to only minify javascript without obfuscating local symbols.voidsetYuiJsPreserveAllSemiColons(boolean yuiJsPreserveAllSemiColons)Tells Yahoo YUI Compressor to preserve unnecessary semicolons during JavaScript compression.
Field Detail
PHP_TAG_PATTERN
public static final java.util.regex.Pattern PHP_TAG_PATTERN
Predefined pattern that matches<?php ... ?>tags. Could be passed inside a list tosetPreservePatternsmethod.
SERVER_SCRIPT_TAG_PATTERN
public static final java.util.regex.Pattern SERVER_SCRIPT_TAG_PATTERN
Predefined pattern that matches<% ... %>tags. Could be passed inside a list tosetPreservePatternsmethod.
SERVER_SIDE_INCLUDE_PATTERN
public static final java.util.regex.Pattern SERVER_SIDE_INCLUDE_PATTERN
Predefined pattern that matches<--# ... -->tags. Could be passed inside a list tosetPreservePatternsmethod.
BLOCK_TAGS_MIN
public static final java.lang.String BLOCK_TAGS_MIN
Predefined list of tags that are very likely to be block-level. Could be passed tosetRemoveSurroundingSpacesmethod.- See Also:
- Constant Field Values
BLOCK_TAGS_MAX
public static final java.lang.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 tosetRemoveSurroundingSpacesmethod.- See Also:
- Constant Field Values
ALL_TAGS
public static final java.lang.String ALL_TAGS
Could be passed tosetRemoveSurroundingSpacesmethod to remove all surrounding spaces (not recommended).- See Also:
- Constant Field Values
Method Detail
compress
public java.lang.String compress(java.lang.String html)
The main method that compresses given HTML source and returns compressed result.- Specified by:
compressin interfaceCompressor- Parameters:
html- HTML content to compress- Returns:
- compressed content.
isCompressJavaScript
public boolean isCompressJavaScript()
Returnstrueif 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 totrue. Default isfalsefor 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- settrueto enable JavaScript compression. Default isfalse- See Also:
- Yahoo YUI Compressor
isCompressCss
public boolean isCompressCss()
Returnstrueif 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 totrue. Default isfalsefor 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- settrueto enable CSS compression. Default isfalse- See Also:
- Yahoo YUI Compressor
isYuiJsNoMunge
public boolean isYuiJsNoMunge()
Returnstrueif Yahoo YUI Compressor will only minify javascript without obfuscating local symbols. This corresponds to--nomungecommand line option.- Returns:
nomungeparameter value used for JavaScript compression.- See Also:
- Yahoo YUI Compressor
setYuiJsNoMunge
public void setYuiJsNoMunge(boolean yuiJsNoMunge)
Tells Yahoo YUI Compressor to only minify javascript without obfuscating local symbols. This corresponds to--nomungecommand line option. This option has effect only if JavaScript compression is enabled. Default isfalse.- Parameters:
yuiJsNoMunge- settrueto enablenomungemode- See Also:
- Yahoo YUI Compressor
isYuiJsPreserveAllSemiColons
public boolean isYuiJsPreserveAllSemiColons()
Returnstrueif Yahoo YUI Compressor will preserve unnecessary semicolons during JavaScript compression. This corresponds to--preserve-semicommand line option.- Returns:
preserve-semiparameter value used for JavaScript compression.- See Also:
- Yahoo YUI Compressor
setYuiJsPreserveAllSemiColons
public void setYuiJsPreserveAllSemiColons(boolean yuiJsPreserveAllSemiColons)
Tells Yahoo YUI Compressor to preserve unnecessary semicolons during JavaScript compression. This corresponds to--preserve-semicommand line option. This option has effect only if JavaScript compression is enabled. Default isfalse.- Parameters:
yuiJsPreserveAllSemiColons- settrueto enablepreserve-semimode- See Also:
- Yahoo YUI Compressor
isYuiJsDisableOptimizations
public boolean isYuiJsDisableOptimizations()
Returnstrueif Yahoo YUI Compressor will disable all the built-in micro optimizations during JavaScript compression. This corresponds to--disable-optimizationscommand line option.- Returns:
disable-optimizationsparameter value used for JavaScript compression.- See Also:
- Yahoo YUI Compressor
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-optimizationscommand line option. This option has effect only if JavaScript compression is enabled. Default isfalse.- Parameters:
yuiJsDisableOptimizations- settrueto enabledisable-optimizationsmode- See Also:
- Yahoo YUI Compressor
getYuiJsLineBreak
public int getYuiJsLineBreak()
Returns number of symbols per line Yahoo YUI Compressor will use during JavaScript compression. This corresponds to--line-breakcommand line option.- Returns:
line-breakparameter value used for JavaScript compression.- See Also:
- Yahoo YUI Compressor
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-breakcommand line option. This option has effect only if JavaScript compression is enabled. Default is-1to disable line breaks.- Parameters:
yuiJsLineBreak- set number of symbols per line- See Also:
- Yahoo YUI Compressor
getYuiCssLineBreak
public int getYuiCssLineBreak()
Returns number of symbols per line Yahoo YUI Compressor will use during CSS compression. This corresponds to--line-breakcommand line option.- Returns:
line-breakparameter value used for CSS compression.- See Also:
- Yahoo YUI Compressor
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-breakcommand line option. This option has effect only if CSS compression is enabled. Default is-1to disable line breaks.- Parameters:
yuiCssLineBreak- set number of symbols per line- See Also:
- Yahoo YUI Compressor
isRemoveQuotes
public boolean isRemoveQuotes()
Returnstrueif all unnecessary quotes will be removed from tag attributes.
setRemoveQuotes
public void setRemoveQuotes(boolean removeQuotes)
If set totrueall unnecessary quotes will be removed from tag attributes. Default isfalse.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- settrueto remove unnecessary quotes from tag attributes
isEnabled
public boolean isEnabled()
Returnstrueif compression is enabled.- Returns:
trueif compression is enabled.
setEnabled
public void setEnabled(boolean enabled)
If set tofalseall compression will be bypassed. Might be useful for testing purposes. Default istrue.- Parameters:
enabled- setfalseto bypass all compression
isRemoveComments
public boolean isRemoveComments()
Returnstrueif all HTML comments will be removed.- Returns:
trueif all HTML comments will be removed
setRemoveComments
public void setRemoveComments(boolean removeComments)
If set totrueall HTML comments will be removed. Default istrue.- Parameters:
removeComments- settrueto remove all HTML comments
isRemoveMultiSpaces
public boolean isRemoveMultiSpaces()
Returnstrueif all multiple whitespace characters will be replaced with single spaces.- Returns:
trueif all multiple whitespace characters will be replaced with single spaces.
setRemoveMultiSpaces
public void setRemoveMultiSpaces(boolean removeMultiSpaces)
If set totrueall multiple whitespace characters will be replaced with single spaces. Default istrue.- Parameters:
removeMultiSpaces- settrueto replace all multiple whitespace characters will single spaces.
isRemoveIntertagSpaces
public boolean isRemoveIntertagSpaces()
Returnstrueif all inter-tag whitespace characters will be removed.- Returns:
trueif all inter-tag whitespace characters will be removed.
setRemoveIntertagSpaces
public void setRemoveIntertagSpaces(boolean removeIntertagSpaces)
If set totrueall inter-tag whitespace characters will be removed. Default isfalse.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
. This option has no performance impact.- Parameters:
removeIntertagSpaces- settrueto remove all inter-tag whitespace characters
getPreservePatterns
public java.util.List<java.util.regex.Pattern> getPreservePatterns()
Returns a list of Patterns defining custom preserving block rules- Returns:
- list of
Patternobjects defining rules for preserving block rules
setPreservePatterns
public void setPreservePatterns(java.util.List<java.util.regex.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 ofPatternobjects that will be used to skip matched blocks during compression
getYuiErrorReporter
public org.mozilla.javascript.ErrorReporter getYuiErrorReporter()
ReturnsErrorReporterused by YUI Compressor to log error messages during JavasSript compression- Returns:
ErrorReporterused by YUI Compressor to log error messages during JavasSript compression
setYuiErrorReporter
public void setYuiErrorReporter(org.mozilla.javascript.ErrorReporter yuiErrorReporter)
SetsErrorReporterthat YUI Compressor will use for reporting errors during JavaScript compression. If noErrorReporterwas provided YuiJavaScriptCompressor.DefaultErrorReporter will be used which reports errors toSystem.errstream.- Parameters:
yuiErrorReporter-ErrorReporterthat will be used by YUI Compressor
getCssCompressor
public Compressor getCssCompressor()
Returns CSS compressor implementation that will be used to compress inline CSS in HTML.- Returns:
Compressorimplementation that will be used to compress inline CSS in HTML.- See Also:
YuiCssCompressor, Yahoo YUI Compressor
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
YuiCssCompressorwill be used by default.- Parameters:
cssCompressor-Compressorimplementation that will be used for inline CSS compression- See Also:
YuiCssCompressor, Yahoo YUI Compressor
isSimpleDoctype
public boolean isSimpleDoctype()
Returnstrueif existing DOCTYPE declaration will be replaced with simple<!DOCTYPE html>declaration.- Returns:
trueif existing DOCTYPE declaration will be replaced with simple<!DOCTYPE html>declaration.
setSimpleDoctype
public void setSimpleDoctype(boolean simpleDoctype)
If set totrue, existing DOCTYPE declaration will be replaced with simple<!DOCTYPE html>declaration. Default isfalse.- Parameters:
simpleDoctype- settrueto replace existing DOCTYPE declaration with<!DOCTYPE html>
isRemoveScriptAttributes
public boolean isRemoveScriptAttributes()
Returnstrueif unnecessary attributes will be removed from<script>tags- Returns:
trueif unnecessary attributes will be removed from<script>tags
setRemoveScriptAttributes
public void setRemoveScriptAttributes(boolean removeScriptAttributes)
If set totrue, following attributes will be removed from<script>tags:- type="text/javascript"
- type="application/javascript"
- language="javascript"
Default is
false.- Parameters:
removeScriptAttributes- settrueto remove unnecessary attributes from<script>tags
isRemoveStyleAttributes
public boolean isRemoveStyleAttributes()
Returnstrueiftype="text/style"attributes will be removed from<style>tags- Returns:
trueiftype="text/style"attributes will be removed from<style>tags
setRemoveStyleAttributes
public void setRemoveStyleAttributes(boolean removeStyleAttributes)
If set totrue,type="text/style"attributes will be removed from<style>tags. Default isfalse.- Parameters:
removeStyleAttributes- settrueto removetype="text/style"attributes from<style>tags
isRemoveLinkAttributes
public boolean isRemoveLinkAttributes()
Returnstrueif unnecessary attributes will be removed from<link>tags- Returns:
trueif unnecessary attributes will be removed from<link>tags
setRemoveLinkAttributes
public void setRemoveLinkAttributes(boolean removeLinkAttributes)
If set totrue, 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- settrueto remove unnecessary attributes from<link>tags
isRemoveFormAttributes
public boolean isRemoveFormAttributes()
Returnstrueifmethod="get"attributes will be removed from<form>tags- Returns:
trueifmethod="get"attributes will be removed from<form>tags
setRemoveFormAttributes
public void setRemoveFormAttributes(boolean removeFormAttributes)
If set totrue,method="get"attributes will be removed from<form>tags. Default isfalse.- Parameters:
removeFormAttributes- settrueto removemethod="get"attributes from<form>tags
isRemoveInputAttributes
public boolean isRemoveInputAttributes()
Returnstrueiftype="text"attributes will be removed from<input>tags- Returns:
trueiftype="text"attributes will be removed from<input>tags
setRemoveInputAttributes
public void setRemoveInputAttributes(boolean removeInputAttributes)
If set totrue,type="text"attributes will be removed from<input>tags. Default isfalse.- Parameters:
removeInputAttributes- settrueto removetype="text"attributes from<input>tags
isSimpleBooleanAttributes
public boolean isSimpleBooleanAttributes()
Returnstrueif boolean attributes will be simplified- Returns:
trueif boolean attributes will be simplified
setSimpleBooleanAttributes
public void setSimpleBooleanAttributes(boolean simpleBooleanAttributes)
If set totrue, 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- settrueto simplify boolean attributes
isRemoveJavaScriptProtocol
public boolean isRemoveJavaScriptProtocol()
Returnstrueifjavascript:pseudo-protocol will be removed from inline event handlers.- Returns:
trueifjavascript:pseudo-protocol will be removed from inline event handlers.
setRemoveJavaScriptProtocol
public void setRemoveJavaScriptProtocol(boolean removeJavaScriptProtocol)
If set totrue,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- settrueto removejavascript:pseudo-protocol from inline event handlers.
isRemoveHttpProtocol
public boolean isRemoveHttpProtocol()
ReturnstrueifHTTPprotocol will be removed fromhref,src,cite, andactiontag attributes.- Returns:
trueifHTTPprotocol will be removed fromhref,src,cite, andactiontag attributes.
setRemoveHttpProtocol
public void setRemoveHttpProtocol(boolean removeHttpProtocol)
If set totrue,HTTPprotocol will be removed fromhref,src,cite, andactiontag 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- settrueto removeHTTPprotocol from tag attributes
isRemoveHttpsProtocol
public boolean isRemoveHttpsProtocol()
ReturnstrueifHTTPSprotocol will be removed fromhref,src,cite, andactiontag attributes.- Returns:
trueifHTTPSprotocol will be removed fromhref,src,cite, andactiontag attributes.
setRemoveHttpsProtocol
public void setRemoveHttpsProtocol(boolean removeHttpsProtocol)
If set totrue,HTTPSprotocol will be removed fromhref,src,cite, andactiontag 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- settrueto removeHTTPprotocol from tag attributes
isGenerateStatistics
public boolean isGenerateStatistics()
Returnstrueif HTML compression statistics is generated- Returns:
trueif HTML compression statistics is generated
setGenerateStatistics
public void setGenerateStatistics(boolean generateStatistics)
If set totrue, HTML compression statistics will be generated.Important: Enabling statistics makes HTML compressor not thread safe.
Default is
false.- Parameters:
generateStatistics- settrueto generate HTML compression statistics- See Also:
getStatistics()
getStatistics
public HtmlCompressorStatistics getStatistics()
ReturnsHtmlCompressorStatisticsobject containing statistics of the last HTML compression, if enabled. Should be called aftercompress(String)- Returns:
HtmlCompressorStatisticsobject containing last HTML compression statistics- See Also:
HtmlCompressorStatistics,setGenerateStatistics(boolean)
isPreserveLineBreaks
public boolean isPreserveLineBreaks()
Returnstrueif line breaks will be preserved.- Returns:
trueif line breaks will be preserved.
setPreserveLineBreaks
public void setPreserveLineBreaks(boolean preserveLineBreaks)
If set totrue, line breaks will be preserved.Default is
false.- Parameters:
preserveLineBreaks- settrueto preserve line breaks
getRemoveSurroundingSpaces
public java.lang.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(java.lang.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