แปลMarkdownไปยังรูปแบบวัตถุเอกสาร(DOM)
ในการอ่านจัดการและปรับเปลี่ยนเนื้อหาและการฟอร์แมตของเอกสารคุณต้องแปลไปยังโมเดลออบเจกต์ของเอกสารAspose.Words(DOM).
ในทางตรงกันข้ามกับเอกสารคำMarkdownไม่สอดคล้องกับDOMอธิบายไว้ใน Aspose.Wordsรูปแบบวัตถุเอกสาร(DOM) บทความ. อย่างไรก็ตามAspose.WordsมีกลไกของตัวเองสำหรับการแปลเอกสารMarkdownไปยังDOMและกลับ,เพื่อให้เราสามาร.
บทความนี้อธิบายวิธีการแปลคุณลักษณะต่างๆmarkdownเป็นAspose.WordsDOMและกลับไปยังรูปแบบMarkdown.
ความซับซ้อนของการแปลMarkdown – DOM – Markdown
ปัญหาหลักของกลไกนี้ไม่ได้เป็นเพียงการแปลMarkdownถึงDOMแต่ยังจะทำการเปลี่ยนแปลงย้อนกลับ-เพื่อบันทึกเอกสารกลับไปยังรูปแบบMarkdownที่มีการสูญเสียน้อยที่สุด มีองค์ประกอบเช่นคำพูดหลายระดับซึ่งการเปลี่ยนแปลงย้อนกลับไม่น่ารำคาญ.
เครื่องมือแปลของเราช่วยให้ผู้ใช้ไม่เพียงแต่ทำงานกับองค์ประกอบที่ซับซ้อนในเอกสารที่มีอยู่Markdownแต่ยังสร้างเอกสารของตนเองในรูปแบบของMarkdownด้วยโครงสร้างเดิมตั้งแต่เริ่มต้น เพื่อสร้างองค์ประกอบต่างๆคุณจำเป็นต้องใช้รูปแบบที่มีชื่อเฉพาะตามกฎระเบียบบางอย่างที่อธิบายไว้ในบทความนี้ รูปแบบดังกล่าวสามารถสร้างโปรแกรม.
หลักการแปลทั่วไป
เราใช้Fontการจัดรูปแบบสำหรับบล็อกแบบอินไลน์ เมื่อไม่มีการติดต่อโดยตรงสำหรับคุณลักษณะMarkdownในAspose.WordsDOMเราใช้รูปแบบตัวอักษรที่มีชื่อที่เริ่มต้นจาก.
สำหรับบล็อกคอนเทนเนอร์เราใช้มรดกสไตล์เพื่อแสดงคุณลักษณะMarkdownที่ซ้อนกัน ในกรณีนี้แม้ในขณะที่ไม่มีคุณลักษณะที่ซ้อนกัน,เรายังใช้รูปแบบย่อหน้าที่มีชื่อที่เริ่มต้นจากคำพิเศ.
รายการที่มีสัญลักษณ์แสดงหัวข้อย่อยและสั่งเป็นบล็อกคอนเทนเนอร์ในMarkdownเช่นกัน รทำรังของพวกเขาจะแสดงในDOMเช่นเดียวกับบล็อกคอนเทนเนอร์อื่นๆทั้งหมดโดยใช้การสืบทอ อย่างไรก็ตาม,นอกจากนี้,รายการในDOMมีการจัดรูปแบบตัวเลขที่สอดคล้องกันทั้งในรูปแบบราย.
บล็อกอินไลน์
เราใช้Fontการจัดรูปแบบเมื่อแปลBold,ItalicหรือStrikethroughอินไลน์markdownคุณสมบัติ.
Markdownคุณลักษณะ | Aspose.Words |
---|---|
Bold**bold text** |
Font.Bold = true |
Italic*italic text* |
Font.Italic = true |
Strikethrough~Strikethrough text~ |
Font.StrikeThrough = true |
เราใช้ลักษณะอักขระที่มีชื่อที่เริ่มต้นจากคำว่าInlineCode
ตามด้วยจุดตัวเลือก(.)
และจำนวนของติ๊กหลัง(`)
สำหรับคุณลักษณะInlineCode
หากมีข้อผิดพลาดหลายข้อผิดพลาดจะมีการใช้เครื่องหมายย้อนกลับหนึ่งตัวโดยค่าเริ่มต้น.
Markdownคุณลักษณะ | Aspose.Words |
---|---|
InlineCode**inline code** |
Font.StyleName = "InlineCode[.][N]" |
Autolink<scheme://domain.com> <email@domain.com> |
คลาสFieldHyperlink. |
Link[ลิงก์ข้อความ](url) [ลิงก์ข้อความ](<url>"title") [ลิงก์ข้อความ](url 'title') [ลิงก์ข้อความ](url (title)) |
คลาสFieldHyperlink. |
Image![](/words/java/translate-markdown-to-document-object-model/url) ![ข้อความ](/words/java/translate-markdown-to-document-object-model/<url>"title") ![ข้อความ](/words/java/translate-markdown-to-document-object-model/url ‘title’) ![ข้อความ](/words/java/translate-markdown-to-document-object-model/url (title)) |
คลาสShape. |
บล็อกคอนเทนเนอร์
เอกสารเป็นลำดับของคอนเทนเนอร์บล็อกเช่นส่วนหัวย่อหน้ารายการใบเสนอราคาและอื่ บล็อกภาชนะสามารถแบ่งออกเป็น 2 ชั้น:บล็อกใบและภาชนะบรรจุที่ซับซ้อน บล็อกใบสามารถมีเนื้อหาแบบอินไลน์เท่านั้น Contชนะบรรจุที่ซับซ้อนในที่สุดก็สามารถมีบล็อกภาชนะอื่นๆรวมทั้งบล็อกใบ.
บล็อกใบ
ตารางด้านล่างแสดงตัวอย่างการใช้บล็อกใบMarkdownในAspose.Words:
Markdownคุณลักษณะ | Aspose.Words |
---|---|
HorizontalRule----- |
นี่เป็นย่อหน้าง่ายๆที่มีรูปร่างHorizontalRuleที่สอดคล้องกัน:DocumentBuilder.InsertHorizontalRule() |
ATX Heading# H1, ## H2, ### H3… |
ParagraphFormat.StyleName = "Heading N" ที่ไหน(1<=เอ็น <= 9).นี้ถูกแปลเป็นสไตล์ในตัวและควรจะตรงกับรูปแบบที่ระบุ(ไม่อนุญาตให้ต่อท้ายหรือคำนำหน้า) มิฉะนั้นมันจะเป็นเพียงย่อหน้าปกติที่มีสไตล์ที่สอดคล้องกัน. |
Setext Heading=== (if Heading level 1),--- (if Heading level 2) |
ParagraphFormat.StyleName = "SetextHeading[some suffix]" ขึ้นอยู่กับ’หัวข้อไม่มีสไตล์ถ้า(ยังไม่มีข้อความ>=2)แล้ว’Heading 2’จะถูกใช้มิฉะนั้น’Heading 1' คำต่อท้ายใดๆที่ได้รับอนุญาตแต่Aspose.Wordsผู้นำเข้าใช้หมายเลข"1"และ"2"ตามลำดับ. |
Indented Code
|
ParagraphFormat.StyleName = "IndentedCode[some suffix]" |
Ersชนะบรรจุที่ซับซ้อน
ตารางด้านล่างแสดงตัวอย่างของการใช้Markdownคอนเทนเนอร์ที่ซับซ้อนในAspose.Words:
Markdownคุณลักษณะ | Aspose.Words |
---|---|
Quote> quote, >> nested quote |
ParagraphFormat.StyleName = "Quote[some suffix]" ชื่อต่อท้ายในลักษณะเป็นตัวเลือกแต่ผู้นำเข้าAspose.Wordsใช้หมายเลขเรียงลำดับ 1, 2, 3, …. ในกรณีของคำพูดที่ซ้อนกัน รังจะถูกกำหนดผ่านทางรูปแบบที่สืบทอด. |
BulletedList- Item 1 - Item 2 - Item 2a - Item 2b |
รายการที่มีสัญลักษณ์แสดงโดยใช้หมายเลขย่อหน้า:ListFormat.ApplyBulletDefault() สามารถมี 3 ประเภทของรายการสัญลักษณ์ กต่างกันในรูปแบบตัวเลขของระดับแรกมาก เหล่านี้คือ: ‘-’ ,‘+’ หรือ‘*’ ตามลำดับ. |
OrderedList1. Item 1 2. Item 2 1) Item 2a 2) Item 2b |
รายการสั่งซื้อจะถูกแสดงโดยใช้หมายเลขย่อหน้า:ListFormat.ApplyNumberDefault() อาจมีเครื่องหมายรูปแบบหมายเลข 2 ตัว:‘.’และ‘)’ เครื่องหมายเริ่มต้นคือ‘.’. |
โต๊ะ
Aspose.Wordsยังช่วยให้การแปลตารางเป็นDOMดังแสดงด้านล่าง:
Markdownคุณลักษณะ | Aspose.Words |
---|---|
Table a|b -|- c|d |
Table,RowและCellชั้นเรียน. |