How to Create Markdown Text in C#
Like HTML, Markdown is a markup language. Unlike HTML, Markdown aims to be as readable as possible. You can apply bold, italics, quotation marks, and strikethrough to the text. They can also be used in combination to use multiple styles at the same time.
Aspose.HTML for .NET
library is a stand-alone solution that allows you to parse and manipulate Markdown files without using other software. You can create a Markdown document from scratch, open it from a local file and manipulate it by inserting new elements, and removing, or editing the content of existing nodes.
The MarkdownSyntaxFactory class contains methods to create various Markdown elements. For headers creation, you may use the AtxHeading() method that creates Atx Heading Syntax Node with text content. You can use the Emphasis() method that takes as a parameter the Emphasis enumeration values to make text bold or italic, and more. Here we look at some C# examples of how to work with Markdown text.
Markdown Text in C#
Using the C# library, you can programmatically edit MD files - change the document structure and content. Let’s look at creating a new Markdown document from scratch and adding texts to it.
C# code to create Markdown text
// Create the MarkdownSyntaxTree var md = new MarkdownSyntaxTree(new Configuration()); // Use the SyntaxFactory property to get the factory for creating the Markdown syntax tree var mdf = md.SyntaxFactory; var header = mdf.AtxHeading("How to create Markdown Text in C#?", 2); // Create and add newLineTrivia element for an empty line after header var newLineTrivia = mdf.NewLineTrivia(); header.GetTrailingTrivia().Add(newLineTrivia); // Add the headers to the Markdown syntax tree md.AppendChild(header); // Create an empty paragraph var paragraph = mdf.Paragraph(); // Add texts to the paragraph paragraph.AppendChild(mdf.Text("First, add an Aspose.HTML for .NET library reference to your C# project.")); // Add a space after the first sentence in the paragraph through a special WhiteSpace node paragraph.AppendChild(mdf.Whitespace()); paragraph.AppendChild(mdf.Text("Then create the Markdown Syntax Tree and use the SyntaxFactory property to get a syntax factory to create new elements.")); // Add the filled paragraph into MD document md.AppendChild(paragraph); // Prepare a path for MD file saving string savePath = Path.Combine(OutputDir, "markdown-text.md"); // Save MD file md.Save(savePath);
Steps to Create Markdown Text in C#
Let’s consider a few simple steps to create Markdown texts:
- Create the MarkdownSyntaxTree using MarkdownSyntaxTree() constructer.
- Use the SyntaxFactory property to get the factory for creating the Markdown syntax tree.
- Create a new header using AtxHeading(string, int) constructor of the MarkdownSyntaxFactory class. It creates AtxHeadingSyntaxNode with text content and heading level.
- Create a newLineTrivia element for an empty line after header. Use the NewLineTrivia() constructor.
- Call the Add() method of the SyntaxNodeCollection class to add the newLineTrivia node into header element.
- After all header nodes have been collected into one element, add it to the document syntax tree.
- Create a new empty paragraph node using Paragraph() constructor in SyntaxFactory.
- Use the Text() constructor to create text nodes for paragraph.
- Use the Whitespace() constructor to create space between text nodes in paragraph.
- Call the AppendChild() method of the MarkdownSyntaxNode class to add text nodes and whitespaces into paragraph.
- After all paragraph nodes have been collected into one element, add it to the document syntax tree. Call the AppendChild() method of the MarkdownSyntaxNode class.
Create Markdown Blockquote in C#
The following C# code example shows how to create Markdown blockquote.
C# code to add Markdown blockquote
// Create the MarkdownSyntaxTree var markdown = new MarkdownSyntaxTree(new Configuration()); // Create a Markdown syntax factory var mdf = markdown.SyntaxFactory; // Create a blockQuote object var blockQuote = mdf.BlockQuote(); // Add a leading trivia token blockquote blockQuote.GetLinesLeadingTrivia().Add(mdf.Token(SourceText.From("> "))); // Create a paragraph with text content var paragraph = mdf.Paragraph(); paragraph.AppendChild(mdf.Text("For blockquote creation, you should put a sign `>` before the first line of a hard-wrapped paragraph..")); // Add paragraph into blockQuote blockQuote.AppendChild(paragraph); // Add blockQuote object into MD document markdown.AppendChild(blockQuote); // Prepare a path for MD file saving string savePath = Path.Combine(OutputDir, "markdown-blockquote.md"); // Save MD file markdown.Save(savePath);
To learn more about Aspose.HTML API, please visit our
guide. Markdown is a simple markup language that allows you to format plain text. The
documentation article provides information on the main Markdown elements, details and examples of the Markdown syntax.
1. How can I create, parse and edit Markdown in C#?
The Aspose.HTML Library for .NET is a stand-alone solution for working with Markdown documents that does not depend on other software. Install our C# library, add the library reference to your C# project, and programmatically work with Markdown documents.
2. What file formats can be processed with the Aspose.HTML C# library?
We support several file formats that you can create, open, parse, edit, save or convert in C#. These are HTML, XHTML, MHTML and Markdown formats.
3. Can I work with Markdown files on Linux, Mac OS, Android or iOS?
You can work with Markdown documents on any operating system, whether you’re using Windows, Mac OS, Linux, Android, or iOS.
Get Started with .NET HTML API
You can use several ways to install the Aspose.HTML library for .NET on your system:
- Install a NuGet Package using the NuGet Package Manager GUI.
- Install a NuGet Package using the Package Manager Console. You may use the following command
PM> Install-Package Aspose.Html.
- Install Aspose.HTML for .NET through MSI.
This library supports parsing of HTML5, CSS3, SVG and HTML Canvas to construct a Document Object Model (DOM) based on the WHATWG DOM Standard. Aspose.HTML for .NET is written completely in C# and can be used to build any type of 32-bit or 64-bit .NET application including ASP.NET, WCF, WinForms & .NET Core. Before running the .NET conversion example code, make sure that you have OS like Microsoft Windows or a compatible with .NET Framework or .NET Standard, and the development environment like Microsoft Visual Studio. For more details about C# library installation and system requirements, please refer to Aspose.HTML Documentation.
Our APIs are supported on all major platforms and Operating Systems. Before executing the code, please ensure that you have the following prerequisites on your system.
- Microsoft Windows or a compatible OS with .NET Framework, .NET Core, Windows Azure, Mono or Xamarin Platforms.
- Development environment like Microsoft Visual Studio.
- Aspose.Html for .NET DLL referenced in your project - Install from NuGet using the Download button above.