Class HtmlCompressor
- All Implemented Interfaces:
Compressor
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
FieldsModifier and TypeFieldDescriptionstatic final StringCould be passed tosetRemoveSurroundingSpacesmethod to remove all surrounding spaces (not recommended).static final StringPredefined list of tags that are block-level by default, excluding<div>and<li>tags.static final StringPredefined list of tags that are very likely to be block-level.protected static final PatternThe Constant booleanAttrPattern.protected static final PatternThe Constant cdataPattern.protected static final PatternThe Constant commentPattern.protected static final PatternThe Constant condCommentPattern.protected static final PatternThe Constant doctypePattern.protected static final PatternThe Constant emptyPattern.protected static final PatternThe Constant eventJsProtocolPattern.protected static final PatternThe Constant eventPattern1 (unmasked).protected static final PatternThe Constant eventPattern2.protected static final PatternThe Constant formMethodAttrPattern.protected static final PatternThe Constant httpProtocolPattern.protected static final PatternThe Constant httpsProtocolPattern.protected static final PatternThe Constant inputTypeAttrPattern.protected static final PatternThe Constant intertagPattern_CustomCustom.protected static final PatternThe Constant intertagPattern_CustomTag.protected static final PatternThe Constant intertagPattern_TagCustom.protected static final PatternThe Constant intertagPattern_TagTag.static final StringThe Constant JS_COMPRESSOR_CLOSURE.static final StringThe Constant JS_COMPRESSOR_YUI.protected static final PatternThe Constant jsLangAttrPattern.protected static final PatternThe Constant jsTypeAttrPattern.protected static final PatternThe Constant lineBreakPattern.protected static final PatternThe Constant linkRelAttrPattern.protected static final PatternThe Constant linkTypeAttrPattern.protected static final PatternThe Constant multispacePattern.static final PatternPredefined pattern that matches<?php ...protected static final PatternThe Constant prePattern.protected static final PatternThe Constant relExternalPattern.protected static final PatternThe Constant scriptPattern.static final PatternPredefined pattern that matches<% ...static final PatternPredefined pattern that matches<--# ...protected static final PatternThe Constant skipPattern.protected static final PatternThe Constant stylePattern.protected static final PatternThe Constant styleTypeAttrPattern.protected static final PatternThe Constant surroundingSpacesAllPattern.protected static final PatternThe Constant surroundingSpacesMaxPattern.protected static final PatternThe Constant surroundingSpacesMinPattern.protected static final PatternThe Constant tagEndSpacePattern.protected static final PatternThe Constant tagLastUnquotedValuePattern.protected static final PatternThe Constant tagPropertyPattern.protected static final PatternThe Constant tagQuotePattern.protected static final PatternThe Constant taPattern.protected static final StringThe Constant tempCondCommentBlock.protected static final StringThe Constant tempEventBlock.protected static final StringThe Constant tempLineBreakBlock.protected static final StringThe Constant tempPreBlock.protected static final StringThe Constant tempScriptBlock.protected static final StringThe Constant tempSkipBlock.protected static final StringThe Constant tempStyleBlock.protected static final StringThe Constant tempTextAreaBlock.protected static final StringThe Constant tempUserBlock.protected static final PatternThe Constant tempCondCommentPattern.protected static final PatternThe Constant tempEventPattern.protected static final PatternThe Constant tempLineBreakPattern.protected static final PatternThe Constant tempPrePattern.protected static final PatternThe Constant tempScriptPattern.protected static final PatternThe Constant tempSkipPattern.protected static final PatternThe Constant tempStylePattern.protected static final PatternThe Constant tempTextAreaPattern.protected static final PatternThe Constant typeAttrPattern. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionThe main method that compresses given HTML source and returns compressed result.protected StringcompressCssStyles(String source) Compress css styles.protected StringcompressJavaScript(String source) Compress java script.protected HtmlCompressorCreates the compressor clone.protected voidendStatistics(String html) End statistics.Returns CSS compressor implementation that will be used to compress inline CSS in HTML.Returns JavaScript compressor implementation that will be used to compress inline JavaScript 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.ReturnsHtmlCompressorStatisticsobject containing statistics of the last HTML compression, if enabled.intReturns number of symbols per line Yahoo YUI Compressor will use during CSS compression.org.mozilla.javascript.ErrorReporterReturnsErrorReporterused by YUI Compressor to log error messages during JavasSript compression.intReturns number of symbols per line Yahoo YUI Compressor will use during JavaScript compression.protected voidinitStatistics(String html) Inits the statistics.booleanReturnstrueif CSS compression is enabled.booleanReturnstrueif JavaScript compression is enabled.booleanReturnstrueif compression is enabled.booleanReturnstrueif HTML compression statistics is generated.booleanReturnstrueif line breaks will be preserved.booleanReturnstrueif all HTML comments will be removed.booleanReturnstrueifmethod="get"attributes will be removed from<form>tags.booleanReturnstrueifHTTPprotocol will be removed fromhref,src,cite, andactiontag attributes.booleanReturnstrueifHTTPSprotocol will be removed fromhref,src,cite, andactiontag attributes.booleanReturnstrueiftype="text"attributes will be removed from<input>tags.booleanReturnstrueif all inter-tag whitespace characters will be removed.booleanReturnstrueifjavascript:pseudo-protocol will be removed from inline event handlers.booleanReturnstrueif unnecessary attributes will be removed from<link>tags.booleanReturnstrueif all multiple whitespace characters will be replaced with single spaces.booleanReturnstrueif all unnecessary quotes will be removed from tag attributes.booleanReturnstrueif unnecessary attributes will be removed from<script>tags.booleanReturnstrueiftype="text/style"attributes will be removed from<style>tags.booleanReturnstrueif boolean attributes will be simplified.booleanReturnstrueif existing DOCTYPE declaration will be replaced with simple<!DOCTYPE html>declaration.booleanReturnstrueif Yahoo YUI Compressor will disable all the built-in micro optimizations during JavaScript compression.booleanReturnstrueif Yahoo YUI Compressor will only minify javascript without obfuscating local symbols.booleanReturnstrueif Yahoo YUI Compressor will preserve unnecessary semicolons during JavaScript compression.protected StringpreserveBlocks(String html, List<String> preBlocks, List<String> taBlocks, List<String> scriptBlocks, List<String> styleBlocks, List<String> eventBlocks, List<String> condCommentBlocks, List<String> skipBlocks, List<String> lineBreakBlocks, List<List<String>> userBlocks) Preserve blocks.protected voidprocessCondCommentBlocks(List<String> condCommentBlocks) Process cond comment blocks.protected voidprocessEventBlocks(List<String> eventBlocks) Process event blocks.protected StringprocessHtml(String html) Process html.protected voidprocessLineBreakBlocks(List<String> lineBreakBlocks) Process line break blocks.protected voidprocessPreBlocks(List<String> preBlocks) Process pre blocks.protected voidprocessPreservedBlocks(List<String> preBlocks, List<String> taBlocks, List<String> scriptBlocks, List<String> styleBlocks, List<String> eventBlocks, List<String> condCommentBlocks, List<String> skipBlocks, List<String> lineBreakBlocks, List<List<String>> userBlocks) Process preserved blocks.protected voidprocessScriptBlocks(List<String> scriptBlocks) Process script blocks.protected voidprocessSkipBlocks(List<String> skipBlocks) Process skip blocks.protected voidprocessStyleBlocks(List<String> styleBlocks) Process style blocks.protected voidprocessTextAreaBlocks(List<String> taBlocks) Process text area blocks.protected voidprocessUserBlocks(List<List<String>> userBlocks) Process user blocks.protected StringremoveComments(String html) Removes the comments.protected StringremoveFormAttributes(String html) Removes the form attributes.protected StringremoveHttpProtocol(String html) Removes the http protocol.protected StringremoveHttpsProtocol(String html) Removes the https protocol.protected StringremoveInputAttributes(String html) Removes the input attributes.protected StringremoveIntertagSpaces(String html) Removes the intertag spaces.protected StringremoveJavaScriptProtocol(String source) Removes the java script protocol.protected StringremoveLinkAttributes(String html) Removes the link attributes.protected StringremoveMultiSpaces(String html) Removes the multi spaces.protected StringremoveQuotesInsideTags(String html) Removes the quotes inside tags.protected StringremoveScriptAttributes(String html) Removes the script attributes.protected StringremoveSpacesInsideTags(String html) Removes the spaces inside tags.protected StringremoveStyleAttributes(String html) Removes the style attributes.protected StringRemoves the surrounding spaces.protected StringreturnBlocks(String html, List<String> preBlocks, List<String> taBlocks, List<String> scriptBlocks, List<String> styleBlocks, List<String> eventBlocks, List<String> condCommentBlocks, List<String> skipBlocks, List<String> lineBreakBlocks, List<List<String>> userBlocks) Return blocks.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.voidsetJavaScriptCompressor(Compressor javaScriptCompressor) Sets JavaScript compressor implementation that will be used to compress inline JavaScript in HTML.voidsetPreserveLineBreaks(boolean preserveLineBreaks) If set totrue, line breaks will be preserved.voidsetPreservePatterns(List<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(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.protected StringSimple boolean attributes.protected StringsimpleDoctype(String html) Simple doctype.
-
Field Details
-
JS_COMPRESSOR_YUI
The Constant JS_COMPRESSOR_YUI.- See Also:
-
JS_COMPRESSOR_CLOSURE
The Constant JS_COMPRESSOR_CLOSURE.- See Also:
-
PHP_TAG_PATTERN
Predefined pattern that matches<?php ... ?>tags. Could be passed inside a list tosetPreservePatternsmethod. -
SERVER_SCRIPT_TAG_PATTERN
Predefined pattern that matches<% ... %>tags. Could be passed inside a list tosetPreservePatternsmethod. -
SERVER_SIDE_INCLUDE_PATTERN
Predefined pattern that matches<--# ... -->tags. Could be passed inside a list tosetPreservePatternsmethod. -
BLOCK_TAGS_MIN
Predefined list of tags that are very likely to be block-level. Could be passed tosetRemoveSurroundingSpacesmethod.- See Also:
-
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:
-
ALL_TAGS
Could be passed tosetRemoveSurroundingSpacesmethod to remove all surrounding spaces (not recommended).- See Also:
-
TEMP_COND_COMMENT_BLOCK
The Constant tempCondCommentBlock.- See Also:
-
TEMP_PRE_BLOCK
The Constant tempPreBlock.- See Also:
-
TEMP_TEXT_AREA_BLOCK
The Constant tempTextAreaBlock.- See Also:
-
TEMP_SCRIPT_BLOCK
The Constant tempScriptBlock.- See Also:
-
TEMP_STYLE_BLOCK
The Constant tempStyleBlock.- See Also:
-
TEMP_EVENT_BLOCK
The Constant tempEventBlock.- See Also:
-
TEMP_LINE_BREAK_BLOCK
The Constant tempLineBreakBlock.- See Also:
-
TEMP_SKIP_BLOCK
The Constant tempSkipBlock.- See Also:
-
TEMP_USER_BLOCK
The Constant tempUserBlock.- See Also:
-
emptyPattern
The Constant emptyPattern. -
skipPattern
The Constant skipPattern. -
condCommentPattern
The Constant condCommentPattern. -
commentPattern
The Constant commentPattern. -
intertagPattern_TagTag
The Constant intertagPattern_TagTag. -
intertagPattern_TagCustom
The Constant intertagPattern_TagCustom. -
intertagPattern_CustomTag
The Constant intertagPattern_CustomTag. -
intertagPattern_CustomCustom
The Constant intertagPattern_CustomCustom. -
multispacePattern
The Constant multispacePattern. -
tagEndSpacePattern
The Constant tagEndSpacePattern. -
tagLastUnquotedValuePattern
The Constant tagLastUnquotedValuePattern. -
tagQuotePattern
The Constant tagQuotePattern. -
prePattern
The Constant prePattern. -
taPattern
The Constant taPattern. -
scriptPattern
The Constant scriptPattern. -
stylePattern
The Constant stylePattern. -
tagPropertyPattern
The Constant tagPropertyPattern. -
cdataPattern
The Constant cdataPattern. -
doctypePattern
The Constant doctypePattern. -
typeAttrPattern
The Constant typeAttrPattern. -
jsTypeAttrPattern
The Constant jsTypeAttrPattern. -
jsLangAttrPattern
The Constant jsLangAttrPattern. -
styleTypeAttrPattern
The Constant styleTypeAttrPattern. -
linkTypeAttrPattern
The Constant linkTypeAttrPattern. -
linkRelAttrPattern
The Constant linkRelAttrPattern. -
formMethodAttrPattern
The Constant formMethodAttrPattern. -
inputTypeAttrPattern
The Constant inputTypeAttrPattern. -
booleanAttrPattern
The Constant booleanAttrPattern. -
eventJsProtocolPattern
The Constant eventJsProtocolPattern. -
httpProtocolPattern
The Constant httpProtocolPattern. -
httpsProtocolPattern
The Constant httpsProtocolPattern. -
relExternalPattern
The Constant relExternalPattern. -
eventPattern1
The Constant eventPattern1 (unmasked). -
eventPattern2
The Constant eventPattern2. -
lineBreakPattern
The Constant lineBreakPattern. -
surroundingSpacesMinPattern
The Constant surroundingSpacesMinPattern. -
surroundingSpacesMaxPattern
The Constant surroundingSpacesMaxPattern. -
surroundingSpacesAllPattern
The Constant surroundingSpacesAllPattern. -
tempCondCommentPattern
The Constant tempCondCommentPattern. -
tempPrePattern
The Constant tempPrePattern. -
tempTextAreaPattern
The Constant tempTextAreaPattern. -
tempScriptPattern
The Constant tempScriptPattern. -
tempStylePattern
The Constant tempStylePattern. -
tempEventPattern
The Constant tempEventPattern. -
tempSkipPattern
The Constant tempSkipPattern. -
tempLineBreakPattern
The Constant tempLineBreakPattern.
-
-
Constructor Details
-
HtmlCompressor
public HtmlCompressor()
-
-
Method Details
-
compress
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.
-
initStatistics
Inits the statistics.- Parameters:
html- the html
-
endStatistics
End statistics.- Parameters:
html- the html
-
preserveBlocks
protected String preserveBlocks(String html, List<String> preBlocks, List<String> taBlocks, List<String> scriptBlocks, List<String> styleBlocks, List<String> eventBlocks, List<String> condCommentBlocks, List<String> skipBlocks, List<String> lineBreakBlocks, List<List<String>> userBlocks) Preserve blocks.- Parameters:
html- the htmlpreBlocks- the pre blockstaBlocks- the ta blocksscriptBlocks- the script blocksstyleBlocks- the style blockseventBlocks- the event blockscondCommentBlocks- the cond comment blocksskipBlocks- the skip blockslineBreakBlocks- the line break blocksuserBlocks- the user blocks- Returns:
- the string
-
returnBlocks
protected String returnBlocks(String html, List<String> preBlocks, List<String> taBlocks, List<String> scriptBlocks, List<String> styleBlocks, List<String> eventBlocks, List<String> condCommentBlocks, List<String> skipBlocks, List<String> lineBreakBlocks, List<List<String>> userBlocks) Return blocks.- Parameters:
html- the htmlpreBlocks- the pre blockstaBlocks- the ta blocksscriptBlocks- the script blocksstyleBlocks- the style blockseventBlocks- the event blockscondCommentBlocks- the cond comment blocksskipBlocks- the skip blockslineBreakBlocks- the line break blocksuserBlocks- the user blocks- Returns:
- the string
-
processHtml
Process html.- Parameters:
html- the html- Returns:
- the string
-
removeSurroundingSpaces
Removes the surrounding spaces.- Parameters:
html- the html- Returns:
- the string
-
removeQuotesInsideTags
Removes the quotes inside tags.- Parameters:
html- the html- Returns:
- the string
-
removeSpacesInsideTags
Removes the spaces inside tags.- Parameters:
html- the html- Returns:
- the string
-
removeMultiSpaces
Removes the multi spaces.- Parameters:
html- the html- Returns:
- the string
-
removeIntertagSpaces
Removes the intertag spaces.- Parameters:
html- the html- Returns:
- the string
-
removeComments
Removes the comments.- Parameters:
html- the html- Returns:
- the string
-
simpleDoctype
Simple doctype.- Parameters:
html- the html- Returns:
- the string
-
removeScriptAttributes
Removes the script attributes.- Parameters:
html- the html- Returns:
- the string
-
removeStyleAttributes
Removes the style attributes.- Parameters:
html- the html- Returns:
- the string
-
removeLinkAttributes
Removes the link attributes.- Parameters:
html- the html- Returns:
- the string
-
removeFormAttributes
Removes the form attributes.- Parameters:
html- the html- Returns:
- the string
-
removeInputAttributes
Removes the input attributes.- Parameters:
html- the html- Returns:
- the string
-
simpleBooleanAttributes
Simple boolean attributes.- Parameters:
html- the html- Returns:
- the string
-
removeHttpProtocol
Removes the http protocol.- Parameters:
html- the html- Returns:
- the string
-
removeHttpsProtocol
Removes the https protocol.- Parameters:
html- the html- Returns:
- the string
-
processPreservedBlocks
protected void processPreservedBlocks(List<String> preBlocks, List<String> taBlocks, List<String> scriptBlocks, List<String> styleBlocks, List<String> eventBlocks, List<String> condCommentBlocks, List<String> skipBlocks, List<String> lineBreakBlocks, List<List<String>> userBlocks) Process preserved blocks.- Parameters:
preBlocks- the pre blockstaBlocks- the ta blocksscriptBlocks- the script blocksstyleBlocks- the style blockseventBlocks- the event blockscondCommentBlocks- the cond comment blocksskipBlocks- the skip blockslineBreakBlocks- the line break blocksuserBlocks- the user blocks
-
processPreBlocks
Process pre blocks.- Parameters:
preBlocks- the pre blocks
-
processTextAreaBlocks
Process text area blocks.- Parameters:
taBlocks- the ta blocks
-
processCondCommentBlocks
Process cond comment blocks.- Parameters:
condCommentBlocks- the cond comment blocks
-
processSkipBlocks
Process skip blocks.- Parameters:
skipBlocks- the skip blocks
-
processLineBreakBlocks
Process line break blocks.- Parameters:
lineBreakBlocks- the line break blocks
-
processUserBlocks
Process user blocks.- Parameters:
userBlocks- the user blocks
-
processEventBlocks
Process event blocks.- Parameters:
eventBlocks- the event blocks
-
removeJavaScriptProtocol
Removes the java script protocol.- Parameters:
source- the source- Returns:
- the string
-
processScriptBlocks
Process script blocks.- Parameters:
scriptBlocks- the script blocks
-
processStyleBlocks
Process style blocks.- Parameters:
styleBlocks- the style blocks
-
compressJavaScript
Compress java script.- Parameters:
source- the source- Returns:
- the string
-
compressCssStyles
Compress css styles.- Parameters:
source- the source- Returns:
- the string
-
createCompressorClone
Creates the compressor clone.- Returns:
- the html compressor
-
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:
-
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:
-
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:
-
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:
-
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:
-
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:
-
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:
-
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:
-
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:
-
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:
-
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:
-
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:
-
isRemoveQuotes
public boolean isRemoveQuotes()Returnstrueif all unnecessary quotes will be removed from tag attributes.- Returns:
- true, if is removes the quotes
-
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
Returns a list of Patterns defining custom preserving block rules.- Returns:
- list of
Patternobjects defining rules for preserving block rules
-
setPreservePatterns
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- See Also:
-
setYuiErrorReporter
public void setYuiErrorReporter(org.mozilla.javascript.ErrorReporter yuiErrorReporter) SetsErrorReporterthat YUI Compressor will use for reporting errors during JavaScript compression. If noErrorReporterwas providedYuiJavaScriptCompressor.DefaultErrorReporterwill be used which reports errors toSystem.errstream.- Parameters:
yuiErrorReporter-ErrorReporterthat will be used by YUI Compressor- See Also:
-
getJavaScriptCompressor
Returns JavaScript compressor implementation that will be used to compress inline JavaScript in HTML.- Returns:
Compressorimplementation that will be used to compress inline JavaScript in HTML.- See Also:
-
setJavaScriptCompressor
Sets JavaScript compressor implementation that will be used to compress inline JavaScript in HTML.HtmlCompressor currently comes with basic implementations for Yahoo YUI Compressor (called
YuiJavaScriptCompressor) and Google Closure Compiler (calledClosureJavaScriptCompressor) that should be enough for most cases, but users can also create their own JavaScript compressors for custom needs.If no compressor is set
YuiJavaScriptCompressorwill be used by default.- Parameters:
javaScriptCompressor-Compressorimplementation that will be used for inline JavaScript compression- See Also:
-
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:
-
setCssCompressor
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:
-
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
ReturnsHtmlCompressorStatisticsobject containing statistics of the last HTML compression, if enabled. Should be called aftercompress(String)- Returns:
HtmlCompressorStatisticsobject containing last HTML compression statistics- See Also:
-
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
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
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
-