Exemplo n.º 1
0
        protected override string ProcessBlockPatternMatch(Definition definition, BlockPattern pattern, Match match)
        {
            if (definition == null)
            {
                throw new ArgumentNullException(nameof(definition));
            }

            if (pattern == null)
            {
                throw new ArgumentNullException(nameof(pattern));
            }

            if (match == null)
            {
                throw new ArgumentNullException(nameof(match));
            }

            if (!UseCss)
            {
                var patternStyle = HtmlEngineHelper.CreatePatternStyle(pattern.Style);

                return(string.Format(STYLE_SPAN_FORMAT, patternStyle, match.Value));
            }
            else
            {
                var cssClassName = HtmlEngineHelper.CreateCssClassName(definition.Name, pattern.Name);

                return(string.Format(CLASS_SPAN_FORMAT, cssClassName, match.Value));
            }
        }
Exemplo n.º 2
0
        protected override string ProcessBlockPatternMatch(Definition definition, BlockPattern pattern, Match match)
        {
            if (!UseCss)
            {
                var patternStyle = HtmlEngineHelper.CreatePatternStyle(pattern.Style);

                return(string.Format(STYLE_SPAN_FORMAT, patternStyle, match.Value));
            }

            var cssClassName = HtmlEngineHelper.CreateCssClassName(definition.Name, pattern.Name);

            return(string.Format(CLASS_SPAN_FORMAT, cssClassName, match.Value));
        }
Exemplo n.º 3
0
        protected override string ProcessWordPatternMatch(Definition definition, WordPattern pattern, Match match)
        {
            if (!UseCss)
            {
                var patternStyle = HtmlEngineHelper.CreatePatternStyle(pattern.Style);

                return(String.Format(StyleSpanFormat, patternStyle, match.Value));
            }

            var cssClassName = HtmlEngineHelper.CreateCssClassName(definition.Name, pattern.Name);

            return(String.Format(ClassSpanFormat, cssClassName, match.Value));
        }
Exemplo n.º 4
0
        protected override string PostHighlight(Definition definition, string input)
        {
            if (definition == null)
            {
                throw new ArgumentNullException(nameof(definition));
            }

            if (!UseCss)
            {
                var cssStyle = HtmlEngineHelper.CreatePatternStyle(definition.Style);

                return(string.Format(STYLE_SPAN_FORMAT, cssStyle, input));
            }

            var cssClassName = HtmlEngineHelper.CreateCssClassName(definition.Name, null);

            return(string.Format(CLASS_SPAN_FORMAT, cssClassName, input));
        }
Exemplo n.º 5
0
        protected override string PostHighlight(Definition definition, string input)
        {
            if (definition == null)
            {
                throw new ArgumentNullException("definition");
            }

            if (!UseCss)
            {
                var cssStyle = HtmlEngineHelper.CreatePatternStyle(definition.Style);

                return(String.Format(StyleSpanFormat, cssStyle, input));
            }

            var cssClassName = HtmlEngineHelper.CreateCssClassName(definition.Name, null);

            return(String.Format(ClassSpanFormat, cssClassName, input));
        }
Exemplo n.º 6
0
        protected override string ProcessBlockPatternMatch(Definition definition, BlockPattern pattern, Match match)
        {
            if (!UseCss)
            {
                var    patternStyle = HtmlEngineHelper.CreatePatternStyle(pattern.Style);
                string val          = match.Value;
                if (!pattern.IncludePatternTags)
                {
                    string prefix = WebUtility.HtmlEncode(pattern.BeginsWith);
                    string suffix = WebUtility.HtmlEncode(pattern.EndsWith);
                    if (val.StartsWith(prefix))
                    {
                        val = val.TrimStart(prefix.ToCharArray());
                    }
                    else
                    {
                        prefix = "";
                    }
                    if (val.EndsWith(suffix))
                    {
                        val = val.TrimEnd(suffix.ToCharArray());
                    }
                    else
                    {
                        suffix = "";
                    }

                    return($"{prefix}{String.Format(StyleSpanFormat, patternStyle, val)}{suffix}");
                }
                else
                {
                    return(String.Format(StyleSpanFormat, patternStyle, val));
                }
            }

            var cssClassName = HtmlEngineHelper.CreateCssClassName(definition.Name, pattern.Name);

            return(String.Format(ClassSpanFormat, cssClassName, match.Value));
        }
