protected virtual TagBuilder CreateTagBuilder(TagBuilderInfo tagBuilderInfo) { var tagBuilder = new TagBuilder(tagBuilderInfo.TagName); if (tagBuilderInfo.CssClass != null) { tagBuilder.AddCssClass(tagBuilderInfo.CssClass); } return(tagBuilder); }
public void WriteTo(TextWriter writer, HtmlEncoder encoder) { if (writer == null) { throw new ArgumentNullException(nameof(writer)); } if (encoder == null) { throw new ArgumentNullException(nameof(encoder)); } var isFirstListItem = true; TagBuilder listTagBuilder = null; foreach (var block in this) { if (block.IsListItem()) { var listTagName = GetListTagName(block); var isDifferentTag = !listTagName.Equals(listTagBuilder?.TagName); if (isFirstListItem || isDifferentTag) { listTagBuilder?.WriteTo(writer, encoder); listTagBuilder = new TagBuilder(listTagName); isFirstListItem = false; } var listItemTag = new TagBuilder("li"); var style = new TagBuilderInfo(block.Style); if (style.CssClass != null) { listItemTag.AddCssClass(style.CssClass); } block.WriteTo(listItemTag, writer, encoder); listTagBuilder.InnerHtml.AppendHtml(listItemTag); } else { isFirstListItem = true; listTagBuilder?.WriteTo(writer, encoder); listTagBuilder = null; block.WriteTo(writer, encoder); } } listTagBuilder?.WriteTo(writer, encoder); }
protected virtual void WriteToWrapper(TagBuilder wrapper, TagBuilderInfo tagBuilderInfo) { foreach (var field in Children) { IHtmlContent html; if (tagBuilderInfo.NeedsWrapper) { var tagBuilder = CreateTagBuilder(tagBuilderInfo); tagBuilder.InnerHtml.AppendHtml(field); html = tagBuilder; } else { html = field; } wrapper.InnerHtml.AppendHtml(html); } }