XHTML minification settings
Inheritance: WebMarkupMin.Core.CommonHtmlMinificationSettingsBase
Example #1
0
        /// <summary>
        /// Creates a instance of XHTML minifier based on the settings
        /// that specified in configuration files (App.config or Web.config)
        /// </summary>
        /// <param name="settings">XHTML minification settings</param>
        /// <param name="cssMinifier">CSS minifier</param>
        /// <param name="jsMinifier">JS minifier</param>
        /// <param name="logger">logger</param>
        /// <returns>XHTML minifier</returns>
        public XhtmlMinifier CreateXhtmlMinifierInstance(XhtmlMinificationSettings settings = null,
                                                         ICssMinifier cssMinifier           = null, IJsMinifier jsMinifier = null, ILogger logger = null)
        {
            XhtmlMinificationSettings innerSettings = settings ?? GetXhtmlMinificationSettings();
            ICssMinifier innerCssMinifier           = cssMinifier ?? _wmmContext.Code.CreateDefaultCssMinifierInstance();
            IJsMinifier  innerJsMinifier            = jsMinifier ?? _wmmContext.Code.CreateDefaultJsMinifierInstance();
            ILogger      innerLogger = logger ?? _wmmContext.GetDefaultLoggerInstance();

            var xhtmlMinifier = new XhtmlMinifier(innerSettings, innerCssMinifier, innerJsMinifier, innerLogger);

            return(xhtmlMinifier);
        }
Example #2
0
        /// <summary>
        /// Gets a XHTML minification settings based on data from
        /// configuration files (App.config or Web.config)
        /// </summary>
        /// <returns>XHTML minification settings</returns>
        public XhtmlMinificationSettings GetXhtmlMinificationSettings()
        {
            XhtmlMinificationConfiguration xhtmlConfig = _wmmContext.GetCoreConfiguration().Xhtml;

            var xhtmlSettings = new XhtmlMinificationSettings();

            MapCommonHtmlSettings(xhtmlSettings, xhtmlConfig);
            xhtmlSettings.RenderEmptyTagsWithSpace = xhtmlConfig.RenderEmptyTagsWithSpace;


            return(xhtmlSettings);
        }
        /// <summary>
        /// Constructs a instance of XHTML minification manager
        /// </summary>
        /// <param name="settings">XHTML minification settings</param>
        /// <param name="cssMinifierFactory">CSS minifier factory</param>
        /// <param name="jsMinifierFactory">JS minifier factory</param>
        /// <param name="logger">Logger</param>
        public XhtmlMinificationManager(XhtmlMinificationSettings settings,
			ICssMinifierFactory cssMinifierFactory,
			IJsMinifierFactory jsMinifierFactory,
			ILogger logger)
        {
            MinificationSettings = settings;
            SupportedMediaTypes = new HashSet<string>(MediaTypeGroupConstants.Xhtml);
            IncludedPages = new List<IUrlMatcher>();
            ExcludedPages = new List<IUrlMatcher>();
            CssMinifierFactory = cssMinifierFactory;
            JsMinifierFactory = jsMinifierFactory;

            _logger = logger;
        }