Exemplo n.º 7
0
        private string ProcessMarkupPatternAttributeMatches(Definition definition, MarkupPattern pattern, Match match)
        {
            var result = new StringBuilder();

            for (var i = 0; i < match.Groups["attribute"].Captures.Count; i++)
            {
                result.Append(match.Groups["ws2"].Captures[i].Value);
                if (!UseCss)
                {
                    var patternStyle = HtmlEngineHelper.CreatePatternStyle(pattern.AttributeNameColors, pattern.Style.Font);
                    result.AppendFormat(StyleSpanFormat, patternStyle, match.Groups["attribName"].Captures[i].Value);

                    if (String.IsNullOrWhiteSpace(match.Groups["attribValue"].Captures[i].Value))
                    {
                        continue;
                    }

                    patternStyle = HtmlEngineHelper.CreatePatternStyle(pattern.AttributeValueColors, pattern.Style.Font);
                    result.AppendFormat(StyleSpanFormat, patternStyle, match.Groups["attribValue"].Captures[i].Value);
                }
                else
                {
                    var cssClassName = HtmlEngineHelper.CreateCssClassName(definition.Name, pattern.Name + "AttributeName");
                    result.AppendFormat(ClassSpanFormat, cssClassName, match.Groups["attribName"].Captures[i].Value);

                    if (String.IsNullOrWhiteSpace(match.Groups["attribValue"].Captures[i].Value))
                    {
                        continue;
                    }

                    cssClassName = HtmlEngineHelper.CreateCssClassName(definition.Name, pattern.Name + "AttributeValue");
                    result.AppendFormat(ClassSpanFormat, cssClassName, match.Groups["attribValue"].Captures[i].Value);
                }
            }

            return(result.ToString());
        }
Exemplo n.º 8
0
        protected override string ProcessMarkupPatternMatch(Definition definition, MarkupPattern pattern, Match match)
        {
            if (definition == null)
            {
                throw new ArgumentNullException(nameof(definition));
            }

            if (pattern == null)
            {
                throw new ArgumentNullException(nameof(pattern));
            }

            if (match == null)
            {
                throw new ArgumentNullException(nameof(match));
            }

            var result = new StringBuilder();

            if (!UseCss)
            {
                var patternStyle = HtmlEngineHelper.CreatePatternStyle(pattern.BracketColors, pattern.Style.Font);

                result.AppendFormat
                (
                    STYLE_SPAN_FORMAT,
                    patternStyle,
                    match.Groups["openTag"]
                    .Value
                );

                result.Append
                (
                    match.Groups["ws1"]
                    .Value
                );

                patternStyle = HtmlEngineHelper.CreatePatternStyle(pattern.Style);

                result.AppendFormat
                (
                    STYLE_SPAN_FORMAT,
                    patternStyle,
                    match.Groups["tagName"]
                    .Value
                );

                if (pattern.HighlightAttributes)
                {
                    var highlightedAttributes = ProcessMarkupPatternAttributeMatches(definition, pattern, match);
                    result.Append(highlightedAttributes);
                }

                result.Append
                (
                    match.Groups["ws5"]
                    .Value
                );

                patternStyle = HtmlEngineHelper.CreatePatternStyle(pattern.BracketColors, pattern.Style.Font);

                result.AppendFormat
                (
                    STYLE_SPAN_FORMAT,
                    patternStyle,
                    match.Groups["closeTag"]
                    .Value
                );
            }
            else
            {
                var cssClassName = HtmlEngineHelper.CreateCssClassName(definition.Name, pattern.Name + "Bracket");

                result.AppendFormat
                (
                    CLASS_SPAN_FORMAT,
                    cssClassName,
                    match.Groups["openTag"]
                    .Value
                );

                result.Append
                (
                    match.Groups["ws1"]
                    .Value
                );

                cssClassName = HtmlEngineHelper.CreateCssClassName(definition.Name, pattern.Name + "TagName");

                result.AppendFormat
                (
                    CLASS_SPAN_FORMAT,
                    cssClassName,
                    match.Groups["tagName"]
                    .Value
                );

                if (pattern.HighlightAttributes)
                {
                    var highlightedAttributes = ProcessMarkupPatternAttributeMatches(definition, pattern, match);
                    result.Append(highlightedAttributes);
                }

                result.Append
                (
                    match.Groups["ws5"]
                    .Value
                );

                cssClassName = HtmlEngineHelper.CreateCssClassName(definition.Name, pattern.Name + "Bracket");

                result.AppendFormat
                (
                    CLASS_SPAN_FORMAT,
                    cssClassName,
                    match.Groups["closeTag"]
                    .Value
                );
            }

            return(result.ToString());
        }