Terjemahkan Markdown ke Document Object Model (DOM)
Untuk membaca, memanipulasi, dan mengubah konten dan format dokumen secara terprogram, Anda perlu menerjemahkannya ke Aspose.Words Document Object Model (DOM).
Berbeda dengan dokumen Word, Markdown tidak sesuai dengan DOM yang dijelaskan dalam artikel Aspose.Words Document Object Model (DOM). Namun, Aspose.Words menyediakan mekanismenya sendiri untuk menerjemahkan dokumen Markdown ke DOM dan sebaliknya, sehingga kami dapat berhasil bekerja dengan elemen-elemennya seperti pemformatan teks, tabel, header, dan lain-lain.
Artikel ini menjelaskan bagaimana berbagai fitur markdown dapat diterjemahkan ke dalam Aspose.Words DOM dan kembali ke format Markdown.
Kompleksitas Terjemahan Markdown – DOM – Markdown
Kesulitan utama dari mekanisme ini tidak hanya menerjemahkan Markdown ke DOM, tetapi juga melakukan transformasi sebaliknya – menyimpan dokumen kembali ke format Markdown dengan kerugian minimal. Ada elemen, seperti kutipan bertingkat, yang transformasi kebalikannya bukanlah hal yang sepele.
Mesin terjemahan kami memungkinkan pengguna tidak hanya bekerja dengan elemen kompleks dalam dokumen Markdown yang ada, tetapi juga membuat dokumen mereka sendiri dalam format Markdown dengan struktur asli dari awal. Untuk membuat berbagai elemen, Anda perlu menggunakan gaya dengan nama tertentu sesuai dengan aturan tertentu yang dijelaskan nanti di artikel ini. Gaya seperti itu dapat dibuat secara terprogram.
Prinsip Penerjemahan Umum
Kami menggunakan format Font untuk blok sebaris. Jika tidak ada korespondensi langsung untuk fitur Markdown di Aspose.Words DOM, kami menggunakan gaya karakter dengan nama yang dimulai dari beberapa kata khusus.
Untuk blok kontainer, kami menggunakan pewarisan gaya untuk menunjukkan fitur Markdown yang disarangkan. Dalam hal ini, meskipun tidak ada fitur bertingkat, kami juga menggunakan gaya paragraf dengan nama yang dimulai dari beberapa kata khusus.
Daftar berpoin dan terurut juga merupakan blok penampung di Markdown. Sarangnya direpresentasikan di DOM dengan cara yang sama seperti semua blok kontainer lainnya menggunakan pewarisan gaya. Namun, selain itu, daftar di DOM memiliki format angka yang sesuai dalam gaya daftar atau format paragraf.
Blok Sebaris
Kami menggunakan format Font saat menerjemahkan fitur markdown sebaris Bold, Italic, atau Dicoret.
fitur Markdown | Aspose.Words |
---|---|
Bold{1} |
Font.Bold = true |
Italic*italic text* |
Font.Italic = true |
Strikethrough~Strikethrough text~ |
Font.StrikeThrough = true |
|
Kami menggunakan gaya karakter dengan nama yang dimulai dari kata InlineCode
, diikuti dengan titik (.)
opsional dan sejumlah (`)
backticks untuk fitur InlineCode
. Jika sejumlah backtick terlewatkan, maka satu backtick akan digunakan secara default.
fitur Markdown | Aspose.Words |
---|---|
InlineCode{1} |
Font.StyleName = “InlineCode[.][N]” |
Autolink<scheme://domain.com> <email@domain.com> |
Kelas FieldHyperlink |
Link{1} {2} {3} {4}) |
Kelas FieldHyperlink |
Image{1} {2} {3} {4}) |
Kelas Shape |
Blok Kontainer
Dokumen merupakan rangkaian blok penampung seperti judul, paragraf, daftar, kutipan, dan lain-lain. Blok kontainer dapat dibagi menjadi 2 kelas: blok daun dan kontainer kompleks. Blok daun hanya dapat berisi konten sebaris. Kontainer yang kompleks, pada gilirannya, dapat berisi blok kontainer lain, termasuk blok Leaf.
Blok Daun
Tabel di bawah menunjukkan contoh penggunaan blok Markdown Leaf di Aspose.Words:
fitur Markdown | Aspose.Words |
---|---|
HorizontalRule----- |
Ini adalah paragraf sederhana dengan bentuk HorizontalRule yang sesuai:DocumentBuilder.InsertHorizontalRule() |
ATX Heading# H1, ## H2, ### H3… |
ParagraphFormat.StyleName = “Heading N” , dimana (1<= N <= 9).Ini diterjemahkan ke dalam gaya bawaan dan harus sesuai dengan pola yang ditentukan (tidak ada sufiks atau awalan yang diperbolehkan). Jika tidak, itu hanya akan menjadi paragraf biasa dengan gaya yang sesuai |
Setext Heading=== (jika Pos level 1),--- (jika Heading level 2) |
ParagraphFormat.StyleName = “SetextHeading[some suffix]” , berdasarkan gaya “Heading N” .Jika (N >= 2), maka “Heading 2” akan digunakan, jika tidak “Heading 1” .Sufiks apa pun diperbolehkan, tetapi pengimpor Aspose.Words menggunakan angka “1” dan “2” masing-masing |
|
|
Indented Code | ParagraphFormat.StyleName = “IndentedCode[some suffix]” |
Fenced Code
|
ParagraphFormat.StyleName = “FencedCode[.][info string]” [.] dan [info string] bersifat opsional |
Kontainer Kompleks
Tabel di bawah menunjukkan contoh penggunaan Markdown Complex Containers di Aspose.Words:
fitur Markdown | Aspose.Words |
---|---|
Quote> quote, >> nested quote |
ParagraphFormat.StyleName = “Quote[some suffix]” Akhiran pada nama gaya bersifat opsional, namun importir Aspose.Words menggunakan nomor urut 1, 2, 3,…. dalam kasus kutipan bersarang. Penyarangannya ditentukan melalui gaya yang diwariskan |
|
|
BulletedList- Item 1 - Item 2 - Item 2a - Item 2b |
Daftar berpoin direpresentasikan menggunakan penomoran paragraf:ListFormat.ApplyBulletDefault() Ada 3 jenis daftar berpoin. Perbedaannya hanya pada format penomoran tingkat pertama. Ini adalah: ‘-’ , ‘+’ atau ‘*’ masing-masing |
OrderedList1. Item 1 2. Item 2 1) Item 2a 2) Item 2b |
Daftar yang diurutkan direpresentasikan menggunakan penomoran paragraf:ListFormat.ApplyNumberDefault() Bisa ada 2 penanda format angka: ‘.’ Dan ‘)’. Penanda defaultnya adalah ‘.’ |
|
Tabel
Aspose.Words juga memungkinkan untuk menerjemahkan tabel ke DOM, seperti yang ditunjukkan di bawah ini:
fitur Markdown | Aspose.Words |
---|---|
Table a|b -|- c|d |
Kelas Table, Row dan Cell |
|