HTML parser
Inheritance: MarkupParserBase
        /// <summary>
        /// Constructs instance of generic HTML minifier
        /// </summary>
        /// <param name="settings">Generic HTML minification settings</param>
        /// <param name="cssMinifier">CSS minifier</param>
        /// <param name="jsMinifier">JS minifier</param>
        /// <param name="logger">Logger</param>
        public GenericHtmlMinifier(GenericHtmlMinificationSettings settings = null,
			ICssMinifier cssMinifier = null, IJsMinifier jsMinifier = null, ILogger logger = null)
        {
            _settings = settings ?? new GenericHtmlMinificationSettings();
            _logger = logger ?? new NullLogger();
            _cssMinifier = cssMinifier ?? new KristensenCssMinifier();
            _jsMinifier = jsMinifier ?? new CrockfordJsMinifier();
            _htmlParser = new HtmlParser(new HtmlParsingHandlers
            {
                XmlDeclaration = XmlDeclarationHandler,
                Doctype = DoctypeHandler,
                Comment = CommentHandler,
                IfConditionalComment = IfConditionalCommentHandler,
                EndIfConditionalComment = EndIfConditionalCommentHandler,
                StartTag = StartTagHandler,
                EndTag = EndTagHandler,
                Text = TextHandler,
                TemplateTag = TemplateTagHandler
            });

            _processableScriptTypes = new HashSet<string>(_settings.ProcessableScriptTypeCollection);

            IList<string> customAngularDirectivesWithExpressions = _settings.CustomAngularDirectiveCollection.ToList();
            _angularDirectivesWithExpressions = (customAngularDirectivesWithExpressions.Count > 0) ?
                Utils.UnionHashSets(_builtinAngularDirectivesWithExpressions, customAngularDirectivesWithExpressions)
                :
                _builtinAngularDirectivesWithExpressions
                ;
        }
        /// <summary>
        /// Constructs instance of generic HTML minifier
        /// </summary>
        /// <param name="settings">Generic HTML minification settings</param>
        /// <param name="cssMinifier">CSS minifier</param>
        /// <param name="jsMinifier">JS minifier</param>
        /// <param name="logger">Logger</param>
        public GenericHtmlMinifier(GenericHtmlMinificationSettings settings = null,
			ICssMinifier cssMinifier = null, IJsMinifier jsMinifier = null, ILogger logger = null)
        {
            _settings = settings ?? new GenericHtmlMinificationSettings();
            _logger = logger ?? new NullLogger();
            _cssMinifier = cssMinifier ?? new KristensenCssMinifier();
            _jsMinifier = jsMinifier ?? new CrockfordJsMinifier();
            _htmlParser = new HtmlParser(new HtmlParsingHandlers
            {
                XmlDeclaration = XmlDeclarationHandler,
                Doctype = DoctypeHandler,
                Comment = CommentHandler,
                IfConditionalComment = IfConditionalCommentHandler,
                EndIfConditionalComment = EndIfConditionalCommentHandler,
                StartTag = StartTagHandler,
                EndTag = EndTagHandler,
                Text = TextHandler,
                EmbeddedCode = EmbeddedCodeHandler,
                TemplateTag = TemplateTagHandler,
                IgnoredFragment = IgnoredFragmentHandler
            });

            _buffer = new List<string>();
            _errors = new List<MinificationErrorInfo>();
            _warnings = new List<MinificationErrorInfo>();
            _tagsWithNotRemovableWhitespaceQueue = new Queue<string>();
            _currentNodeType = HtmlNodeType.Unknown;
            _currentTag = null;
            _currentText = string.Empty;

            ISet<string> customAngularDirectivesWithExpressions = _settings.CustomAngularDirectiveCollection;
            _angularDirectivesWithExpressions = customAngularDirectivesWithExpressions.Count > 0 ?
                Utils.UnionHashSets(_builtinAngularDirectivesWithExpressions, customAngularDirectivesWithExpressions)
                :
                _builtinAngularDirectivesWithExpressions
                ;
        }