Код: Выделить всё
public static class MarkdownDocumentExtensions
{
public static MyDocument ToMyDocument(this MarkdownDocument markdownDocument, MarkdownPipeline? pipeline = null)
{
pipeline ??= new MarkdownPipelineBuilder().UsePipeTables().Build();
var renderer = new AdfRenderer();
pipeline.Setup(renderer);
renderer.Render(markdownDocument);
return renderer.GetDocument();
}
public static MyDocument ToMyDocument(this string markdownString)
{
var doc = Markdig.Markdown.Parse(markdownString);
return doc.ToMyDocument(doc, pipeline);
}
}
Код: Выделить всё
public class ParagraphRenderer : MyObjectRenderer
{
protected override void Write(MyRenderer renderer, ParagraphBlock obj)
{
if (obj.Inline != null)
{
renderer.WriteContents(GenerateInlineContent(renderer, obj));
}
else
{
renderer.WriteContents(GenerateLineContent(obj));
}
}
}
public class TableRenderer: MyObjectRenderer
{
protected override void Write(MyRenderer renderer, Table obj) {
// This code never gets called.
}
}
Код: Выделить всё
[Test]
public void Renderer_ParsesTable()
{
var source = @"Paragraph 1
|Header 1|Header2|Header3|
|--------|-------|-------|
|Row 1 item|22|Banana|
|Row 2 item|41|Biscuit|
Paragraph2";
var doc = source.ToMyDocument();
doc.Content.Count.Should().Be(3);
var table = doc.Content[1];
table.Type.Should().Be("table"); //
Подробнее здесь: [url]https://stackoverflow.com/questions/79853701/why-is-markdig-parsing-my-pipelinetables-as-paragraphs[/url]
Мобильная версия