using System.Text.RegularExpressions;
using System.Collections;
public static void Main()
typeof(ManagementApiDocumenter),
var doc = new ManagementApiDocumenter(list);
Console.WriteLine(doc.ReadMePage);
public class ManagementApiDocumenter : MarkdownBuilder
public Type[] Types { get; }
public ManagementApiDocumenter(Type[] types)
public MarkdownBuilder ReadMePage
public MarkdownBuilder Header
=> Header1("API Header");
public MarkdownBuilder Summaries
=> Header2("Type Summary")
select Line($"class {item.Name}"))
public MarkdownBuilder Body
Line("[Body] => un\npara graphe")
public MarkdownBuilder Outro
Encore du {Mono("texte")} dans un
{Bullet("autre") + Bullet("format")}
public class MarkdownBuilder
public static MarkdownBuilder Empty
=> new MarkdownBuilder();
public static MarkdownBuilder operator +(MarkdownBuilder a, object b)
output.builder.Append(a);
if (b is IEnumerable sequence
foreach (var item in sequence)
output.builder.Append(item);
output.builder.Append(b);
public static MarkdownBuilder Build(object content)
private StringBuilder builder
public override string ToString()
public MarkdownBuilder Trim()
=> Build(builder.ToString().Trim());
public MarkdownBuilder NewLine
public MarkdownBuilder Inline(object content)
+ Regex.Replace(Build(content).ToString(), @"\s+", " ");
public MarkdownBuilder Line(object content)
public MarkdownBuilder Para(object content)
public MarkdownBuilder Separator
public MarkdownBuilder Header1(object content)
public MarkdownBuilder Header2(object content)
public MarkdownBuilder Bullet(object content)
public MarkdownBuilder Bold(object content)
public MarkdownBuilder Italic(object content)
public MarkdownBuilder Strike(object content)
public MarkdownBuilder Mono(object content)