/// <summary> /// Constructs instance of HTML minifier /// </summary> /// <param name="settings">HTML minification settings</param> /// <param name="cssMinifier">CSS minifier</param> /// <param name="jsMinifier">JS minifier</param> /// <param name="logger">Logger</param> public HtmlMinifier(HtmlMinificationSettings settings = null, ICssMinifier cssMinifier = null, IJsMinifier jsMinifier = null, ILogger logger = null) { settings = settings ?? new HtmlMinificationSettings(); _genericHtmlMinifier = new GenericHtmlMinifier( new GenericHtmlMinificationSettings { WhitespaceMinificationMode = settings.WhitespaceMinificationMode, RemoveHtmlComments = settings.RemoveHtmlComments, RemoveHtmlCommentsFromScriptsAndStyles = settings.RemoveHtmlCommentsFromScriptsAndStyles, RemoveCdataSectionsFromScriptsAndStyles = settings.RemoveCdataSectionsFromScriptsAndStyles, UseShortDoctype = settings.UseShortDoctype, PreserveCase = settings.PreserveCase, UseMetaCharsetTag = settings.UseMetaCharsetTag, EmptyTagRenderMode = settings.EmptyTagRenderMode, RemoveOptionalEndTags = settings.RemoveOptionalEndTags, PreservableOptionalTagList = settings.PreservableOptionalTagList, RemoveTagsWithoutContent = settings.RemoveTagsWithoutContent, CollapseBooleanAttributes = settings.CollapseBooleanAttributes, AttributeQuotesRemovalMode = settings.AttributeQuotesRemovalMode, RemoveEmptyAttributes = settings.RemoveEmptyAttributes, RemoveRedundantAttributes = settings.RemoveRedundantAttributes, RemoveJsTypeAttributes = settings.RemoveJsTypeAttributes, RemoveCssTypeAttributes = settings.RemoveCssTypeAttributes, PreservableAttributeList = settings.PreservableAttributeList, RemoveHttpProtocolFromAttributes = settings.RemoveHttpProtocolFromAttributes, RemoveHttpsProtocolFromAttributes = settings.RemoveHttpsProtocolFromAttributes, RemoveJsProtocolFromAttributes = settings.RemoveJsProtocolFromAttributes, MinifyEmbeddedCssCode = settings.MinifyEmbeddedCssCode, MinifyInlineCssCode = settings.MinifyInlineCssCode, MinifyEmbeddedJsCode = settings.MinifyEmbeddedJsCode, MinifyInlineJsCode = settings.MinifyInlineJsCode, ProcessableScriptTypeList = settings.ProcessableScriptTypeList, MinifyKnockoutBindingExpressions = settings.MinifyKnockoutBindingExpressions, MinifyAngularBindingExpressions = settings.MinifyAngularBindingExpressions, CustomAngularDirectiveList = settings.CustomAngularDirectiveList, UseXhtmlSyntax = false }, cssMinifier, jsMinifier, logger ); }
/// <summary> /// Gets a instance of inner HTML minifier /// </summary> /// <returns>Instance of inner HTML minifier</returns> private GenericHtmlMinifier GetInnerHtmlMinifierInstance() { lock (_innerHtmlMinifierInstanceSynchronizer) { if (_innerHtmlMinifier == null) { _innerHtmlMinifier = new GenericHtmlMinifier(_settings, new NullCssMinifier(), new NullJsMinifier(), new NullLogger()); } return _innerHtmlMinifier; } }
/// <summary> /// Gets a instance of inner HTML minifier /// </summary> /// <returns>Instance of inner HTML minifier</returns> private GenericHtmlMinifier GetInnerHtmlMinifierInstance() { if (_innerHtmlMinifierInitializedFlag.Set()) { _innerHtmlMinifier = new GenericHtmlMinifier(_settings, new NullCssMinifier(), new NullJsMinifier(), new NullLogger()); } return _innerHtmlMinifier; }