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); }
internal static void AppendWhitespaceIfBr(HtmlElement element, StringBuilder accum) { if (element.NodeName == "br" && !HtmlText.LastCharIsWhitespace(accum)) { accum.Append(" "); } }
protected override void VisitText(HtmlText node) { if (node.IsData) { text.Append(node.Data); } }
protected override void VisitText(HtmlText node) { if (!node.IsData) { bool preserveWhitespace = ((HtmlElement)node.ParentElement).PreserveWhitespace; StringUtil.AppendNormalisedText(_text, node, preserveWhitespace); } }
protected virtual void VisitText(HtmlText node) { if (node == null) { throw new ArgumentNullException(nameof(node)); } DefaultVisit(node); }
protected override void VisitElement(HtmlElement node) { StringUtil.AppendWhitespaceIfBr(node, _text); if (_text.Length > 0 && node.IsBlock && !HtmlText.LastCharIsWhitespace(_text)) { _text.Append(" "); } base.VisitElement(node); }
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); }
void IHtmlNodeVisitor.Visit(HtmlText text) { VisitText(text); }