如何在 C# 中创建 Markdown 文本

与 HTML 一样,Markdown 是一种标记语言。与 HTML 不同,Markdown 的目标是尽可能的可读。您可以对文本应用粗体、斜体、引号和删除线。它们也可以组合使用以同时使用多种样式。 Aspose.HTML for .NET 库是一个独立的解决方案,允许您在不使用其他软件的情况下解析和操作 Markdown 文件。您可以从头开始创建 Markdown 文档,从本地文件打开它,并通过插入新元素、删除或编辑现有节点的内容来操作它。

MarkdownSyntaxFactory 类包含创建各种 Markdown 元素的方法。对于标题创建,您可以使用创建 Atx 标题的 AtxHeading() 方法带有文本内容的语法节点。您可以使用 Emphasis() 方法,该方法将 Emphasis 枚举作为参数使文本变为粗体或斜体等的值。在这里,我们将查看一些有关如何使用 Markdown 文本的 C# 示例。


C# 中的 Markdown 文本

使用 C# 库,您可以以编程方式编辑 MD 文件 – 更改文档结构和内容。让我们看看从头开始创建一个新的 Markdown 文档并向其中添加文本。

用于创建 Markdown 文本的 C# 代码

// 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);



在 C# 中创建 Markdown 文本的步骤

让我们考虑几个简单的步骤来创建 Markdown 文本:

  1. 使用 MarkdownSyntaxTree() 构造函数创建 MarkdownSyntaxTree。
  2. 使用 SyntaxFactory 属性获取用于创建 Markdown 语法树的工厂。
  3. 使用 AtxHeading(string, int) 的构造函数创建一个新标头 MarkdownSyntaxFactory 类。它创建具有文本内容和标题级别的 AtxHeadingSyntaxNode。
  4. 为标题后的空行创建一个 newLineTrivia 元素。使用 NewLineTrivia() 构造函数。
  5. 调用 SyntaxNodeCollection 类的 Add() 方法将 newLineTrivia 节点添加到标题元素中。
  6. 将所有头节点收集到一个元素后,将其添加到文档语法树中。
  7. 使用 SyntaxFactory 中的 Paragraph() 构造函数创建一个新的空段落节点。
  8. 使用 Text() 构造函数为段落创建文本节点。
  9. 使用 Whitespace() 构造函数在段落中的文本节点之间创建空间.
  10. 调用MarkdownSyntaxNode类的 AppendChild() 方法添加文本节点和空格成段落。
  11. 将所有段落节点收集到一个元素后,将其添加到文档语法树中。调用 MarkdownSyntaxNode 类的 AppendChild() 方法。

在 C# 中创建 Markdown 块引用

以下 C# 代码示例显示了如何创建 Markdown 块引用。

用于添加 Markdown 块引用的 C# 代码

// 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);

文档

要了解有关 Aspose.HTML API 的更多信息,请访问我们的 文档 指南。 Markdown 是一种简单的标记语言,可让您格式化纯文本。 Markdown 语法 文档文章提供了有关 Markdown 主要元素的信息、Markdown 语法的详细信息和示例。


FAQ

1. 如何在 C# 中创建、解析和编辑 Markdown?

用于 Aspose.HTML for .NET 库是一个独立的解决方案,用于处理不依赖于其他软件的 Markdown 文档。安装我们的 C# 库,将库引用添加到您的 C# 项目,并以编程方式处理 Markdown 文档

2. 为什么 Markdown 如此受欢迎?

由于其多功能性,Markdown 在作家、开发人员和内容创作者中非常受欢迎。 其优点包括易于学习和使用的语法、可移植性、灵活性、可读性和可用性。 Markdown 简单直观,可以转换为 HTML、PDF 或其他格式。

3. 我可以在 Linux、Mac OS、Android 或 iOS 上使用 Markdown 文件吗?

您可以在任何操作系统上使用 Markdown 文档,无论您使用的是 Windows、Mac OS、Linux、Android 还是 iOS。

4. Aspose.HTML C#库可以处理哪些文件格式?

我们支持多种文件格式,您可以在 C# 中创建、打开、解析、编辑、保存或转换它们。这些是 HTML、XHTML、MHTML 和 Markdown 格式。



Aspose.HTML for .NET API 入门

您可以通过多种方式在系统上安装 Aspose.HTML for .NET 库:

  1. 使用 NuGet 包管理器 GUI 安装 NuGet 包
  2. 使用包管理器控制台安装 NuGet 包。
  3. 通过 MSI 安装 Aspose.HTML for .NET。

该库支持解析 HTML5、CSS3、SVG 和 HTML Canvas,以构建基于 WHATWG DOM 标准的文档对象模型 (DOM)。 Aspose.HTML for .NET 完全用 C# 编写,可用于构建任何类型的 32 位或 64 位 .NET 应用程序,包括 ASP.NET、WCF、WinForms 和 .NET Core。在运行 .NET 转换示例代码之前,请确保您拥有 Microsoft Windows 等操作系统或与 .NET Framework 或 .NET Standard 兼容的操作系统,以及 Microsoft Visual Studio 等开发环境。有关 C# 库安装和系统要求的更多详细信息,请参阅 Aspose.HTML 文档

系统要求

所有主要平台和操作系统都支持我们的 API。在执行代码之前,请确保您的系统具备以下先决条件。

  • Microsoft Windows 或具有 .NET Framework、.NET Core、Windows Azure、Mono 或 Xamarin 平台的兼容操作系统。
  • Microsoft Visual Studio 等开发环境。
  • Aspose.Html for .NET DLL 在您的项目中引用 – 使用上面的下载按钮从 NuGet 安装。