Przetłumacz Markdown do Document Object Model (DOM)
Aby programowo czytać, manipulować i modyfikować zawartość i formatowanie dokumentu, należy przetłumaczyć go na Aspose.Words Document Object Model (DOM).
W przeciwieństwie do dokumentów Worda, Markdown nie jest zgodny z DOM opisane w Aspose.Words Document Object Model (DOM) Artykuł. Jednakże, Aspose.Words zapewnia własny mechanizm tłumaczenia Markdown dokumenty DOM i z powrotem, abyśmy mogli z powodzeniem pracować z ich elementami, takimi jak formatowanie tekstu, tabele, nagłówki i inne.
Ten artykuł wyjaśnia, jak różne markdown funkcje można przetłumaczyć na Aspose.Words DOM i powrót do Markdown format.
Kompleksowość tłumaczenia Markdown - DOM - Markdown
Główną trudnością tego mechanizmu jest nie tylko tłumaczenie Markdown do DOM, ale także zrobić odwrotną transformację - zapisać dokument z powrotem do Markdown format z minimalną stratą. Istnieją elementy, takie jak cytaty wielopoziomowe, dla których transformacja odwrotna nie jest trywialna.
Nasz silnik tłumaczeniowy pozwala użytkownikom nie tylko pracować z skomplikowanymi elementami w istniejących Markdown dokument, ale także do tworzenia własnego dokumentu w Markdown format z oryginalną strukturą od podstaw. Aby stworzyć różne elementy, musisz używać stylów z konkretnymi nazwami zgodnie z niektórymi zasadami opisanymi później w tym artykule. Style takie mogą być tworzone programowo.
Wspólne tłumaczenie Zasady
Używamy Font formatowanie bloków wewnętrznych. W przypadku braku bezpośredniej korespondencji Markdown funkcja w Aspose.Words DOM, Używamy stylu postaci o nazwie, która zaczyna się od specjalnych słów.
Dla bloków kontenerowych, używamy stylu dziedziczenia do określenia gniazda Markdown funkcje. W tym przypadku, nawet jeśli nie ma zagnieżdżonych funkcji, używamy również stylów paragrafów z nazwą, która zaczyna się od niektórych słów specjalnych.
Wystawione i zamówione listy są bloki kontenerowe w Markdown Jak również. Ich gniazda są reprezentowane w DOM w ten sam sposób jak dla wszystkich innych bloków kontenerowych przy użyciu stylu dziedziczenia. Jednakże, dodatkowo, wykazy w DOM mają odpowiadający numer formatowania w stylu listy lub w formacie paragrafu.
Bloki wewnętrzne
Używamy Font formatowanie podczas tłumaczenia Bold, Italic lub ~ ~ Strikethrough ~ ~ inline markdown funkcje.
Markdown funkcja | Aspose.Words | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Bold{1} |
Font.Bold = true |
||||||||||||||
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
|
|||||||||||||||
Italic*italic text* |
Font.Italic = true |
||||||||||||||
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
|
|||||||||||||||
Strikethrough~Strikethrough text~ |
Font.StrikeThrough = true |
||||||||||||||
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
|
Używamy stylu znaków z nazwą, która zaczyna się od słowa InlineCode
, > po której następuje opcjonalna kropka (.)
i kilka tyłków (`)
dla InlineCode
funkcja. W przypadku pominięcia pewnej liczby typków, domyślnie zostanie użyty jeden.
Markdown funkcja | Aspose.Words | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
InlineCode{1} |
Font.StyleName = “InlineCode[.][N]” |
||||||||||||||||||||||||||
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
|
|||||||||||||||||||||||||||
Autolink<scheme://domain.com> <email@domain.com> |
W FieldHyperlink Klasa | ||||||||||||||||||||||||||
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
|
|||||||||||||||||||||||||||
Link{1} {2} {3} {4}) |
W FieldHyperlink Klasa | ||||||||||||||||||||||||||
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
|
|||||||||||||||||||||||||||
Image{1} {2} {3} {4}) |
W Shape Klasa | ||||||||||||||||||||||||||
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
|
Bloki kontenerów
Dokument jest sekwencją bloków kontenerowych, takich jak nagłówki, paragrafy, listy, cytaty i inne. Bloki kontenerów można podzielić na 2 klasy: Bloki liści i złożone kontenery. Bloki liści mogą zawierać tylko zawartość inline. Z kolei złożone pojemniki mogą zawierać inne bloki kontenerowe, w tym bloki Leaf.
Bloki liści
Poniższa tabela przedstawia przykłady stosowania Markdown Bloki liści w Aspose.Words:
Markdown funkcja | Aspose.Words | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
HorizontalRule----- |
Jest to prosty akapit o odpowiednim kształcie horyzontalnej zasady:DocumentBuilder.InsertHorizontalRule() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ATX Heading# H1, ## H2, ### H3… |
ParagraphFormat.StyleName = "Heading N" , gdzie (1 < = N < = 9).To jest przetłumaczone na built- w stylu i powinno być dokładnie określonego wzoru (nie są dozwolone przyrostki lub przedrostki). W przeciwnym razie będzie to zwykły akapit o odpowiednim stylu |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Setext Heading=== (jeżeli zakres 1),--- (jeżeli zakres 2) |
ParagraphFormat.StyleName = “SetextHeading[some suffix]” , w oparciu o ‘Heading N’ Styl.Jeśli (N > = 2), to ‘Heading 2’ zostaną wykorzystane, w przeciwnym razie ‘Heading 1’. Każdy przyrostek jest dozwolony, ale Aspose.Words Importer stosuje odpowiednio numery “1” i “2” |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Indented Code | ParagraphFormat.StyleName = “IndentedCode[some suffix]” |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Fenced Code
|
ParagraphFormat.StyleName = “FencedCode[.][info string]” W [.] oraz [info string] są opcjonalne |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
|
Kontenery złożone
Poniższa tabela przedstawia przykłady stosowania Markdown Kompleksowe pojemniki w Aspose.Words:
Markdown funkcja | Aspose.Words | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Quote> quote, >> nested quote |
ParagraphFormat.StyleName = “Quote[some suffix]” Przyrostek w nazwie stylu jest opcjonalny, ale Aspose.Words Importer stosuje zamówione numery 1, 2, 3,…. w przypadku zagnieżdżonych cytatów. Zagnieżdżenie jest zdefiniowane poprzez odziedziczone style |
||||||||||||||||||||||||||||||
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
|
|||||||||||||||||||||||||||||||
BulletedList- Item 1 - Item 2 - Item 2a - Item 2b |
Listy zbiorcze są reprezentowane przy użyciu numeracji paragrafów:ListFormat.ApplyBulletDefault() Mogą być 3 rodzaje list bulletowanych. Są one tylko diff w formacie numeracji pierwszego poziomu. Są to: ‘-’ , ‘+’ lub ‘*’ odpowiednio |
||||||||||||||||||||||||||||||
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
|
|||||||||||||||||||||||||||||||
OrderedList1. Item 1 2. Item 2 1) Item 2a 2) Item 2b |
Zamówione listy są reprezentowane przy użyciu numeracji paragrafów:ListFormat.ApplyNumberDefault() Mogą być 2 znaczniki formatu liczb: ‘.’ i') ‘. Domyślny znacznik to’ .' |
||||||||||||||||||||||||||||||
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
|
Tabele
Aspose.Words pozwala również na tłumaczenie tabel na DOM, jak przedstawiono poniżej:
Markdown funkcja | Aspose.Words | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Table “a |
b<br /> - |
||||||||||||||||||||||||||||||
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
|