html_minifier_options.go
package mjml
type HTMLMinifierQuoteCharacter string
const (
HTMLMinifierSingleQuote HTMLMinifierQuoteCharacter = "'"
HTMLMinifierDoubleQuote HTMLMinifierQuoteCharacter = "\""
)
// HTMLMinifierOptions is used to construct HTMLMinifier options
// Detailed explanations of the options are here: https://github.com/kangax/html-minifier#options-quick-reference
type HTMLMinifierOptions interface {
CaseSensitive(bool) HTMLMinifierOptions
CollapseBooleanAttributes(bool) HTMLMinifierOptions
CollapseInlineTagWhitespace(bool) HTMLMinifierOptions
CollapseWhitespace(bool) HTMLMinifierOptions
ConservativeCollapse(bool) HTMLMinifierOptions
ContinueOnParseError(bool) HTMLMinifierOptions
CustomAttrAssign([]string) HTMLMinifierOptions
CustomAttrCollapse(string) HTMLMinifierOptions
CustomAttrSurround([]string) HTMLMinifierOptions
DecodeEntities(bool) HTMLMinifierOptions
HTML5(bool) HTMLMinifierOptions
IgnoreCustomComments([]string) HTMLMinifierOptions
IgnoreCustomFragments([]string) HTMLMinifierOptions
IncludeAutoGeneratedTags(bool) HTMLMinifierOptions
KeepClosingSlash(bool) HTMLMinifierOptions
MaxLineLength(lineLength uint) HTMLMinifierOptions
MinifyCSS(bool) HTMLMinifierOptions
MinifyURLs(bool) HTMLMinifierOptions
PreserveLineBreaks(bool) HTMLMinifierOptions
PreventAttributesEscaping(bool) HTMLMinifierOptions
ProcessConditionalComments(bool) HTMLMinifierOptions
ProcessScripts([]string) HTMLMinifierOptions
QuoteCharacter(character HTMLMinifierQuoteCharacter) HTMLMinifierOptions
RemoveAttributeQuotes(bool) HTMLMinifierOptions
RemoveComments(bool) HTMLMinifierOptions
RemoveEmptyAttributes(bool) HTMLMinifierOptions
RemoveEmptyElements(bool) HTMLMinifierOptions
RemoveOptionalTags(bool) HTMLMinifierOptions
RemoveRedundantAttributes(bool) HTMLMinifierOptions
RemoveScriptTypeAttributes(bool) HTMLMinifierOptions
RemoveStyleLinkTypeAttributes(bool) HTMLMinifierOptions
RemoveTagWhitespace(bool) HTMLMinifierOptions
SortAttributes(bool) HTMLMinifierOptions
SortClassName(bool) HTMLMinifierOptions
TrimCustomFragments(bool) HTMLMinifierOptions
UseShortDoctype(bool) HTMLMinifierOptions
}
type htmlMinifierOptions struct {
data map[string]interface{}
}
func (o *htmlMinifierOptions) CaseSensitive(b bool) HTMLMinifierOptions {
ret := *o
ret.data["caseSensitive"] = b
return &ret
}
func (o *htmlMinifierOptions) CollapseBooleanAttributes(b bool) HTMLMinifierOptions {
ret := *o
ret.data["collapseBooleanAttributes"] = b
return &ret
}
func (o *htmlMinifierOptions) CollapseInlineTagWhitespace(b bool) HTMLMinifierOptions {
ret := *o
ret.data["collapseInlineTagWhitespace"] = b
return &ret
}
func (o *htmlMinifierOptions) CollapseWhitespace(b bool) HTMLMinifierOptions {
ret := *o
ret.data["collapseWhitespace"] = b
return &ret
}
func (o *htmlMinifierOptions) ConservativeCollapse(b bool) HTMLMinifierOptions {
ret := *o
ret.data["conservativeCollapse"] = b
return &ret
}
func (o *htmlMinifierOptions) ContinueOnParseError(b bool) HTMLMinifierOptions {
ret := *o
ret.data["continueOnParseError"] = b
return &ret
}
func (o *htmlMinifierOptions) CustomAttrAssign(regexes []string) HTMLMinifierOptions {
ret := *o
ret.data["customAttrAssign"] = regexes
return &ret
}
func (o *htmlMinifierOptions) CustomAttrCollapse(regex string) HTMLMinifierOptions {
ret := *o
ret.data["customAttrCollapse"] = regex
return &ret
}
func (o *htmlMinifierOptions) CustomAttrSurround(regexes []string) HTMLMinifierOptions {
ret := *o
ret.data["customAttrSurround"] = regexes
return &ret
}
func (o *htmlMinifierOptions) DecodeEntities(b bool) HTMLMinifierOptions {
ret := *o
ret.data["decodeEntities"] = b
return &ret
}
func (o *htmlMinifierOptions) HTML5(b bool) HTMLMinifierOptions {
ret := *o
ret.data["html5"] = b
return &ret
}
func (o *htmlMinifierOptions) IgnoreCustomComments(regexes []string) HTMLMinifierOptions {
ret := *o
ret.data["ignoreCustomComments"] = regexes
return &ret
}
func (o *htmlMinifierOptions) IgnoreCustomFragments(regexes []string) HTMLMinifierOptions {
ret := *o
ret.data["ignoreCustomFragments"] = regexes
return &ret
}
func (o *htmlMinifierOptions) IncludeAutoGeneratedTags(b bool) HTMLMinifierOptions {
ret := *o
ret.data["includeAutoGeneratedTags"] = b
return &ret
}
func (o *htmlMinifierOptions) KeepClosingSlash(b bool) HTMLMinifierOptions {
ret := *o
ret.data["keepClosingSlash"] = b
return &ret
}
func (o *htmlMinifierOptions) MaxLineLength(lineLength uint) HTMLMinifierOptions {
ret := *o
ret.data["maxLineLength"] = lineLength
return &ret
}
func (o *htmlMinifierOptions) MinifyCSS(b bool) HTMLMinifierOptions {
ret := *o
ret.data["minifyCSS"] = b
return &ret
}
func (o *htmlMinifierOptions) MinifyURLs(b bool) HTMLMinifierOptions {
ret := *o
ret.data["minifyURLs"] = b
return &ret
}
func (o *htmlMinifierOptions) PreserveLineBreaks(b bool) HTMLMinifierOptions {
ret := *o
ret.data["preserveLineBreaks"] = b
return &ret
}
func (o *htmlMinifierOptions) PreventAttributesEscaping(b bool) HTMLMinifierOptions {
ret := *o
ret.data["preventAttributesEscaping"] = b
return &ret
}
func (o *htmlMinifierOptions) ProcessConditionalComments(b bool) HTMLMinifierOptions {
ret := *o
ret.data["processConditionalComments"] = b
return &ret
}
func (o *htmlMinifierOptions) ProcessScripts(scriptTypes []string) HTMLMinifierOptions {
ret := *o
ret.data["processScripts"] = scriptTypes
return &ret
}
func (o *htmlMinifierOptions) QuoteCharacter(quoteCharacter HTMLMinifierQuoteCharacter) HTMLMinifierOptions {
ret := *o
ret.data["quoteCharacter"] = quoteCharacter
return &ret
}
func (o *htmlMinifierOptions) RemoveAttributeQuotes(b bool) HTMLMinifierOptions {
ret := *o
ret.data["removeAttributeQuotes"] = b
return &ret
}
func (o *htmlMinifierOptions) RemoveComments(b bool) HTMLMinifierOptions {
ret := *o
ret.data["removeComments"] = b
return &ret
}
func (o *htmlMinifierOptions) RemoveEmptyAttributes(b bool) HTMLMinifierOptions {
ret := *o
ret.data["removeEmptyAttributes"] = b
return &ret
}
func (o *htmlMinifierOptions) RemoveEmptyElements(b bool) HTMLMinifierOptions {
ret := *o
ret.data["removeEmptyElements"] = b
return &ret
}
func (o *htmlMinifierOptions) RemoveOptionalTags(b bool) HTMLMinifierOptions {
ret := *o
ret.data["removeOptionalTags"] = b
return &ret
}
func (o *htmlMinifierOptions) RemoveRedundantAttributes(b bool) HTMLMinifierOptions {
ret := *o
ret.data["removeRedundantAttributes"] = b
return &ret
}
func (o *htmlMinifierOptions) RemoveScriptTypeAttributes(b bool) HTMLMinifierOptions {
ret := *o
ret.data["removeScriptTypeAttributes"] = b
return &ret
}
func (o *htmlMinifierOptions) RemoveStyleLinkTypeAttributes(b bool) HTMLMinifierOptions {
ret := *o
ret.data["removeStyleLinkTypeAttributes"] = b
return &ret
}
func (o *htmlMinifierOptions) RemoveTagWhitespace(b bool) HTMLMinifierOptions {
ret := *o
ret.data["removeTagWhitespace"] = b
return &ret
}
func (o *htmlMinifierOptions) SortAttributes(b bool) HTMLMinifierOptions {
ret := *o
ret.data["sortAttributes"] = b
return &ret
}
func (o *htmlMinifierOptions) SortClassName(b bool) HTMLMinifierOptions {
ret := *o
ret.data["sortClassName"] = b
return &ret
}
func (o *htmlMinifierOptions) TrimCustomFragments(b bool) HTMLMinifierOptions {
ret := *o
ret.data["trimCustomFragments"] = b
return &ret
}
func (o *htmlMinifierOptions) UseShortDoctype(b bool) HTMLMinifierOptions {
ret := *o
ret.data["useShortDoctype"] = b
return &ret
}
func NewHTMLMinifierOptions() HTMLMinifierOptions {
return &htmlMinifierOptions{
data: map[string]interface{}{},
}
}