תרגם Markdown לתעד מודל אובייקט (DOM)

כדי לקרוא, לתפעל ולשנות באופן תכנותי את התוכן והעיצוב של מסמך, עליך לתרגם אותו למודל אובייקט המסמך Aspose.Words (DOM).

בניגוד למסמכים Word, Markdown אינו תואם את DOM המתואר ב Aspose.Words מודל אובייקט מסמך (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 או Strikethrough תכונות מוטבעות markdown.

Markdown תכונה 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, ואחריו נקודה אופציונלית (.) ומספר נקודות גב (`) לתכונה InlineCode. אם מספר נקודות גב מפספסות, אז נקודת גב אחת תשמש כברירת מחדל.

Markdown תכונה Aspose.Words
InlineCode
**inline code**
get_Font()->set_StyleName(u"InlineCode[.][N]")
Autolink
<scheme://domain.com>
<email@domain.com>
הכיתה FieldHyperlink.
Link
[link text](url)
[link text](<url>"title")
[link text](url 'title')
[link text](url (title))
הכיתה FieldHyperlink.
Image
![](url)
![alt text](<url>"title")
![alt text](url ‘title’)
![alt text](url (title))
הכיתה Shape.

בלוקים מיכל

מסמך הוא רצף של בלוקים מיכל כגון כותרות, פסקאות, רשימות, ציטוטים, ואחרים. בלוקים מיכל ניתן לחלק 2 כיתות: בלוקים עלה מכולות מורכבות. גושי עלים יכולים להכיל רק תוכן מוטבע. מיכלים מורכבים, בתורם, יכולים להכיל גושי מיכל אחרים, כולל גושי עלים.

בלוקים עלים

הטבלה שלהלן מציגה דוגמאות לשימוש Markdown בלוקי עלים ב Aspose.Words:

Markdown תכונה Aspose.Words
HorizontalRule
-----
זוהי פסקה פשוטה עם צורה מקבילה HorizontalRule:
DocumentBuilder::InsertHorizontalRule()
ATX Heading
# H1, ## H2, ### H3…
get_ParagraphFormat()->set_StyleName(u"Heading N"), איפה (1<= נ <= 9).
זה מתורגם לסגנון מובנה וצריך להיות בדיוק מהתבנית שצוינה (אין סיומות או קידומות מותרות).
אחרת, זה יהיה רק פסקה רגילה עם סגנון המתאים.
Setext Heading
=== (if Heading level 1),
--- (if Heading level 2)
get_ParagraphFormat->set_StyleName(u"SetextHeading[some suffix]"), מבוסס על סגנון' כותרת נ'.
אם (נ > = 2), אז' Heading 2 ‘ישמש, אחרת’Heading 1’.
כל תוספת מותרת, אבל Aspose.Words היבואן משתמש במספרים “1” ו “2” בהתאמה.
Indented Code get_ParagraphFormat->set_StyleName(u"IndentedCode[some suffix]")
Fenced Code
``` c#
if ()
then
else
```
get_ParagraphFormat()->set_StyleName(u"FencedCode[.][info string]")
[.] ו [info string] הם אופציונליים.

מכולות מורכבות

הטבלה שלהלן מציגה דוגמאות לשימוש Markdown מכולות מורכבות ב Aspose.Words:

Markdown תכונה Aspose.Words
Quote
> quote,
>> nested quote
get_ParagraphFormat()->set_StyleName(u"Quote[some suffix]")
הסיומת בשם הסגנון היא אופציונלית, אך Aspose.Words היבואן משתמש במספרים שהוזמנו 1, 2, 3, …. במקרה של ציטוטים מקוננים.
הקן מוגדר באמצעות הסגנונות המורשת.
BulletedList
- Item 1
- Item 2
- Item 2a
- Item 2b
רשימות עם תבליטים מיוצגות באמצעות מספור פסקאות:
get_ListFormat()->ApplyBulletDefault()
יכולים להיות 3 סוגים של רשימות תבליטים. הם נבדלים רק בפורמט מספור ברמה הראשונה. אלה הם: ‘-’, ‘+’ או ‘*’ בהתאמה.
OrderedList
1. Item 1
2. Item 2
1) Item 2a
2) Item 2b
רשימות מסודרות מיוצגות באמצעות מספור פסקאות:
get_ListFormat()->ApplyNumberDefault()
יכולים להיות 2 סמני פורמט מספרים: ‘.’ ו ‘)’. סמן ברירת המחדל הוא ‘.’.

שולחנות

Aspose.Words מאפשר גם לתרגם טבלאות ל DOM, כפי שמוצג להלן:

Markdown תכונה Aspose.Words
Table
a|b
-|-
c|d
Table, Row ו Cell כיתות.

ראה גם