void RenderTable(IEnumerable <DocBase> members, string tableName, Func <DocBase, string> memberNameTransform = null, bool generateMemberLink = false, bool renderRemarks = true) { if (members.Count() <= 0) { return; } var tableStringBuilder = new StringBuilder(); tableStringBuilder.Append(_renderer.RenderNewParagraph() + _renderer.RenderHeader(tableName, level: 2)); tableStringBuilder.Append(_renderer.RenderNewParagraph()); var dict = new Dictionary <string, string>(); var regex = new Regex("[^a-zA-Z0-9 -]"); foreach (var member in members) { var memberNameTransformed = memberNameTransform == null ? member.Name : memberNameTransform(member); var memberNameLink = "#" + regex.Replace(memberNameTransformed.ToLower(), "").Replace(" ", "-"); var remarks = ""; if (renderRemarks && !String.IsNullOrWhiteSpace(member.Remarks)) { remarks = _renderer.RenderText("Remarks:", italic: true, bold: true) + " " + _renderer.RenderText(_renderer.Sanitize(member.Remarks).Trim(), italic: true); } dict.Add(generateMemberLink ? String.Format("[{0}]({1})", memberNameTransformed, memberNameLink) : memberNameTransformed, _renderer.Sanitize(member.Summary) + _renderer.RenderLineBreak() + remarks); } tableStringBuilder.Append(_renderer.RenderDescriptionBlock(dict)); _docStringBuilder.Append(tableStringBuilder.ToString()); }
void RenderProperties(IEnumerable <PropertyDoc> properties) { if (properties.Count() <= 0) { return; } var propertiesStringBuilder = new StringBuilder(); propertiesStringBuilder.Append(_renderer.RenderLineBreak() + _renderer.RenderHeader("Properties", level: 2)); propertiesStringBuilder.Append(_renderer.RenderLineBreak()); var dict = new Dictionary <string, string>(); foreach (var property in properties) { var remarks = ""; if (property.Remarks != null) { remarks = _renderer.RenderText("Remarks: ", italic: true, bold: true) + _renderer.RenderText(_renderer.Sanitize(property.Remarks), italic: true); } dict.Add(property.Name, property.Summary + remarks); } propertiesStringBuilder.Append(_renderer.RenderDescriptionBlock(dict)); _docStringBuilder.Append(propertiesStringBuilder.ToString()); }
public void RenderDescriptionBlockTest() { var values = new Dictionary <string, string>(); values.Add("Name1", "Description1"); values.Add("Name2", "Description2"); var actualText = _gitHubRenderer.RenderDescriptionBlock(values); Assert.AreEqual("| Name | Description |\n| --- | --- |\n| Name1 | Description1 |\n| Name2 | Description2 |\n", actualText); }