Markdown öğesini Belge Nesne Modeline Çevir (DOM)
Bir belgenin içeriğini ve biçimlendirmesini programlı olarak okumak, değiştirmek ve değiştirmek için belgeyi Aspose.Words Belge Nesne Modeline (DOM) çevirmeniz gerekir.
Word belgelerinin aksine, Markdown, belgede açıklanan DOM belgesine uymaz. Aspose.Words Belge Nesne Modeli (DOM) makale. Ancak Aspose.Words, metin biçimlendirme, tablolar, üstbilgiler ve diğerleri gibi öğeleriyle başarılı bir şekilde çalışabilmemiz için Markdown belgelerini DOM ‘e ve geriye çevirmek için kendi mekanizmasını sağlar.
Bu makalede, çeşitli markdown özelliklerin Aspose.Words DOM biçimine ve Markdown biçimine nasıl çevrilebileceği açıklanmaktadır.
Çevirinin Karmaşıklığı Markdown – DOM – Markdown
Bu mekanizmanın temel zorluğu sadece Markdown ‘ı DOM ‘e çevirmek değil, aynı zamanda ters dönüşümü yapmaktır – belgeyi en az kayıpla Markdown biçimine geri kaydetmek. Ters dönüşümün önemsiz olmadığı çok düzeyli alıntılar gibi öğeler vardır.
Çeviri motorumuz, kullanıcıların yalnızca mevcut bir Markdown belgedeki karmaşık öğelerle çalışmasına değil, aynı zamanda orijinal yapısıyla sıfırdan Markdown biçiminde kendi belgelerini oluşturmasına da olanak tanır. Çeşitli öğeler oluşturmak için, bu makalenin ilerleyen bölümlerinde açıklanan belirli kurallara göre belirli adlara sahip stilleri kullanmanız gerekir. Bu tür stiller programlı olarak oluşturulabilir.
Ortak Çeviri İlkeleri
Satır içi bloklar için Font biçimlendirme kullanıyoruz. Aspose.Words DOM içindeki bir Markdown özelliği için doğrudan bir yazışma olmadığında, bazı özel kelimelerden başlayan bir ada sahip bir karakter stili kullanırız.
Konteyner blokları için, iç içe Markdown özellikleri belirtmek için stil kalıtımını kullanırız. Bu durumda, iç içe geçmiş özellikler olmasa bile, bazı özel kelimelerden başlayan bir ada sahip paragraf stilleri de kullanırız.
Madde işaretli ve sıralı listeler Markdown içindeki kapsayıcı bloklarıdır. İç içe geçmeleri, stil kalıtımını kullanan diğer tüm kapsayıcı bloklarda olduğu gibi DOM ile temsil edilir. Bununla birlikte, ek olarak, DOM içindeki listeler, liste stilinde veya paragraf biçimlendirmesinde karşılık gelen sayı biçimlendirmesine sahiptir.
Satır İçi Bloklar
Bold, Italic veya Strikethrough satır içi markdown özelliklerini çevirirken Font biçimlendirme kullanıyoruz.
Markdown özellik | Aspose.Words |
---|---|
Bold**bold text** |
get_Font()->set_Bold(true) |
Italic*italic text* |
get_Font()->set_Italic(true) |
Strikethrough~Strikethrough text~ |
get_Font()->set_StrikeThrough(true) |
InlineCode
kelimesinden başlayan bir ada sahip bir karakter stili, ardından InlineCode
özelliği için isteğe bağlı bir nokta (.)
ve bir dizi geri işaret (`)
kullanıyoruz. Bir dizi backtick kaçırılırsa, varsayılan olarak bir backtick kullanılır.
Markdown özellik | Aspose.Words |
---|---|
InlineCode**inline code** |
get_Font()->set_StyleName(u"InlineCode[.][N]") |
Autolink<scheme://domain.com> <email@domain.com> |
FieldHyperlink sınıfı. |
Link[link text](url) [link text](<url>"title") [link text](url 'title') [link text](url (title)) |
FieldHyperlink sınıfı. |
Image![](url) ![alt text](<url>"title") ![alt text](url ‘title’) ![alt text](url (title)) |
Shape sınıfı. |
Konteyner Blokları
Belge, başlıklar, paragraflar, listeler, alıntılar ve diğerleri gibi bir kapsayıcı blokları dizisidir. Konteyner blokları 2 sınıflarına ayrılabilir: Yaprak blokları ve Karmaşık Kaplar. Yaprak blokları yalnızca satır içi içerik içerebilir. Karmaşık kaplar, sırayla, Yaprak blokları da dahil olmak üzere başka kap blokları içerebilir.
Yaprak Blokları
Aşağıdaki tablo, Aspose.Words içinde Markdown Yaprak bloklarının kullanımına ilişkin örnekleri göstermektedir:
Markdown özellik | Aspose.Words |
---|---|
HorizontalRule----- |
Bu, karşılık gelen HorizontalRule şekline sahip basit bir paragraftır:DocumentBuilder::InsertHorizontalRule() |
ATX Heading# H1, ## H2, ### H3… |
get_ParagraphFormat()->set_StyleName(u"Heading N") , nerede (1<= N <= 9).Bu, yerleşik bir stile çevrilir ve tam olarak belirtilen desende olmalıdır (soneklere veya öneklere izin verilmez). Aksi takdirde, karşılık gelen bir stile sahip normal bir paragraf olacaktır. |
Setext Heading=== (if Heading level 1),--- (if Heading level 2) |
get_ParagraphFormat->set_StyleName(u"SetextHeading[some suffix]") , "Heading N" stiline göre.Eğer (N> = 2), o zaman "Heading 2" kullanılacaktır, aksi takdirde "Heading 1" .Herhangi bir son eke izin verilir, ancak Aspose.Words içe aktarıcı sırasıyla “1” ve “2” numaralarını kullanır. |
Indented Code | get_ParagraphFormat->set_StyleName(u"IndentedCode[some suffix]") |
Fenced Code
|
get_ParagraphFormat()->set_StyleName(u"FencedCode[.][info string]") [.] ve [info string] isteğe bağlıdır. |
Karmaşık Konteynerler
Aşağıdaki tablo, Aspose.Words içinde Markdown Karmaşık Kapsayıcıları kullanma örneklerini göstermektedir:
Markdown özellik | Aspose.Words |
---|---|
Quote> quote, >> nested quote |
get_ParagraphFormat()->set_StyleName(u"Quote[some suffix]") Stil adındaki sonek isteğe bağlıdır, ancak Aspose.Words içe aktarıcı sıralı numaraları kullanır 1, 2, 3, …. iç içe geçmiş alıntılar durumunda. Yuvalama, devralınan stiller aracılığıyla tanımlanır. |
BulletedList- Item 1 - Item 2 - Item 2a - Item 2b |
Madde işaretli listeler paragraf numaralandırması kullanılarak temsil edilir:get_ListFormat()->ApplyBulletDefault() 3 madde işaretli liste türleri olabilir. Bunlar yalnızca ilk seviyenin numaralandırma biçiminde farklılık gösterir. Bunlar: sırasıyla ‘-’ , ‘+’ veya ‘*’ . |
OrderedList1. Item 1 2. Item 2 1) Item 2a 2) Item 2b |
Sıralı listeler paragraf numaralandırması kullanılarak temsil edilir:get_ListFormat()->ApplyNumberDefault() 2 sayı biçimi belirteçleri olabilir: ‘.’ ve ‘)’. Varsayılan belirteç ‘.’ ‘dir. |
Masalar
Aspose.Words ayrıca aşağıda gösterildiği gibi tabloların DOM ‘e çevrilmesine de izin verir:
Markdown özellik | Aspose.Words |
---|---|
Table a|b -|- c|d |
Table, Row ve Cell sınıfları. |