Edit Markdown melalui Pohon Sintaks Bertipe

Aspose.HTML for .NET menggunakan MarkdownParser untuk merepresentasikan file MD yang ada sebagai MarkdownSyntaxTree . Aplikasi C# dapat menemukan node bertipe, mengganti kontennya, menyisipkan atau menghapus struktur dokumen, lalu menyimpan pohon yang dimodifikasi sebagai Markdown tanpa mengonversinya ke HTML terlebih dahulu.


Perbarui Teks Paragraf Markdown dengan C#

Contoh berikut menemukan paragraf pertama dalam input.md, mengganti konten inline-nya, lalu menyimpan pohon sintaks yang telah diperbarui ke edited.md. Node dokumen tingkat atas lainnya tetap berada di dalam pohon.

Kode C# untuk Mengedit File Markdown

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

Langkah Mengedit Markdown dengan C#

  1. Buat MarkdownParser dan panggil ParseFile() untuk membangun pohon sintaks Markdown.
  2. Telusuri node tingkat atas melalui FirstChild dan NextSibling hingga node bertipe yang diperlukan ditemukan.
  3. Hapus atau ganti konten node target menggunakan metode manipulasi pohon yang disediakan oleh Markdown Syntax API.
  4. Buat node pengganti yang valid melalui SyntaxFactory dan tambahkan ke node target.
  5. Panggil Save() untuk menyerialisasikan pohon yang telah diedit ke file MD.

Kemampuan dan Batasan Pengeditan Markdown

  • Edit struktur Markdown yang ada. Gunakan node bertipe untuk heading, paragraf, daftar, tautan, penekanan, blok kode, tabel, dan elemen Markdown lain yang didukung.
  • Buat perubahan yang spesifik. Telusuri pohon sintaks untuk memperbarui konten tertentu, menyisipkan node pada posisi tertentu, mengganti node anak, atau menghapus blok yang tidak lagi diperlukan.
  • Pertahankan model dokumen. Pengeditan AST mengubah node, bukan melakukan penggantian teks tanpa batas. File yang disimpan diserialisasikan dari pohon sintaks yang dimodifikasi dan tidak boleh dianggap sebagai salinan sumber yang identik byte demi byte.
  • Periksa tanpa mengubah konten. Gunakan panduan parsing Markdown ketika aplikasi perlu menelusuri AST atau mengekstrak data terstruktur tanpa mengubah dokumen.
  • Gunakan alur kerja khusus untuk tugas lain. Lihat Buat Markdown dengan C# untuk dokumen baru, Simpan Markdown untuk contoh yang berfokus pada penyimpanan, atau Markdown ke PDF ketika hasil yang diperlukan adalah dokumen hasil rendering.

Dokumentasi dan Referensi API Pengeditan Markdown

Baca Edit and Modify Markdown untuk contoh mengubah heading, paragraf, dan item daftar melalui AST. Panduan Parse and Process Markdown menjelaskan penelusuran node dan node sintaks bertipe. Untuk notasi Markdown yang didukung dan bentuk elemennya, lihat panduan Markdown Syntax .


Instal Aspose.HTML for .NET

Instal Aspose.HTML for .NET dari NuGet menggunakan .NET CLI:

dotnet add package Aspose.HTML

Anda juga dapat menggunakan antarmuka NuGet Package Manager atau menjalankan Install-Package Aspose.HTML di Package Manager Console. Lihat panduan instalasi untuk detail penyiapan, atau minta lisensi sementara untuk mengevaluasi API tanpa batasan evaluasi.


FAQ Pengeditan Markdown

1. Mengapa Markdown sebaiknya diedit melalui AST alih-alih mengganti string?

AST merepresentasikan heading, paragraf, daftar, tautan, dan pemformatan inline sebagai node terpisah. Dengan demikian, aplikasi dapat mengubah struktur tertentu tanpa mengganti teks yang sama di tempat lain secara tidak sengaja atau merusak sintaks Markdown di sekitarnya.

2. Apakah ParseFile() mengubah file MD sumber?

Tidak. Metode ini membuat pohon sintaks dalam memori dari file sumber. File hanya berubah ketika aplikasi memanggil Save() dan menulis pohon ke jalur asli atau tujuan lain.

3. Bagaimana cara mengedit Markdown dalam aplikasi ASP.NET Core?

Gunakan MarkdownParser dalam kode sisi server untuk mem-parsing file MD menjadi MarkdownSyntaxTree, ubah node sintaks yang diperlukan, lalu panggil Save() untuk menulis Markdown yang diperbarui. Aspose.HTML menyediakan API pemrosesan dokumen, sedangkan aplikasi ASP.NET Core menyediakan antarmuka pengeditan berbasis browser bila diperlukan.

4. Apakah file Markdown yang diedit akan identik byte demi byte di luar teks yang diubah?

Jangan mengandalkan kecocokan tingkat byte. API menyerialisasikan kembali pohon sintaks menjadi Markdown, sehingga struktur dokumen tetap tersedia, tetapi spasi atau detail pemformatan dapat dinormalisasi. Bandingkan output yang disimpan jika format sumber yang persis sama penting bagi aplikasi.

5. Dapatkah pohon yang diedit dikonversi langsung ke PDF dengan Save()?

Tidak. Metode MarkdownSyntaxTree.Save() menulis output Markdown. Simpan file MD yang telah diedit terlebih dahulu, lalu gunakan alur kerja konversi Markdown ketika hasil akhir harus berupa PDF atau format hasil rendering lainnya.

Alur Kerja Markdown dan Pengeditan Terkait

Lanjutkan dengan tugas Markdown atau pengeditan dokumen yang spesifik.