Exemplo n.º 1
0
        protected override void VisitText(HtmlText node)
        {
            string html;

            if (node.IsData)
            {
                html = node.Data;
            }
            else
            {
                html = HtmlEncoder.Escape(node.Data, _settings.Charset.GetEncoder(), _settings.EscapeMode);

                if (PrettyPrint &&
                    node.ParentElement is HtmlElement &&
                    !((HtmlElement)node.ParentElement).PreserveWhitespace)
                {
                    html = StringUtil.NormalizeWhitespace(html);
                }

                if (PrettyPrint && node.NodePosition == 0 &&
                    node.ParentElement is HtmlElement && ((HtmlElement)node.ParentElement).Tag.FormatAsBlock && !node.IsBlank)
                {
                    Indent();
                }
            }

            _output.Append(html);
        }
Exemplo n.º 2
0
 internal static void AppendWhitespaceIfBr(HtmlElement element, StringBuilder accum)
 {
     if (element.NodeName == "br" && !HtmlText.LastCharIsWhitespace(accum))
     {
         accum.Append(" ");
     }
 }
Exemplo n.º 3
0
 protected override void VisitText(HtmlText node)
 {
     if (node.IsData)
     {
         text.Append(node.Data);
     }
 }
Exemplo n.º 4
0
 protected override void VisitText(HtmlText node)
 {
     if (!node.IsData)
     {
         bool preserveWhitespace = ((HtmlElement)node.ParentElement).PreserveWhitespace;
         StringUtil.AppendNormalisedText(_text, node, preserveWhitespace);
     }
 }
Exemplo n.º 5
0
        protected virtual void VisitText(HtmlText node)
        {
            if (node == null)
            {
                throw new ArgumentNullException(nameof(node));
            }

            DefaultVisit(node);
        }
Exemplo n.º 6
0
            protected override void VisitElement(HtmlElement node)
            {
                StringUtil.AppendWhitespaceIfBr(node, _text);

                if (_text.Length > 0 && node.IsBlock && !HtmlText.LastCharIsWhitespace(_text))
                {
                    _text.Append(" ");
                }

                base.VisitElement(node);
            }
Exemplo n.º 7
0
        internal static void AppendNormalisedText(StringBuilder accum, HtmlText textNode, bool preserveWhitespace)
        {
            string text = textNode.Data;

            if (!preserveWhitespace)
            {
                text = StringUtil.NormalizeWhitespace(text);

                if (HtmlText.LastCharIsWhitespace(accum))
                {
                    text = HtmlText.StripLeadingWhitespace(text);
                }
            }
            accum.Append(text);
        }
Exemplo n.º 8
0
 void IHtmlNodeVisitor.Visit(HtmlText text)
 {
     VisitText(text);
 }