Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMarkdownRenderer.cs
More file actions
Latest commit
37 lines (28 loc) · 1.25 KB
/
Copy pathMarkdownRenderer.cs
File metadata and controls
37 lines (28 loc) · 1.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
usingMarkdig;
usingShellDocs.Core;
namespaceShellDocs.Markdown;
publicclassMarkdownRenderer
{
privatereadonlyTypeRegistry_registry;
privatereadonlyMarkdownPipeline_pipeline;
publicMarkdownRenderer():this(newTypeRegistry(),MarkdownPipelineFactory.Create()){}
publicMarkdownRenderer(TypeRegistryregistry):this(registry,MarkdownPipelineFactory.Create()){}
publicMarkdownRenderer(TypeRegistryregistry,MarkdownPipelinepipeline)
{
_registry=registry;
_pipeline=pipeline;
}
publicIReadOnlyList<string>LastWarnings{get;privateset;}=Array.Empty<string>();
publicRenderedDocumentRender(stringmarkdown)
{
varparsed=FrontmatterParser.Parse(markdown??"");
varextractor=newSlotExtractor(_registry);
var(processed,slots,warnings)=extractor.Process(parsed.Body);
LastWarnings=warnings;
vardoc=Markdig.Markdown.Parse(processed,_pipeline);
varheadings=HeadingExtractor.Extract(doc);
varhtml=CodeBlockEnhancer.Enhance(doc.ToHtml(_pipeline));
returnnewRenderedDocument(html,slots,parsed,headings);
}
publicRenderedDocumentRenderFile(stringpath)=>Render(File.ReadAllText(path));
}