Переклад Markdown до Document Object Model (Українська)DOMй
Щоб программатично читати, маніпулювати і змінювати зміст і форматування документа, потрібно перевести його до Aspose.Words Document Object Model (Українська)DOM).
На відміну від документів Word, Markdown не відповідає DOM описано в Aspose.Words Document Object Model (DOM) стаття. Однак Aspose.Words забезпечує власний механізм перетягування Markdown документи DOM і назад, так що ми можемо успішно працювати з елементами, такими як форматування тексту, таблиці, заголовки та інші.
Ця стаття пояснює, як різні markdown функції можна перекласти в Aspose.Words DOM і назад Markdown Формат.
Складність перекладу Markdown до DOM до Markdown
Основна складність цього механізму не тільки для перекладу Markdown до DOM, але також зробити зворотну трансформацію – зберегти документ назад до Markdown формат з мінімальною втратою. Є елементи, такі як багаторівневі котирування, для яких зворотна трансформація не тривіально.
Ми можемо самі зателефонувати одержувачу і узгодити зручний час і місце вручення квітів. Markdown документ, але також створити власний документ у Markdown формат з оригінальною структурою з нуля. Щоб створити різні елементи, потрібно використовувати стилі з певними назвами відповідно до певних правил, описаних пізніше в цій статті. Такі стилі можуть бути створені тематично.
Переклад Принципи
Ми використовуємо Font форматування вбудованих блоків. Коли немає прямого листування Markdown в наявності Aspose.Words DOM, Ми використовуємо стиль персонажа з назвою, яка починається з деяких спеціальних слів.
Для контейнерних блоків ми використовуємо стиль спадкування, щоб викинути Markdown особливості. У цьому випадку, навіть якщо немає ніяких непристойних функцій, ми також використовуємо абзац стилі з назвою, яка починається з деяких спеціальних слів.
Булетні та замовлені списки є контейнерними блоками в Markdown й Їх гніздування представлена в DOM так само, як і для всіх інших контейнерних блоків з використанням стильного спадкування. Тим не менш, додатково, списки в DOM відповідати формату номеру в стилі список або форматування абзаців.
Внутрішні блоки
Ми використовуємо Font форматування при перекладі Bold, Italic або ~ ~ Просування ~ ~ inline markdown особливості.
Markdown Головна | Aspose.Words |
---|---|
Bold{1} |
Font.Bold = true |
Italic*italic text* |
Font.Italic = true |
Strikethrough~Strikethrough text~ |
Font.StrikeThrough = true |
Ми використовуємо стиль персонажа з назвою, яка починається з слова InlineCode
, > далі за бажанням (.)
і ряд задніх (`)
для InlineCode
функція. Якщо пропущено ряд спинок, то один задняк буде використовуватися за замовчуванням.
Markdown Головна | Aspose.Words |
---|---|
InlineCode{1} |
Font.StyleName = “InlineCode[.][N]” |
Autolink<scheme://domain.com> <email@domain.com> |
Про нас FieldHyperlink клас |
Link{1} {2} {3} {4}) |
Про нас FieldHyperlink клас |
Image{1} {2} {3} {4}) |
Про нас Shape клас |
Блоки контейнерів
Документ є послідовністю контейнерних блоків, таких як заголовки, абзаци, списки, котирування та інші. Контейнерні блоки можна розділити на 2 класи: Листові блоки та складні контейнери. Блоки Leaf можуть містити лише інлайн. Комплексні контейнери, в свою чергу, можуть містити інші контейнерні блоки, в тому числі блоки Leaf.
Листові блоки
Таблиця нижче показує приклади використання Markdown Листові блоки в Aspose.Words:
Markdown Головна | Aspose.Words |
---|---|
HorizontalRule----- |
Це простий абзац з відповідною формою HorizontalRule:DocumentBuilder.InsertHorizontalRule() |
ATX Heading# H1, ## H2, ### H3… |
ParagraphFormat.StyleName = "Heading N" , де (1<= N <=9).Це перекладається в вбудований стиль і має бути саме з зазначеного шаблону (не суфікси або префікси допускаються). В іншому випадку це буде просто звичайний абзац з відповідним стилем |
Setext Heading=== (якщо рівень заголовка 1),--- (якщо рівень заголовка 2) |
ParagraphFormat.StyleName = “SetextHeading[some suffix]” , на основі ‘Heading N’ стиль.Якщо (N >= 2), то ‘Heading 2’ буде використовуватися, інакше ‘Heading 1’й Допускається будь-який suffix, але Aspose.Words імпортер використовує номери “1” та “2” відповідно |
Indented Code | ParagraphFormat.StyleName = “IndentedCode[some suffix]” |
Fenced Code
|
ParagraphFormat.StyleName = “FencedCode[.][info string]” Про нас [.] і [info string] необов’язково |
Комплексні контейнери
Таблиця нижче показує приклади використання Markdown Комплексні контейнери в Aspose.Words:
Markdown Головна | Aspose.Words |
---|---|
Quote> quote, >> nested quote |
ParagraphFormat.StyleName = “Quote[some suffix]” Суфікс в назві стилю необов’язково, але Aspose.Words імпортер використовує замовлені номери 1, 2, 3, …. в разі необрізних котирування. Ведуться веслування через спадкові стилі |
BulletedList- Item 1 - Item 2 - Item 2a - Item 2b |
Списки буклетів представлені за допомогою абзацу:ListFormat.ApplyBulletDefault() Ви можете бути 3 види бюлетенів. Вони розрізняються лише в форматі нумерації першого рівня. Це: ‘-’ , ‘+’ або ‘*’ відповідно |
OrderedList1. Item 1 2. Item 2 1) Item 2a 2) Item 2b |
Замовлені списки представлені за допомогою абзаців:ListFormat.ApplyNumberDefault() Відмітки формату 2: “.” та “)”. Маркувальник за замовчуванням “.” |
Столи
Aspose.Words також дозволяє перевести таблиці в DOM, як показано нижче:
Markdown Головна | Aspose.Words |
---|---|
Table й |
б<br /> до |