Vertaal Markdown Na Dokument Objek Model (DOM)
Om die inhoud en formatering van’n dokument programmaties te lees, te manipuleer en te verander, moet jy dit vertaal na die Aspose.Words Document Object Model (DOM).
In teenstelling met Word-dokumente, voldoen Markdown nie aan die DOM wat in Die Aspose.Words Dokument Voorwerp Model (DOM) artikel. Aspose.Words bied egter sy eie meganisme vir die vertaling van Markdown dokumente na DOM en terug, sodat ons suksesvol kan werk met hul elemente soos teks opmaak, tabelle, koptekste, en ander.
Hierdie artikel verduidelik hoe die verskillende markdown kenmerke vertaal kan word in Aspose.Words DOM en terug na Markdown formaat.
Kompleksiteit Van Vertaling Markdown – DOM – Markdown
Die grootste probleem van hierdie meganisme is nie net om Markdown te vertaal na DOM nie, maar ook om die omgekeerde transformasie te doen om die dokument terug te stoor na Markdown formaat met minimale verlies. Daar is elemente, soos meervlak aanhalingstekens, waarvoor die omgekeerde transformasie nie triviaal is nie.
Ons vertaling enjin kan gebruikers nie net om te werk met komplekse elemente in’n bestaande Markdown dokument, maar ook om hul eie dokument te skep in Markdown formaat met die oorspronklike struktuur van nuuts af. Om verskeie elemente te skep, moet jy style met spesifieke name gebruik volgens sekere reëls wat later in hierdie artikel beskryf word. Sulke style kan programmaties geskep word.
Algemene Vertaalbeginsels
Ons gebruik Font formatering vir inline blokke. Wanneer daar geen direkte ooreenstemming is vir’n Markdown kenmerk in Aspose.Words DOM nie, gebruik ons’n karakterstyl met’n naam wat begin met’n paar spesiale woorde.
Vir houerblokke gebruik ons styl oorerwing om geneste Markdown kenmerke aan te dui. In hierdie geval, selfs wanneer daar geen geneste kenmerke is nie, gebruik ons ook paragraafstyle met’n naam wat van’n paar spesiale woorde begin.
Bullet en bestel lyste is houer blokke in Markdown sowel. Hul nes is verteenwoordig in DOM op dieselfde manier as vir alle ander houer blokke met behulp van styl erfenis. Daarbenewens het lyste in DOM egter ooreenstemmende nommeropmaak in lysstyl of paragraafopmaak.
Inlyn Blokke
Ons gebruik Font formatering wanneer ons Bold, Italic of Strikethrough inline markdown funksies vertaal.
Markdown kenmerk | 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) |
Ons gebruik’n karakter styl met’n naam wat begin van die woord InlineCode
, gevolg deur’n opsionele punt (.)
en’n aantal backticks (`)
vir die InlineCode
funksie. As’n aantal backticks gemis word, dan sal een backtick gebruik word by verstek.
Markdown kenmerk | Aspose.Words |
---|---|
InlineCode**inline code** |
get_Font()->set_StyleName(u"InlineCode[.][N]") |
Autolink<scheme://domain.com> <email@domain.com> |
Die FieldHyperlink klas. |
Link[link text](url) [link text](<url>"title") [link text](url 'title') [link text](url (title)) |
Die FieldHyperlink klas. |
Image![](url) ![alt text](<url>"title") ![alt text](url ‘title’) ![alt text](url (title)) |
Die Shape klas. |
Houerblokke
‘n dokument is’n reeks houerblokke soos opskrifte, paragrawe, lyste, aanhalings en ander. Container blokke kan verdeel word in 2 klasse: Blaar blokke en Komplekse Houers. Blaarblokke kan slegs inline inhoud bevat. Komplekse houers kan op hul beurt ander houerblokke bevat, insluitend Blaarblokke.
Blaarblokke
Die tabel hieronder toon voorbeelde van die gebruik van Markdown Blaarblokke in Aspose.Words:
Markdown kenmerk | Aspose.Words |
---|---|
HorizontalRule----- |
Dit is’n eenvoudige paragraaf met’n ooreenstemmende HorizontalRule vorm:DocumentBuilder::InsertHorizontalRule() |
ATX Heading# H1, ## H2, ### H3… |
get_ParagraphFormat()->set_StyleName(u"Heading N") , waar (1<= N <= 9).Dit word in’n ingeboude styl vertaal en moet presies van die gespesifiseerde patroon wees (geen agtervoegsels of voorvoegsels word toegelaat nie). Andersins sal dit net’n gewone paragraaf met’n ooreenstemmende styl wees. |
Setext Heading=== (if Heading level 1),--- (if Heading level 2) |
get_ParagraphFormat->set_StyleName(u"SetextHeading[some suffix]") , gebaseer op "Heading N" styl.As (n >= 2), dan sal "Heading 2" gebruik word, anders sal "Heading 1" .Enige agtervoegsel word toegelaat, maar Aspose.Words invoerder gebruik getalle “1” en “2” onderskeidelik. |
Indented Code | get_ParagraphFormat->set_StyleName(u"IndentedCode[some suffix]") |
Fenced Code
|
get_ParagraphFormat()->set_StyleName(u"FencedCode[.][info string]") Die [.] en [info string] is opsioneel. |
Komplekse Houers
Die tabel hieronder toon voorbeelde van die gebruik van Markdown Komplekse Houers in Aspose.Words:
Markdown kenmerk | Aspose.Words |
---|---|
Quote> quote, >> nested quote |
get_ParagraphFormat()->set_StyleName(u"Quote[some suffix]") Die agtervoegsel in stylnaam is opsioneel, maar Aspose.Words invoerder gebruik die geordende nommers 1, 2, 3, …. in die geval van geneste aanhalings. Die nes word gedefinieer deur die oorgeërfde style. |
BulletedList- Item 1 - Item 2 - Item 2a - Item 2b |
Bullet lyste word verteenwoordig met behulp van paragraaf nommering:get_ListFormat()->ApplyBulletDefault() Daar kan 3 tipes van koeëllyste wees. Hulle is slegs diff in’n nommering formaat van die heel eerste vlak. Dit is: ‘-’ , ‘+’ of ‘*’ onderskeidelik. |
OrderedList1. Item 1 2. Item 2 1) Item 2a 2) Item 2b |
Geordende lyste word verteenwoordig deur paragraafnommering te gebruik:get_ListFormat()->ApplyNumberDefault() Daar kan 2 nommer formaat merkers wees: ‘.’ en ‘)’. Die standaard merker is ‘.’. |
Tabelle
Aspose.Words laat ook toe om tabelle te vertaal in DOM, soos hieronder getoon:
Markdown kenmerk | Aspose.Words |
---|---|
Table a|b -|- c|d |
Table, Row en Cell klasse. |