Skip to content

Latest commit

 

History

History
94 lines (68 loc) · 3.57 KB

MarkdownParser.md

File metadata and controls

94 lines (68 loc) · 3.57 KB
title author description keywords dev_langs
Markdown Parser
williamabradley
The Markdown Parser allows you to parse a Markdown String into a Markdown Document, and then Render it with a Markdown Renderer.
windows community toolkit, uwp community toolkit, uwp toolkit, microsoft community toolkit, microsoft toolkit, markdown, markdown parsing, parser, markdown rendering
csharp
vb

Markdown Parser

Warning

(This API is will be removed in the future. Please consider using Markdig for Markdown document parsing.

The MarkdownDocument class allows you to parse a Markdown String into a Markdown Document, and then Render it with a Markdown Renderer.

[!div class="nextstepaction"] Try it in the sample app

Example

string md = "This is **Markdown**";
MarkdownDocument document = new MarkdownDocument();
document.Parse(md);

// Takes note of all of the Top Level Headers.
foreach (var element in document.Blocks)
{
    if (element is HeaderBlock header)
    {
        Console.WriteLine($"Header: {header.ToString()}");
    }
}
Dim md As String = "This is **Markdown**"
Dim document As MarkdownDocument = New MarkdownDocument()
document.Parse(md)

For Each element In document.Blocks
    If TypeOf element Is HeaderBlock Then
        Console.WriteLine($"Header: {element.ToString()}")
    End If
Next
End Sub

Classes

Class Purpose
Microsoft.Toolkit.Parsers.Markdown.MarkdownDocument Represents a Markdown Document.
Microsoft.Toolkit.Parsers.Markdown.Render.MarkdownRendererBase A base renderer for Rendering Markdown into Controls.

MarkdownDocument

Properties

Property Type Description
Blocks IList<MarkdownBlock> Gets or sets the list of block elements.

Methods

Methods Return Type Description
Parse(string) void Parses markdown document text.
LookUpReference(string) LinkReferenceBlock Looks up a reference using the ID.

Create a Markdown Renderer

In order to create a Markdown Renderer, you can either implement your own, or inherit from MarkdownRendererBase, this class already has all the required methods, and some assistive code to make implementing a Renderer easy, all you have to do is implement the Block and Inline Rendering, and the output.

This requires an inherited IRenderContext, which allows you to keep track of the Context of the rendering.

The best way to figure out how to create a Renderer, is to look at the implementation for the UWP MarkdownTextBlock control.

Sample Project

Markdown Parser Sample Page Source. You can see this in action in the Windows Community Toolkit Sample App.

Requirements

Implementation .NET Standard 1.4.
Namespace Microsoft.Toolkit.Parsers
NuGet package Microsoft.Toolkit.Parsers

API