Example #4
0
        /// <summary>
        /// Constructs instance of XHTML minifier
        /// </summary>
        /// <param name="cssMinifier">CSS minifier</param>
        /// <param name="jsMinifier">JS minifier</param>
        /// <param name="settings">XHTML minification settings</param>
        /// <param name="logger">Logger</param>
        public XhtmlMinifier(XhtmlMinificationSettings settings = null, ICssMinifier cssMinifier = null,
                             IJsMinifier jsMinifier             = null, ILogger logger = null)
        {
            settings = settings ?? new XhtmlMinificationSettings();

            _genericHtmlMinifier = new GenericHtmlMinifier(
                new GenericHtmlMinificationSettings
            {
                WhitespaceMinificationMode              = settings.WhitespaceMinificationMode,
                RemoveHtmlComments                      = settings.RemoveHtmlComments,
                RemoveHtmlCommentsFromScriptsAndStyles  = settings.RemoveHtmlCommentsFromScriptsAndStyles,
                RemoveCdataSectionsFromScriptsAndStyles = false,
                UseShortDoctype    = settings.UseShortDoctype,
                CustomShortDoctype = string.Empty,
                PreserveCase       = false,
                UseMetaCharsetTag  = settings.UseMetaCharsetTag,
                EmptyTagRenderMode = settings.RenderEmptyTagsWithSpace ?
                                     HtmlEmptyTagRenderMode.SpaceAndSlash : HtmlEmptyTagRenderMode.Slash,
                RemoveOptionalEndTags             = false,
                RemoveTagsWithoutContent          = settings.RemoveTagsWithoutContent,
                CollapseBooleanAttributes         = false,
                AttributeQuotesRemovalMode        = HtmlAttributeQuotesRemovalMode.KeepQuotes,
                RemoveEmptyAttributes             = settings.RemoveEmptyAttributes,
                RemoveRedundantAttributes         = settings.RemoveRedundantAttributes,
                RemoveJsTypeAttributes            = false,
                RemoveCssTypeAttributes           = false,
                PreservableAttributeList          = settings.PreservableAttributeList,
                RemoveHttpProtocolFromAttributes  = settings.RemoveHttpProtocolFromAttributes,
                RemoveHttpsProtocolFromAttributes = settings.RemoveHttpsProtocolFromAttributes,
                RemoveJsProtocolFromAttributes    = settings.RemoveJsProtocolFromAttributes,
                MinifyEmbeddedCssCode             = settings.MinifyEmbeddedCssCode,
                MinifyInlineCssCode              = settings.MinifyInlineCssCode,
                MinifyEmbeddedJsCode             = settings.MinifyEmbeddedJsCode,
                MinifyInlineJsCode               = settings.MinifyInlineJsCode,
                MinifyEmbeddedJsonData           = settings.MinifyEmbeddedJsonData,
                ProcessableScriptTypeList        = settings.ProcessableScriptTypeList,
                MinifyKnockoutBindingExpressions = settings.MinifyKnockoutBindingExpressions,
                MinifyAngularBindingExpressions  = settings.MinifyAngularBindingExpressions,
                CustomAngularDirectiveList       = settings.CustomAngularDirectiveList,
                UseXhtmlSyntax = true
            },
                cssMinifier,
                jsMinifier,
                logger
                );
        }
Example #5
0
        /// <summary>
        /// Constructs instance of XHTML minifier
        /// </summary>
        /// <param name="cssMinifier">CSS minifier</param>
        /// <param name="jsMinifier">JS minifier</param>
        /// <param name="settings">XHTML minification settings</param>
        /// <param name="logger">Logger</param>
        public XhtmlMinifier(XhtmlMinificationSettings settings = null, ICssMinifier cssMinifier = null,
			IJsMinifier jsMinifier = null, ILogger logger = null)
        {
            settings = settings ?? new XhtmlMinificationSettings();

            _genericHtmlMinifier = new GenericHtmlMinifier(
                new GenericHtmlMinificationSettings
                {
                    WhitespaceMinificationMode = settings.WhitespaceMinificationMode,
                    RemoveHtmlComments = settings.RemoveHtmlComments,
                    RemoveHtmlCommentsFromScriptsAndStyles = settings.RemoveHtmlCommentsFromScriptsAndStyles,
                    RemoveCdataSectionsFromScriptsAndStyles = false,
                    UseShortDoctype = settings.UseShortDoctype,
                    PreserveCase = false,
                    UseMetaCharsetTag = settings.UseMetaCharsetTag,
                    EmptyTagRenderMode = settings.RenderEmptyTagsWithSpace ?
                        HtmlEmptyTagRenderMode.SpaceAndSlash : HtmlEmptyTagRenderMode.Slash,
                    RemoveOptionalEndTags = false,
                    RemoveTagsWithoutContent = settings.RemoveTagsWithoutContent,
                    CollapseBooleanAttributes = false,
                    AttributeQuotesRemovalMode = HtmlAttributeQuotesRemovalMode.KeepQuotes,
                    RemoveEmptyAttributes = settings.RemoveEmptyAttributes,
                    RemoveRedundantAttributes = settings.RemoveRedundantAttributes,
                    RemoveJsTypeAttributes = false,
                    RemoveCssTypeAttributes = false,
                    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 = true
                },
                cssMinifier,
                jsMinifier,
                logger
            );
        }
Example #6
0
 /// <summary>
 /// Minifies the XHTML content.
 /// </summary>
 /// <param name="useEmptyMinificationSettings">
 /// Boolean to specify whether to use empty minification settings.
 /// Default value is <c>false</c>, this will use commonly accepted settings.
 /// </param>
 public MinifyXhtml(bool useEmptyMinificationSettings = false)
 {
     // https://github.com/Taritsyn/WebMarkupMin/wiki/XHTML-Minifier
     _minificationSettings = new XhtmlMinificationSettings(useEmptyMinificationSettings);
 }