Přeložit Markdown až Document Object Model (DOM)
Chcete-li programově číst, manipulovat a upravovat obsah a formátování dokumentu, musíte jej přeložit do Aspose.Words Document Object Model (DOM).
Na rozdíl od dokumentů Word, Markdown neodpovídá DOM popsané v Aspose.Words Document Object Model (DOM) článek. Nicméně, Aspose.Words poskytuje svůj vlastní mechanismus pro překlad Markdown doklady k DOM a zpět, abychom mohli úspěšně pracovat s jejich prvky, jako je formátování textu, tabulky, hlavičky, a další.
Tento článek vysvětluje, jak různé markdown funkce mohou být přeloženy do Aspose.Words DOM a zpět k Markdown formát.
Složitost překladu Markdown - Co? DOM - Co? Markdown
Hlavním problémem tohoto mechanismu je nejen překládat Markdown až DOM, ale také k provedení reverzní transformace, aby byl dokument uložen zpět na Markdown formát s minimální ztrátou. Existují prvky, jako jsou multilevel citace, pro které reverzní transformace není triviální.
Náš překladatelský motor umožňuje uživatelům nejen pracovat se složitými prvky ve stávající Markdown dokument, ale také vytvořit svůj vlastní dokument v Markdown formát s původní strukturou od nuly. Chcete-li vytvořit různé prvky, musíte použít styly s konkrétními názvy podle některých pravidel popsaných později v tomto článku. Takové styly lze vytvořit programově.
Společný překlad Zásady
Používáme Font formátování pro inline bloky. Pokud neexistuje přímá korespondence pro Markdown funkce v Aspose.Words DOM, používáme charakterový styl se jménem, který začíná z některých speciálních slov.
Pro kontejnerové bloky používáme styl dědictví k označení hnízda Markdown funkce. V tomto případě, i když nejsou žádné vnořené rysy, používáme také odstíny s názvem, který začíná z některých zvláštních slov.
Kulky a objednané seznamy jsou kontejnerové bloky v Markdown Taky. Jejich hnízdění je zastoupeno v DOM stejně jako u všech ostatních kontejnerových bloků za použití stylu dědictví. Avšak kromě toho seznam DOM odpovídají formátování čísel buď ve stylu seznamu, nebo ve formátu odstavce.
Inline bloky
Používáme Font formátování při překladu Bold, Italic nebo Strikethrough inline markdown funkce.
Markdown funkce | Aspose.Words |
---|---|
Bold{1} |
Font.Bold = true |
Italic*italic text* |
Font.Italic = true |
Strikethrough~Strikethrough text~ |
Font.StrikeThrough = true |
|
Používáme charakterový styl se jménem, který začíná slovem <span notrans="<span notrans=" InlineCode
"="">,? následuje volitelná tečka (.)
a řada odplat (`)
pro InlineCode
bonus. Je-li chybět několik backticks, pak jeden backtick bude použit ve výchozím nastavení.
Markdown funkce | Aspose.Words |
---|---|
InlineCode{1} |
Font.StyleName = “InlineCode[.][N]” |
Autolink<scheme://domain.com> <email@domain.com> |
• FieldHyperlink třída |
Link{1} {2} {3} {4}) |
• FieldHyperlink třída |
Image{1} {2} {3} {4}) |
• Shape třída |
Bloky kontejnerů
Dokument je posloupnost kontejnerových bloků, jako jsou nadpisy, odstavce, seznamy, citace a další. Kontejnerové bloky lze rozdělit do dvou tříd: Listové bloky a komplexní kontejnery. Listové bloky mohou obsahovat pouze inline obsah. Komplexní kontejnery zase mohou obsahovat jiné kontejnerové bloky, včetně Leaf bloků.
Listové bloky
Níže uvedená tabulka uvádí příklady použití Markdown Listové bloky v Aspose.Words:
Markdown funkce | Aspose.Words |
---|---|
HorizontalRule----- |
Jedná se o jednoduchý odstavec s odpovídajícím tvarem horizontálního pravidla:DocumentBuilder.InsertHorizontalRule() |
ATX Heading# H1, ## H2, ### H3… |
ParagraphFormat.StyleName = “Heading N” , kde (1 <= N ≤ 9).To je přeloženo do vestavěného stylu a mělo by být přesně zadaného vzoru (nejsou povoleny žádné přípony nebo předpony). Jinak to bude jen pravidelný odstavec s odpovídajícím stylem |
Setext Heading=== (pokud úroveň čísla 1),--- (jestliže číslo 2) |
ParagraphFormat.StyleName = “SetextHeading[some suffix]” , na základě “Heading N” Styl.Pokud: “Heading 2” bude použito jinak “Heading 1” .Každá přípona je povolena, ale Aspose.Words dovozce používá čísla КАКА a КАКА |
|
|
Indented Code | ParagraphFormat.StyleName = “IndentedCode[some suffix]” |
Fenced Code
|
ParagraphFormat.StyleName = “FencedCode[.][info string]” • [.] a [info string] jsou nepovinné |
Komplexní kontejnery
Níže uvedená tabulka uvádí příklady použití Markdown Komplexní kontejnery v Aspose.Words:
Markdown funkce | Aspose.Words |
---|---|
Quote> quote, >> nested quote |
ParagraphFormat.StyleName = “Quote[some suffix]” Přípona ve stylu je volitelná, ale Aspose.Words dovozce používá objednaná čísla 1, 2, 3, …. v případě hnízdě kotací. Hnízdo je definováno prostřednictvím dědičných stylů |
|
|
BulletedList- Item 1 - Item 2 - Item 2a - Item 2b |
Výbušné seznamy jsou zastoupeny číslováním odstavce:ListFormat.ApplyBulletDefault() Můžou být tři typy zastřelených seznamů. Jsou jen rozdíl v číslování formátu úplně první úrovně. Jedná se o: ‘-’ , ‘+’ nebo ‘*’ resp |
OrderedList1. Item 1 2. Item 2 1) Item 2a 2) Item 2b |
Objednané seznamy jsou zastoupeny podle číslování odstavce:ListFormat.ApplyNumberDefault() Mohou existovat 2 znaky formátů čísel: Výchozím ukazatelem je: |
|
Tabulky
Aspose.Words také umožňuje přeložit tabulky do DOM, jak je uvedeno níže:
Markdown funkce | Aspose.Words |
---|---|
Table a |
b<br /> - |
|