型付き構文ツリーを使用して Markdown を編集

Aspose.HTML for .NET は MarkdownParser を使用して、既存の MD ファイルを MarkdownSyntaxTree として表現します。C# アプリケーションは型付きノードを特定し、内容を置換し、ドキュメント構造を挿入または削除して、HTML に変換せずに変更済みツリーを Markdown として保存できます。


C# で Markdown の段落テキストを更新

次の例では、input.md の最初の段落を検索し、そのインラインコンテンツを置換して、更新した構文ツリーを edited.md に保存します。その他の最上位ドキュメントノードはツリーに残ります。

Markdown ファイルを編集する C# コード

using Aspose.Html.Toolkit.Markdown.Syntax;
using Aspose.Html.Toolkit.Markdown.Syntax.Parser;

MarkdownParser parser = new MarkdownParser();

// Parse the source file into a typed Markdown syntax tree
MarkdownSyntaxTree syntaxTree = parser.ParseFile("input.md");

// Find the first top-level paragraph
MarkdownSyntaxNode currentNode = syntaxTree.FirstChild;
ParagraphSyntaxNode paragraph = null;

while (currentNode != null)
{
    if (currentNode is ParagraphSyntaxNode)
    {
        paragraph = (ParagraphSyntaxNode)currentNode;
        break;
    }

    currentNode = currentNode.NextSibling;
}

if (paragraph != null)
{
    // Replace the paragraph's existing inline content
    while (paragraph.FirstChild != null)
    {
        paragraph.RemoveChild(paragraph.FirstChild);
    }

    MarkdownSyntaxFactory factory = syntaxTree.SyntaxFactory;
    TextSyntaxNode text = factory.Text("Updated paragraph text.");
    paragraph.AppendChild(text);
}

// Serialize the updated syntax tree back to Markdown
syntaxTree.Save("edited.md");

C# で Markdown を編集する手順

  1. MarkdownParser を作成し、 ParseFile() を呼び出して Markdown 構文ツリーを構築します。
  2. 必要な型付きノードが見つかるまで、FirstChild と NextSibling を使用して最上位ノードを走査します。
  3. Markdown Syntax API のツリー操作メソッドを使用して、対象ノードの内容を削除または置換します。
  4. SyntaxFactory で有効な置換ノードを作成し、対象ノードに追加します。
  5. Save() を呼び出して、編集済みツリーを MD ファイルにシリアル化します。

Markdown 編集の機能と制限

  • 既存の Markdown 構造を編集。 見出し、段落、リスト、リンク、強調、コードブロック、テーブル、その他のサポート対象 Markdown 要素に対応する型付きノードを操作します。
  • 対象を限定した変更。 構文ツリーを走査して選択した内容を更新し、特定位置へのノード挿入、子ノードの置換、不要なブロックの削除を行います。
  • ドキュメントモデルを維持。 AST 編集では無制限のテキスト置換ではなくノードを変更します。保存ファイルは変更済み構文ツリーからシリアル化されるため、ソースとバイト単位で同一のコピーとして扱わないでください。
  • 内容を変更せずに調査。 ドキュメントを変更せずに AST を走査したり構造化データを抽出したりする場合は、 Markdown 解析ガイド を使用します。
  • その他の処理には専用ワークフローを使用。 新規ドキュメントについては C# で Markdown を作成 、保存に重点を置いた例については Markdown を保存 、レンダリング済みドキュメントが必要な場合は Markdown から PDF を参照してください。

Markdown 編集のドキュメントと API リファレンス

AST を使用して見出し、段落、リスト項目を変更する例については、 Edit and Modify Markdown を参照してください。 Parse and Process Markdown ガイドでは、ノードの走査と型付き構文ノードについて説明しています。サポートされる Markdown 記法と要素形式については、 Markdown Syntax ガイドを参照してください。


Aspose.HTML for .NET のインストール

.NET CLI を使用して、NuGet から Aspose.HTML for .NET をインストールします。

dotnet add package Aspose.HTML

NuGet パッケージ マネージャーの UI を使用するか、パッケージ マネージャー コンソールで Install-Package Aspose.HTML を実行することもできます。セットアップの詳細は インストール ガイド を参照してください。評価制限なしで API を試すには、 一時ライセンス を申請できます。


Markdown 編集に関する FAQ

1. 文字列を置換する代わりに AST で Markdown を編集するのはなぜですか?

AST は見出し、段落、リスト、リンク、インライン書式を個別のノードとして識別します。そのため、別の場所にある同じテキストを誤って置換したり、周囲の Markdown 構文を壊したりせずに、選択した構造を変更できます。

2. メソッド ParseFile() はソースの MD ファイルを変更しますか?

いいえ。ソースからメモリ内に構文ツリーを作成します。アプリケーションが Save() を呼び出し、元のパスまたは別の保存先にツリーを書き込んだ場合にのみファイルが変更されます。

3. ASP.NET Core アプリケーションで Markdown を編集するにはどうすればよいですか?

サーバー側コードで MarkdownParser を使用して MD ファイルを MarkdownSyntaxTree として解析し、必要な構文ノードを変更して、Save() で更新済み Markdown を書き込みます。Aspose.HTML はドキュメント処理 API を提供し、必要なブラウザー編集インターフェイスは ASP.NET Core アプリケーション側で実装します。

4. 編集した Markdown ファイルは変更部分以外がバイト単位で同一になりますか?

バイト単位での完全な一致を前提にしないでください。API は構文ツリーを Markdown に再シリアル化するため、ドキュメント構造は維持されますが、空白や書式の詳細が正規化される場合があります。ソースの書式を正確に維持する必要がある場合は、保存後の出力を比較してください。

5. 編集したツリーを Save() で直接 PDF に変換できますか?

いいえ。MarkdownSyntaxTree.Save() は Markdown 出力を書き込みます。最初に編集済み MD ファイルを保存し、最終結果を PDF または別のレンダリング形式にする場合は Markdown 変換ワークフローを使用します。

関連する Markdown と編集のワークフロー

Markdown またはドキュメント編集の目的別ワークフローに進みます。