التحويل Markdown إلى Document Object Model )أ(DOM)

للقراءة والتلاعب وتعديل محتوى وشكل الوثيقة، عليك أن تترجمها إلى Aspose.Words Document Object Model )أ(DOM)

على عكس الوثائق الوردية 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 وقد تطابقت صيغة الرقم في أي من أسلوب القائمة أو صيغة الفقرة.

Inline Blocks

نحن نستخدم 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

نستخدم أسلوب الشخصية مع اسم يبدأ من الكلمة <span notrans="<span notrans=" InlineCode"="">" يليها نقطة اختيارية (.) وعدد من العصي (`) من أجل InlineCode سمة إذا تغيب عدد من العصي، ثمّ واحد ظهري سيُستخدم من قِبل التقصير.

Markdown خاصية Aspose.Words
InlineCode
{1}
Font.StyleName = “InlineCode[.][N]”
Autolink
<scheme://domain.com>
<email@domain.com>
The FieldHyperlink الصف
Link
{1}
{2}
{3}
{4})
The FieldHyperlink الصف
Image
{1}
{2}
{3}
{4})
The Shape الصف

حواجز الحاويات

A document is a sequence of container blocks such as headings, paragraphs, lists, quotes, and others. يمكن تقسيم قطع الحاويات إلى صفين: كتل ليف وحاويات معقدة كتل الليف يمكن أن تحتوي فقط على المحتوى الداخلي. ويمكن أن تحتوي الحاويات المعقدة بدورها على حاويات أخرى، بما في ذلك حاويات ليف.

Leaf Blocks

ويبين الجدول أدناه أمثلة على استخدام Markdown كتل الصف في Aspose.Words:

Markdown خاصية Aspose.Words
HorizontalRule
-----
هذه فقرة بسيطة مع شكل هوريزونتال رول المناظر:
DocumentBuilder.InsertHorizontalRule()
ATX Heading
# H1, ## H2, ### H3…
ParagraphFormat.StyleName = “Heading N”, )١( المرجع نفسه.
ويترجم ذلك إلى أسلوب مبني وينبغي أن يكون بالضبط من النمط المحدد (لا يسمح باختلاط أو فريسات).
وإلا، ستكون مجرد فقرة عادية ذات نمط مقابل
Setext Heading
=== (إذا كان مستوى العنوان 1)،
--- (إذا كان مستوى العنوان 2)
ParagraphFormat.StyleName = “SetextHeading[some suffix]”, على أساس “Heading N” أسلوب.
إذا (ن = 2)، ثم “Heading 2” سوف تستخدم، خلاف ذلك “Heading 1”.
أي خنق مسموح به، لكن Aspose.Words ويستخدم المستورد رقمي " ١ " و " ٢ " على التوالي
Indented Code ParagraphFormat.StyleName = “IndentedCode[some suffix]”
Fenced Code
``` java
if ()
then
else
```
ParagraphFormat.StyleName = “FencedCode[.][info string]”
The [.] و [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 أنواع من القوائم وهي تنتشر فقط في شكل رقمي من المستوى الأول. وهي: ‘-’, ‘+’ أو ‘*’ على التوالي
OrderedList
1. Item 1
2. Item 2
1) Item 2a
2) Item 2b
وتُمثَّل القوائم النظامية باستخدام ترقيم الفقرة:
ListFormat.ApplyNumberDefault()
There can be 2 number format markers: ‘.’ and ‘’’’’’. The default marker is ‘.’

الجداول

Aspose.Words ويسمح أيضا بترجمة الجداول إلى DOM, على النحو المبين أدناه:

Markdown خاصية Aspose.Words
Table
(أ)
(ب)<br />-

انظر أيضا