From 893f57d1ee51b7aca45e0e6c51ca03ff0e2e3ff8 Mon Sep 17 00:00:00 2001 From: Karan-SF4772 Date: Mon, 11 May 2026 09:19:41 +0530 Subject: [PATCH 1/2] Added some pages --- .../NET/Assemblies-Required.md | 43 ++++ .../Document-Object-Model-representation.md | 13 ++ ...DocumentObjectModelrepresentation_img1.png | Bin 0 -> 32089 bytes .../Markdown-Library/NET/Getting-Started.md | 123 ++--------- .../NET/Loading-and-Saving-document.md | 196 ++++++++++++++++++ .../NET/NuGet-Packages-Required.md | 63 ++++++ 6 files changed, 329 insertions(+), 109 deletions(-) create mode 100644 Document-Processing/Markdown/Markdown-Library/NET/Assemblies-Required.md create mode 100644 Document-Processing/Markdown/Markdown-Library/NET/Document-Object-Model-representation.md create mode 100644 Document-Processing/Markdown/Markdown-Library/NET/DocumentObjectModelrepresentation_images/DocumentObjectModelrepresentation_img1.png create mode 100644 Document-Processing/Markdown/Markdown-Library/NET/Loading-and-Saving-document.md create mode 100644 Document-Processing/Markdown/Markdown-Library/NET/NuGet-Packages-Required.md diff --git a/Document-Processing/Markdown/Markdown-Library/NET/Assemblies-Required.md b/Document-Processing/Markdown/Markdown-Library/NET/Assemblies-Required.md new file mode 100644 index 000000000..f3d57e93b --- /dev/null +++ b/Document-Processing/Markdown/Markdown-Library/NET/Assemblies-Required.md @@ -0,0 +1,43 @@ +--- +title: Assemblies required for .NET Markdown Library | Syncfusion +description: Learn the assemblies required to use the .NET Markdown library to create, read, and edit Markdown documents in your application. +platform: document-processing +control: Markdown +documentation: UG +--- + +# Assemblies Required for Markdown + +The following assemblies need to be referenced in your application to use the Syncfusion® Markdown library. + + + + + + + + + + + + + + + + + + +
Platform(s)

Assembly

+Windows Forms, WPF, ASP.NET MVC +

+Syncfusion.Markdown.Base +

+ ASP.NET Core, Blazor +

+Syncfusion.Markdown.Portable +

