void BuildTable <T>(MarkdownBuilder mb, string label, T[] array, IEnumerable <XmlDocumentComment> docs, Func <T, string> getTypeNameFunc, Func <T, string> getFieldNameFunc, Func <T, string> getFinalNameFunc)
        {
            if (array.Any())
            {
                mb.AppendLine("### " + label);
                mb.AppendLine();

                string[] head = (this._type.IsEnum)
                    ? new[] { "Value", "Name", "Description" }
                    : new[] { "Type", "Name", "Description" };

                // IEnumerable<T> seq = array;
                if (!this._type.IsEnum)
                {
                    array = array.OrderBy(x => getFieldNameFunc(x)).ToArray();
                }

                var data = array.Select(item2 => {
                    var summary  = docs.FirstOrDefault(x => x.MemberName == getFieldNameFunc(item2))?.Summary ?? "";
                    var typeName = "";
                    try {
                        typeName = getTypeNameFunc(item2);
                    }
                    catch {
                        typeName = "[Unknown type]";
                    }
                    return(new[] { MarkdownBuilder.MarkdownCodeQuote(typeName), getFinalNameFunc(item2), summary });
                });

                mb.Table(head, data);
                mb.AppendLine();
            }
        }
Esempio n. 2
0
        private string BuildContent(TypeScriptEnumeration @enum)
        {
            var mb = new MarkdownBuilder();

            mb.AppendLine(@enum.Comment?.ShortText ?? "");
            mb.AppendLine();

            BuildExample(mb, @enum.Comment);

            mb.Header(3, "Enum");

            var headers = new string[] { "Name", "Value", "Description" };
            var data    = @enum.Members.Select(m => new string[] { m.Name, MarkdownBuilder.MarkdownCodeQuote(m.DefaultValue), m.Comment?.ShortText ?? "" });

            mb.Table(headers, data);

            return(mb.ToString());
        }