แก้ไข Markdown ผ่านโครงสร้างไวยากรณ์แบบระบุชนิด
Aspose.HTML for .NET ใช้ MarkdownParser เพื่อแสดงไฟล์ MD ที่มีอยู่เป็น MarkdownSyntaxTree แอปพลิเคชัน C# สามารถค้นหาโหนดแบบระบุชนิด แทนที่เนื้อหา แทรกหรือลบโครงสร้างเอกสาร และบันทึกโครงสร้างที่แก้ไขเป็น Markdown โดยไม่ต้องแปลงเป็น HTML ก่อน
อัปเดตข้อความย่อหน้า Markdown ใน C#
ตัวอย่างต่อไปนี้ค้นหาย่อหน้าแรกใน input.md แทนที่เนื้อหาอินไลน์ และบันทึกโครงสร้างไวยากรณ์ที่อัปเดตไปยัง edited.md โหนดเอกสารระดับบนสุดอื่นยังคงอยู่ในโครงสร้าง
โค้ด C# สำหรับแก้ไขไฟล์ 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");
ขั้นตอนการแก้ไข Markdown ใน C#
- สร้าง
MarkdownParserและเรียกParseFile()เพื่อสร้างโครงสร้างไวยากรณ์ Markdown - สำรวจโหนดระดับบนสุดผ่าน
FirstChildและNextSiblingจนพบโหนดแบบระบุชนิดที่ต้องการ - ลบหรือแทนที่เนื้อหาของโหนดเป้าหมายด้วยเมธอดจัดการโครงสร้างที่ Markdown Syntax API มีให้
- สร้างโหนดทดแทนที่ถูกต้องผ่าน
SyntaxFactoryและแนบเข้ากับโหนดเป้าหมาย - เรียก
Save()เพื่อแปลงโครงสร้างที่แก้ไขเป็นไฟล์ MD
ความสามารถและขอบเขตของการแก้ไข Markdown
- แก้ไขโครงสร้าง Markdown ที่มีอยู่ ทำงานกับโหนดแบบระบุชนิดสำหรับหัวเรื่อง ย่อหน้า รายการ ลิงก์ การเน้น บล็อกโค้ด ตาราง และองค์ประกอบ Markdown อื่นที่รองรับ
- เปลี่ยนแปลงเฉพาะส่วน สำรวจโครงสร้างไวยากรณ์เพื่ออัปเดตเนื้อหาที่เลือก แทรกโหนดในตำแหน่งที่กำหนด แทนที่โหนดย่อย หรือลบบล็อกที่ไม่ใช้แล้ว
- รักษาโมเดลเอกสาร การแก้ไข AST เปลี่ยนโหนดแทนการแทนที่ข้อความแบบไม่จำกัด ไฟล์ที่บันทึกจะถูกสร้างจากโครงสร้างไวยากรณ์ที่แก้ไขแล้ว และไม่ควรถูกมองว่าเหมือนต้นฉบับทุกไบต์
- ตรวจสอบโดยไม่เปลี่ยนเนื้อหา ใช้ คู่มือการแยกวิเคราะห์ Markdown เมื่อแอปพลิเคชันต้องสำรวจ AST หรือดึงข้อมูลที่มีโครงสร้างโดยไม่แก้ไขเอกสาร
- ใช้เวิร์กโฟลว์เฉพาะสำหรับงานอื่น ดู สร้าง Markdown ใน C# สำหรับเอกสารใหม่ บันทึก Markdown สำหรับตัวอย่างที่เน้นการบันทึก หรือ Markdown เป็น PDF เมื่อต้องการผลลัพธ์เป็นเอกสารที่เรนเดอร์แล้ว
เอกสารและข้อมูลอ้างอิง API สำหรับการแก้ไข Markdown
อ่าน แก้ไขและปรับเปลี่ยน Markdown เพื่อดูตัวอย่างการเปลี่ยนหัวเรื่อง ย่อหน้า และรายการผ่าน AST คู่มือ แยกวิเคราะห์และประมวลผล Markdown อธิบายการสำรวจโหนดและโหนดไวยากรณ์แบบระบุชนิด ดูรูปแบบสัญลักษณ์และองค์ประกอบ Markdown ที่รองรับได้ในคู่มือ ไวยากรณ์ Markdown
ติดตั้ง Aspose.HTML for .NET
ติดตั้ง Aspose.HTML for .NET จาก NuGet ด้วย .NET CLI:
dotnet add package Aspose.HTML
คุณยังสามารถใช้หน้าต่าง NuGet Package Manager หรือเรียกใช้ Install-Package Aspose.HTML ใน Package Manager Console ได้ ดูรายละเอียดการตั้งค่าใน
คู่มือการติดตั้ง
หรือขอ
ใบอนุญาตชั่วคราว
เพื่อประเมิน API โดยไม่มีข้อจำกัดของเวอร์ชันทดลอง
คำถามที่พบบ่อยเกี่ยวกับการแก้ไข Markdown
1. เหตุใดจึงควรแก้ไข Markdown ผ่าน AST แทนการแทนที่สตริง
AST ระบุหัวเรื่อง ย่อหน้า รายการ ลิงก์ และการจัดรูปแบบอินไลน์เป็นโหนดแยกกัน แอปพลิเคชันจึงเปลี่ยนโครงสร้างที่เลือกได้โดยไม่แทนที่ข้อความที่ตรงกันในตำแหน่งอื่นโดยไม่ตั้งใจ หรือทำให้ไวยากรณ์ Markdown รอบข้างเสียหาย
2. เมธอด ParseFile() แก้ไขไฟล์ MD ต้นฉบับหรือไม่
ไม่ เมธอดนี้สร้างโครงสร้างไวยากรณ์ในหน่วยความจำจากต้นฉบับ ไฟล์จะเปลี่ยนเฉพาะเมื่อแอปพลิเคชันเรียก Save() และเขียนโครงสร้างไปยังพาธเดิมหรือปลายทางอื่น
3. จะแก้ไข Markdown ในแอปพลิเคชัน ASP.NET Core ได้อย่างไร
ใช้ MarkdownParser ในโค้ดฝั่งเซิร์ฟเวอร์เพื่อแยกวิเคราะห์ไฟล์ MD เป็น MarkdownSyntaxTree แก้ไขโหนดไวยากรณ์ที่ต้องการ แล้วเรียก Save() เพื่อเขียน Markdown ที่อัปเดต Aspose.HTML มี API สำหรับประมวลผลเอกสาร ส่วนแอปพลิเคชัน ASP.NET Core จะจัดเตรียมอินเทอร์เฟซแก้ไขบนเบราว์เซอร์เมื่อจำเป็น
4. ไฟล์ Markdown ที่แก้ไขแล้วจะเหมือนเดิมทุกไบต์นอกเหนือจากข้อความที่เปลี่ยนหรือไม่
อย่าคาดหวังความเหมือนกันในระดับไบต์ API จะแปลงโครงสร้างไวยากรณ์กลับเป็น Markdown ดังนั้นโครงสร้างเอกสารยังคงอยู่ แต่รายละเอียดช่องว่างหรือการจัดรูปแบบอาจถูกปรับให้เป็นมาตรฐาน เปรียบเทียบเอาต์พุตที่บันทึกเมื่อรูปแบบต้นฉบับที่แน่นอนมีความสำคัญ
5. แปลงโครงสร้างที่แก้ไขเป็น PDF โดยตรงด้วย Save() ได้หรือไม่
ไม่ เมธอด MarkdownSyntaxTree.Save() เขียนเอาต์พุต Markdown ให้บันทึกไฟล์ MD ที่แก้ไขก่อน แล้วใช้เวิร์กโฟลว์การแปลง Markdown เมื่อผลลัพธ์สุดท้ายต้องเป็น PDF หรือรูปแบบที่เรนเดอร์แล้วอื่น
เวิร์กโฟลว์ Markdown และการแก้ไขที่เกี่ยวข้อง
ไปต่อด้วยงาน Markdown หรือการแก้ไขเอกสารโดยเฉพาะ