+ +T> 1. Switch to NuGet packages for a seamless experience: +T> * Get frequent bug fixes every week. +T> * Upgrade quickly with no manual effort. +T> Note: To avoid trial watermark when using NuGet packages, it is recommended to register license key in application. Please refer to this [link](https://help.syncfusion.com/common/essential-studio/licensing/overview) to know about registering Syncfusion® license key in your application to use our components. \ No newline at end of file diff --git a/Document-Processing/Markdown/Markdown-Library/NET/Document-Object-Model-representation.md b/Document-Processing/Markdown/Markdown-Library/NET/Document-Object-Model-representation.md new file mode 100644 index 000000000..b455fc580 --- /dev/null +++ b/Document-Processing/Markdown/Markdown-Library/NET/Document-Object-Model-representation.md @@ -0,0 +1,13 @@ +--- +title: Document Object Model of .NET Markdown library | Syncfusion +description: Learn here all about the Document Object Model (DOM) representation of Markdown documents and their elements in the Syncfusion® .NET Markdown library. +platform: document-processing +control: Markdown +documentation: UG +--- + +# Document Object Model representation in Markdown + +When an existing Markdown document is opened or a new document is created, the Markdown library creates a **Document Object Model** (DOM) of the document in main memory. This object model can be used to manipulate the document as needed. + +![Document Object Model representation in Markdown](DocumentObjectModelrepresentation_images/DocumentObjectModelrepresentation_img1.png) \ No newline at end of file diff --git a/Document-Processing/Markdown/Markdown-Library/NET/DocumentObjectModelrepresentation_images/DocumentObjectModelrepresentation_img1.png b/Document-Processing/Markdown/Markdown-Library/NET/DocumentObjectModelrepresentation_images/DocumentObjectModelrepresentation_img1.png new file mode 100644 index 0000000000000000000000000000000000000000..0bf0525d2cb9bf2e1e8b007491ee8ec33ff37ae6 GIT binary patch literal 32089 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 LO^qH9PF(yu9{;x6 literal 0 HcmV?d00001 diff --git a/Document-Processing/Markdown/Markdown-Library/NET/Getting-Started.md b/Document-Processing/Markdown/Markdown-Library/NET/Getting-Started.md index aaf74dc24..dcc13999f 100644 --- a/Document-Processing/Markdown/Markdown-Library/NET/Getting-Started.md +++ b/Document-Processing/Markdown/Markdown-Library/NET/Getting-Started.md @@ -7,8 +7,6 @@ documentation: UG --- # Getting started with Markdown library -## Creating a simple Markdown document from scratch - In this page, you can learn how to create a simple Markdown document programmatically using the Syncfusion Markdown API. @@ -31,7 +29,7 @@ Include the following namespace in your .cs or .vb code as shown below. {% tabs %} -{% highlight c# tabtitle="C# [Windows-specific]" %} +{% highlight c# tabtitle="C#" %} using Syncfusion.Office.Markdown; using System.Text; @@ -39,7 +37,7 @@ using System.IO; {% endhighlight %} -{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %} +{% highlight vb.net tabtitle="VB.NET" %} Imports System.IO Imports System.Text @@ -47,14 +45,6 @@ Imports Syncfusion.Office.Markdown {% endhighlight %} -{% highlight c# tabtitle="C# [Cross-platform]" %} - -using Syncfusion.Office.Markdown; -using System.Text; -using System.IO; - -{% endhighlight %} - {% endtabs %} ## Creating a new Markdown document from scratch with basic elements @@ -65,21 +55,16 @@ The following code example demonstrates how to create an instance of the Markdow {% tabs %} -{% highlight c# tabtitle="C# [Windows-specific]" %} +{% highlight c# tabtitle="C#" %} // Creates a new instance of MarkdownDocument. MarkdownDocument markdownDocument = new MarkdownDocument(); {% endhighlight %} -{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %} +{% highlight vb.net tabtitle="VB.NET" %} ' Creates a new instance of MarkdownDocument. Dim markdownDocument As New MarkdownDocument() {% endhighlight %} -{% highlight c# tabtitle="C# [Cross-platform]" %} -// Creates a new instance of MarkdownDocument. -MarkdownDocument markdownDocument = new MarkdownDocument(); -{% endhighlight %} - {% endtabs %} A Markdown document can contain various block-level elements such as headings, paragraphs, lists, tables, and code blocks. @@ -90,7 +75,7 @@ The following code example demonstrates how to add a heading to a Markdown docum {% tabs %} -{% highlight c# tabtitle="C# [Windows-specific]" %} +{% highlight c# tabtitle="C#" %} // Adds a heading to the Markdown document. MdParagraph mdHeadingParagraph = markdownDocument.AddParagraph(); @@ -101,7 +86,7 @@ mdHeadingTextRange.Text = "Adventure Works Cycles"; {% endhighlight %} -{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %} +{% highlight vb.net tabtitle="VB.NET" %} ' Adds a heading to the Markdown document. Dim mdHeadingParagraph As MdParagraph = markdownDocument.AddParagraph() @@ -112,17 +97,6 @@ mdHeadingTextRange.Text = "Adventure Works Cycles"; {% endhighlight %} -{% highlight c# tabtitle="C# [Cross-platform]" %} - -// Adds a heading to the Markdown document. -MdParagraph mdHeadingParagraph = markdownDocument.AddParagraph(); -// Applies the Heading 1 style to the paragraph. -mdHeadingParagraph.ApplyParagraphStyle("Heading 1"); -MdTextRange mdHeadingTextRange = mdHeadingParagraph.AddTextRange(); -mdHeadingTextRange.Text = "Adventure Works Cycles"; - -{% endhighlight %} - {% endtabs %} ### Adding a paragraph @@ -131,7 +105,7 @@ The following code example demonstrates how to add a paragraph to a Markdown doc {% tabs %} -{% highlight c# tabtitle="C# [Windows-specific]" %} +{% highlight c# tabtitle="C#" %} // Adds a paragraph to the Markdown document. MdParagraph mdParagraph = markdownDocument.AddParagraph(); @@ -140,7 +114,7 @@ The following code example demonstrates how to add a paragraph to a Markdown doc {% endhighlight %} -{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %} +{% highlight vb.net tabtitle="VB.NET" %} ' Adds a paragraph to the Markdown document. Dim mdParagraph As MdParagraph = markdownDocument.AddParagraph() @@ -149,15 +123,6 @@ The following code example demonstrates how to add a paragraph to a Markdown doc {% endhighlight %} -{% highlight c# tabtitle="C# [Cross-platform]" %} - -// Adds a paragraph to the Markdown document. - MdParagraph mdParagraph = markdownDocument.AddParagraph(); - MdTextRange mdTextRange = mdParagraph.AddTextRange(); - mdTextRange.Text = "Adventure Works Cycles, the fictitious company on which the AdventureWorks sample databases are based, is a large, multinational manufacturing company. The company manufactures and sells metal and composite bicycles to North American, European and Asian commercial markets. While its base operation is in Bothell, Washington with 290 employees, several regional sales teams are located throughout their market base."; - -{% endhighlight %} - {% endtabs %} ### Adding a list @@ -166,7 +131,7 @@ The Markdown library allows you to create both bulleted and numbered lists. The {% tabs %} -{% highlight c# tabtitle="C# [Windows-specific]" %} +{% highlight c# tabtitle="C#" %} // Adds the first list item. MdParagraph item1 = markdownDocument.AddParagraph(); @@ -192,7 +157,7 @@ item3.AddTextRange().Text = "Third item"; {% endhighlight %} -{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %} +{% highlight vb.net tabtitle="VB.NET" %} ' Adds the first list item. Dim item1 As MdParagraph = markdownDocument.AddParagraph() @@ -218,32 +183,6 @@ item3.AddTextRange().Text = "Third item"; {% endhighlight %} -{% highlight c# tabtitle="C# [Cross-platform]" %} - -// Adds the first list item. -MdParagraph item1 = markdownDocument.AddParagraph(); -item1.ListFormat = new MdListFormat(); -item1.ListFormat.IsNumbered = false; -item1.ListFormat.ListLevel = 0; -item1.ListFormat.ListValue = "- "; -item1.AddTextRange().Text = "First item"; -// Adds the second list item. -MdParagraph item2 = markdownDocument.AddParagraph(); -item2.ListFormat = new MdListFormat(); -item2.ListFormat.IsNumbered = false; -item2.ListFormat.ListLevel = 0; -item2.ListFormat.ListValue = "- "; -item2.AddTextRange().Text = "Second item"; -// Adds the third list item. -MdParagraph item3 = markdownDocument.AddParagraph(); -item3.ListFormat = new MdListFormat(); -item3.ListFormat.IsNumbered = false; -item3.ListFormat.ListLevel = 0; -item3.ListFormat.ListValue = "- "; -item3.AddTextRange().Text = "Third item"; - -{% endhighlight %} - {% endtabs %} ### Adding a table @@ -252,7 +191,7 @@ The following code example demonstrates how to add a table to a Markdown documen {% tabs %} -{% highlight c# tabtitle="C# [Windows-specific]" %} +{% highlight c# tabtitle="C#" %} // Adds a table to the Markdown document. MdTable table = markdownDocument.AddTable(); @@ -277,7 +216,7 @@ cell2.Items.Add(new MdTextRange { Text = "AdventureWorks Cycles, the fictitious {% endhighlight %} -{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %} +{% highlight vb.net tabtitle="VB.NET" %} ' Adds a table to the Markdown document. Dim table As MdTable = markdownDocument.AddTable() @@ -302,31 +241,6 @@ cell2.Items.Add(new MdTextRange { Text = "AdventureWorks Cycles, the fictitious {% endhighlight %} -{% highlight c# tabtitle="C# [Cross-platform]" %} - -// Adds a table to the Markdown document. -MdTable table = markdownDocument.AddTable(); -table.ColumnAlignments.Add(MdColumnAlignment.Left); -table.ColumnAlignments.Add(MdColumnAlignment.Left); -// Adds the header row. -MdTableRow headerRow = table.AddTableRow(); -MdTableCell header1 = headerRow.AddTableCell(); -header1.Items.Add(new MdTextRange { Text = "Profile picture" }); -MdTableCell header2 = headerRow.AddTableCell(); -header2.Items.Add(new MdTextRange { Text = "Description" }); - -// Adds a data row. -MdTableRow dataRow = table.AddTableRow(); -MdTableCell cell1 = dataRow.AddTableCell(); -MdPicture picture = new MdPicture(); -picture.Url = "Data\\photo.jpg"; -picture.AltText = "Profile picture"; -cell1.Items.Add(picture); -MdTableCell cell2 = dataRow.AddTableCell(); -cell2.Items.Add(new MdTextRange { Text = "AdventureWorks Cycles, the fictitious company on which the AdventureWorks sample databases are based, is a large, multinational manufacturing company." }); - -{% endhighlight %} - {% endtabs %} ### Saving the Markdown document @@ -335,7 +249,7 @@ After adding the required content, save the Markdown document to the file system {% tabs %} -{% highlight c# tabtitle="C# [Windows-specific]" %} +{% highlight c# tabtitle="C#" %} // Retrieves the Markdown document content. string mdContent = markdownDocument.GetMarkdownText(); @@ -344,7 +258,7 @@ File.WriteAllText("Output.md", mdContent, Encoding.UTF8); {% endhighlight %} -{% highlight vb.net tabtitle="VB.NET [Windows-specific]" %} +{% highlight vb.net tabtitle="VB.NET" %} ' Retrieves the Markdown document content Dim mdContent As String = markdownDocument.GetMarkdownText() @@ -353,15 +267,6 @@ File.WriteAllText("Output.md", mdContent, Encoding.UTF8); {% endhighlight %} -{% highlight c# tabtitle="C# [Cross-platform]" %} - -// Retrieves the Markdown document content. -string mdContent = markdownDocument.GetMarkdownText(); -// Saves the Markdown document to the file system. -File.WriteAllText("Output.md", mdContent, Encoding.UTF8); - -{% endhighlight %} - {% endtabs %} You can download a complete working sample from GitHub. diff --git a/Document-Processing/Markdown/Markdown-Library/NET/Loading-and-Saving-document.md b/Document-Processing/Markdown/Markdown-Library/NET/Loading-and-Saving-document.md new file mode 100644 index 000000000..3bc5ea60b --- /dev/null +++ b/Document-Processing/Markdown/Markdown-Library/NET/Loading-and-Saving-document.md @@ -0,0 +1,196 @@ +--- +title: Loading and Saving Markdown document in C# | Syncfusion +description: Learn how to load and save a Markdown document in C# and VB.NET using Syncfusion® .NET Markdown library without external dependencies. +platform: document-processing +control: Markdown +documentation: UG +--- + + +# Loading and Saving a Markdown Document + +The Syncfusion® Markdown library allows you to load an existing Markdown document and save it to the file system programmatically. + +## Namespaces required + +The following namespaces of Essential® Markdown need to be included in your application to load and save the Markdown document. + +{% tabs %} + +{% highlight c# tabtitle="C#" %} + +using Syncfusion.Office.Markdown; +using System.Text; +using System.IO; + +{% endhighlight %} + +{% highlight vb.net tabtitle="VB.NET" %} + +Imports System.IO +Imports System.Text +Imports Syncfusion.Office.Markdown + +{% endhighlight %} + +{% endtabs %} + +## Opening an existing Markdown document + +You can open an existing Markdown document by using either the **Open** method or the constructor of the **MarkdownDocument** class. + +### Opening using constructor + +The `MarkdownDocument` class allows you to open an existing Markdown document by passing the stream and import settings as constructor parameters. + +The following code example demonstrates how to open an existing Markdown document using the constructor. + + +{% tabs %} + +{% highlight c# tabtitle="C#" %} + +// Opens an existing Markdown document using constructor. +FileStream fileStream = new FileStream("Input.md", FileMode.Open, FileAccess.Read); +MdImportSettings mdImportSettings = new MdImportSettings(); +MarkdownDocument markdownDocument = new MarkdownDocument(fileStream, mdImportSettings); + +{% endhighlight %} + +{% highlight vb.net tabtitle="VB.NET" %} + +' Opens an existing Markdown document using constructor. +Dim fileStream As New FileStream("Input.md", FileMode.Open, FileAccess.Read) +Dim mdImportSettings As New MdImportSettings() +Dim markdownDocument As New MarkdownDocument(fileStream, mdImportSettings) + +{% endhighlight %} + +{% endtabs %} + +### Opening using Open Method + +The `MarkdownDocument` class also provides the `Open` method to open an existing Markdown document from a stream. + +The following code example demonstrates how to open an existing Markdown document using the `Open` method. + +{% tabs %} + +{% highlight c# tabtitle="C#" %} + +// Creates an empty MarkdownDocument instance +MarkdownDocument markdownDocument = new MarkdownDocument(); +// Opens an existing Markdown document using the Open method. +FileStream fileStream = new FileStream("Input.md", FileMode.Open, FileAccess.Read); +MdImportSettings settings = new MdImportSettings(); +markdownDocument.Open(fileStream, settings); + +{% endhighlight %} + +{% highlight vb.net tabtitle="VB.NET" %} + +' Creates a new instance of MarkdownDocument. +Dim markdownDocument As New MarkdownDocument() +' Opens an existing Markdown document using the Open method. +Dim fileStream As New FileStream("Input.md", FileMode.Open, FileAccess.Read) +Dim mdImportSettings As New MdImportSettings() +markdownDocument.Open(fileStream, mdImportSettings) + +{% endhighlight %} + +{% endtabs %} + +You can download a complete working sample from GitHub. + +## Saving a Markdown Document + +After modifying a Markdown document, you can save it to the file system using the `GetMarkdownText` method, which retrieves the Markdown content as a string, and then write the content to a file using the `File.WriteAllText` method. + +The following code example demonstrates how to save a Markdown document to the file system. + +{% tabs %} + +{% highlight c# tabtitle="C#" %} + +// Creates an empty MarkdownDocument instance +MarkdownDocument markdownDocument = new MarkdownDocument(); +// Opens an existing Markdown document using the Open method. +FileStream fileStream = new FileStream("Input.md", FileMode.Open, FileAccess.Read, FileShare.ReadWrite); +MdImportSettings settings = new MdImportSettings(); +markdownDocument.Open(fileStream, settings); +// To-Do some manipulation +// To-Do some manipulation +// Retrieves the Markdown document content. +string mdContent = markdownDocument.GetMarkdownText(); +// Saves the Markdown document to the file system. +File.WriteAllText("Output.md", mdContent, Encoding.UTF8); + +{% endhighlight %} + +{% highlight vb.net tabtitle="VB.NET" %} + +' Creates a new instance of MarkdownDocument. +Dim markdownDocument As New MarkdownDocument() +' Opens an existing Markdown document using the Open method. +Dim fileStream As New FileStream("Input.md", FileMode.Open, FileAccess.Read) +Dim mdImportSettings As New MdImportSettings() +markdownDocument.Open(fileStream, mdImportSettings) +'To-Do some manipulation +'To-Do some manipulation +' Retrieves the Markdown document content. +Dim mdContent As String = markdownDocument.GetMarkdownText() +' Saves the Markdown document to the file system. +File.WriteAllText("Output.md", mdContent, Encoding.UTF8) + +{% endhighlight %} + +{% endtabs %} + +## Closing a document + +Once the document manipulation and save operations are completed, you should close or dispose the instance of MarkdownDocument instance in order to release all the memory consumed by the Markdown library's DOM. The following code example illustrates how to close a `MarkdownDocument` instance. + +{% tabs %} + +{% highlight c# tabtitle="C#" %} + +// Opens, saves and closes a Markdown document. +FileStream fileStream = new FileStream("Input.md", FileMode.Open, FileAccess.Read, FileShare.ReadWrite); +MdImportSettings settings = new MdImportSettings(); +MarkdownDocument markdownDocument = new MarkdownDocument(fileStream, settings); + +// To-Do some manipulation +// To-Do some manipulation + +// Retrieves the Markdown document content. +string markdownText = markdownDocument.GetMarkdownText(); +//Save the Markdown content to the file system +File.WriteAllText("Output.md", markdownText, Encoding.UTF8); + +//Dispose the document to release all memory +markdownDocument.Dispose(); + +{% endhighlight %} + +{% highlight vb.net tabtitle="VB.NET" %} + +' Opens, saves and closes a Markdown document. +Dim fileStream As New FileStream("Input.md", FileMode.Open, FileAccess.Read) +Dim settings As New MdImportSettings() +Dim markdownDocument As New MarkdownDocument(fileStream, settings) + +'To-Do some manipulation +'To-Do some manipulation + +' Retrieves the Markdown document content. +Dim markdownText As String = markdownDocument.GetMarkdownText() +' Saves the Markdown document to the file system. +File.WriteAllText("Output.md", markdownText, Encoding.UTF8) + +' Disposes the document to release all memory. +markdownDocument.Dispose() + +{% endhighlight %} +{% endtabs %} + +You can download a complete working sample from GitHub. diff --git a/Document-Processing/Markdown/Markdown-Library/NET/NuGet-Packages-Required.md b/Document-Processing/Markdown/Markdown-Library/NET/NuGet-Packages-Required.md new file mode 100644 index 000000000..f3e3bbbf7 --- /dev/null +++ b/Document-Processing/Markdown/Markdown-Library/NET/NuGet-Packages-Required.md @@ -0,0 +1,63 @@ +--- +title: NuGet Packages for .NET Markdown Library | Syncfusion +description: Learn the NuGet packages required to use the .NET Markdown library to create, read, and edit Markdown documents without external dependencies. +platform: document-processing +control: Markdown +documentation: UG +--- + +# NuGet Packages Required + +## Installing Syncfusion® Markdown through NuGet Packages + +NuGet is the one of the easiest way to download and install Markdown library to create, read, and edit the Markdown documents. The following NuGet packages need to be installed in your application. + +
+ + + + + + + + + + + + +
+Platform(s) + +Package name + +Package manager console command +
+Windows Forms / Console (.NET Framework) / WPF / ASP.NET MVC5 / ASP.NET Core / Console (.NET Core) / Blazor / WinUI / MAUI + +Syncfusion.Markdown.nupkg + +Install-Package Syncfusion.Markdown +
+ +N> 1. Syncfusion® components are available in [nuget.org](https://www.nuget.org/) + +## NuGet Package Installation and Uninstallation + +To use Syncfusion® NuGet packages in your project, please refer the NuGet Package [Installation](https://help.syncfusion.com/extension/syncfusion-nuget-packages/nuget-packages) and [Uninstallation](https://help.syncfusion.com/extension/syncfusion-nuget-packages/nuget-uninstallation-process#) sections. + +Markdown NuGet packages can be installed and uninstalled using Package Manager Console. + +In Visual Studio, select `Tools > NuGet Package Manager > Package Manager Console` and execute the following commands. + +**NuGet Package:** Syncfusion.Markdown + +The package contains Markdown library that allows you to create, read and edit Markdown documents. + +~~~ +// Install package +Install-Package Syncfusion.Markdown +~~~ +~~~ +// Uninstall package +Uninstall-Package Syncfusion.Markdown -RemoveDependencies +~~~ \ No newline at end of file From 2287e9b459242af4e866337bbf1544146999d4ae Mon Sep 17 00:00:00 2001 From: Karan-SF4772 Date: Mon, 11 May 2026 09:56:29 +0530 Subject: [PATCH 2/2] Resolved CI issue --- Document-Processing-toc.html | 28 +++++++++++++++---- .../Document-Object-Model-representation.md | 2 +- .../NET/NuGet-Packages-Required.md | 2 +- 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/Document-Processing-toc.html b/Document-Processing-toc.html index efde45491..ea4d04c96 100644 --- a/Document-Processing-toc.html +++ b/Document-Processing-toc.html @@ -7862,11 +7862,29 @@ Markdown Library diff --git a/Document-Processing/Markdown/Markdown-Library/NET/Document-Object-Model-representation.md b/Document-Processing/Markdown/Markdown-Library/NET/Document-Object-Model-representation.md index b455fc580..6a807f658 100644 --- a/Document-Processing/Markdown/Markdown-Library/NET/Document-Object-Model-representation.md +++ b/Document-Processing/Markdown/Markdown-Library/NET/Document-Object-Model-representation.md @@ -1,6 +1,6 @@ --- title: Document Object Model of .NET Markdown library | Syncfusion -description: Learn here all about the Document Object Model (DOM) representation of Markdown documents and their elements in the Syncfusion® .NET Markdown library. +description: Learn here all about the Document Object Model (DOM) representation of Markdown documents and their elements in the Syncfusion .NET Markdown library. platform: document-processing control: Markdown documentation: UG diff --git a/Document-Processing/Markdown/Markdown-Library/NET/NuGet-Packages-Required.md b/Document-Processing/Markdown/Markdown-Library/NET/NuGet-Packages-Required.md index f3e3bbbf7..0491df4f2 100644 --- a/Document-Processing/Markdown/Markdown-Library/NET/NuGet-Packages-Required.md +++ b/Document-Processing/Markdown/Markdown-Library/NET/NuGet-Packages-Required.md @@ -6,7 +6,7 @@ control: Markdown documentation: UG --- -# NuGet Packages Required +# NuGet Packages Required for Markdown Library ## Installing Syncfusion® Markdown through NuGet Packages