العمل مع ميزات Markdown

يناقش هذا الموضوع كيفية تنفيذ ميزات Markdown باستخدام Aspose.Words. Markdown هي طريقة بسيطة لتنسيق نص عادي يمكن تحويله بسهولة إلى HTML. يدعم Aspose.Words ميزات Markdown التالية:

  • العناوين
  • كتلة الاقتباس
  • القواعد الأفقية
  • التأكيد الجريء
  • التركيز المائل

يتبع تنفيذ ميزة Markdown في الغالب مواصفات CommonMark في Aspose.Words API ويتم تمثيل جميع الميزات كأنماط مقابلة أو تنسيق مباشر. مما يعنى

  • يتم تمثيل الخط الغامق والمائل بـ Font.Bold وFont.Italic
  • العناوين هي فقرات ذات عنوان 1 - عنوان 6 أنماط
  • الاقتباسات عبارة عن فقرات تحتوي على كلمة “اقتباس” في اسم النمط
  • HorizontalRule هي فقرة ذات شكل HorizontalRule.

وثيقة Markdown مع التأكيدات

يوضح لك هذا القسم كيفية إنشاء مستند markdown مع التأكيدات كما هو موضح أدناه:

Markdown treats asterisks (*) and underscores (_) as indicators of emphasis.
You can write **bold** or *italic* text. 
You can also write ***BoldItalic*** text.

يمكن استخدام مقتطف الكود التالي لإنتاج مستند markdown المذكور أعلاه.

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.Writeln("Markdown treats asterisks (*) and underscores (_) as indicators of emphasis.");
builder.Write("You can write ");
builder.Font.Bold = true;
builder.Write("bold");
builder.Font.Bold = false;
builder.Write(" or ");
builder.Font.Italic = true;
builder.Write("italic");
builder.Font.Italic = false;
builder.Writeln(" text. ");
builder.Write("You can also write ");
builder.Font.Bold = true;
builder.Font.Italic = true;
builder.Write("BoldItalic");
builder.Font.Bold = false;
builder.Font.Italic = false;
builder.Write("text.");
builder.Document.Save("EmphasesExample.md");

وثيقة Markdown مع العناوين

يوضح لك هذا القسم كيفية إنشاء مستند markdown بالعناوين الموضحة أدناه:

The following produces headings:
# Heading1
## Heading2
### Heading3
#### Heading4
##### Heading5
###### Heading6
# **Bold Heading1**

يمكن استخدام مقتطف الكود التالي لإنتاج مستند markdown المذكور أعلاه.

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// By default Heading styles in Word may have bold and italic formatting.
// If we do not want text to be emphasized, set these properties explicitly to false.
builder.Font.Bold = false;
builder.Font.Italic = false;
builder.Writeln("The following produces headings:");
builder.ParagraphFormat.Style = doc.Styles["Heading 1"];
builder.Writeln("Heading1");
builder.ParagraphFormat.Style = doc.Styles["Heading 2"];
builder.Writeln("Heading2");
builder.ParagraphFormat.Style = doc.Styles["Heading 3"];
builder.Writeln("Heading3");
builder.ParagraphFormat.Style = doc.Styles["Heading 4"];
builder.Writeln("Heading4");
builder.ParagraphFormat.Style = doc.Styles["Heading 5"];
builder.Writeln("Heading5");
builder.ParagraphFormat.Style = doc.Styles["Heading 6"];
builder.Writeln("Heading6");
// Note, emphases are also allowed inside Headings:
builder.Font.Bold = true;
builder.ParagraphFormat.Style = doc.Styles["Heading 1"];
builder.Writeln("Bold Heading1");
doc.Save(dataDir + "HeadingsExample.md");

وثيقة Markdown مع اقتباسات جماعية

يوضح لك هذا القسم كيفية إنشاء مستند markdown مع علامات اقتباس كما هو موضح أدناه:

We support blockquotes in Markdown:
>*Lorem*
>*ipsum*
>The quotes can be of any level and can be nested:
>>>Quote level 3
>>>
>>>>Nested quote level 4
>
>*Back to first level*
>### Headings are allowed inside Quotes
>

يمكن استخدام مقتطف الكود التالي لإنتاج مستند markdown المذكور أعلاه.

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.Writeln("We support blockquotes in Markdown:");
builder.ParagraphFormat.Style = doc.Styles["Quote"];
builder.Writeln("Lorem");
builder.Writeln("ipsum");
builder.ParagraphFormat.Style = doc.Styles["Normal"];
builder.Writeln("The quotes can be of any level and can be nested:");
Style quoteLevel3 = doc.Styles.Add(StyleType.Paragraph, "Quote2");
builder.ParagraphFormat.Style = quoteLevel3;
builder.Writeln("Quote level 3");
Style quoteLevel4 = doc.Styles.Add(StyleType.Paragraph, "Quote3");
builder.ParagraphFormat.Style = quoteLevel4;
builder.Writeln("Nested quote level 4");
builder.ParagraphFormat.Style = doc.Styles["Quote"];
builder.Writeln();
builder.Writeln("Back to first level");
Style quoteLevel1WithHeading = doc.Styles.Add(StyleType.Paragraph, "Quote Heading 3");
builder.ParagraphFormat.Style = quoteLevel1WithHeading;
builder.Write("Headings are allowed inside Quotes");
doc.Save(dataDir + "QuotesExample.md");

مستند Markdown بقاعدة أفقية

يوضح لك هذا القسم كيفية إنشاء مستند markdown باستخدام القاعدة الأفقية كما هو موضح أدناه:

We support Horizontal rules (Thematic breaks) in Markdown:
-----

يمكن استخدام مقتطف الكود التالي لإنتاج مستند markdown المذكور أعلاه.

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
// Initialize document.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.Writeln("Insert a horizontal rule shape into the document.");
builder.InsertHorizontalRule();
dataDir = dataDir + "DocumentBuilder.InsertHorizontalRule_out.doc";
doc.Save(dataDir);

قراءة مستند Markdown

يوضح لك مقتطف الكود التالي كيفية قراءة مستند markdown.

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
// This is Markdown document that was produced in example of UC3.
Document doc = new Document(dataDir + "QuotesExample.md");
// Let's remove Heading formatting from a Quote in the very last paragraph.
Paragraph paragraph = doc.FirstSection.Body.LastParagraph;
paragraph.ParagraphFormat.Style = doc.Styles["Quote"];
doc.Save(dataDir + "QuotesModifiedExample.md");

حدد خيارات حفظ Markdown

يوفر Aspose.Words API فئة MarkdownSaveOptions لتحديد خيارات إضافية أثناء حفظ المستند بتنسيق Markdown.

يوضح مثال التعليمات البرمجية التالي كيفية تحديد خيارات حفظ Markdown المتنوعة.

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
DocumentBuilder builder = new DocumentBuilder();
builder.Writeln("Some text!");
// specify MarkDownSaveOptions
MarkdownSaveOptions saveOptions = (MarkdownSaveOptions)SaveOptions.CreateSaveOptions(SaveFormat.Markdown);
builder.Document.Save(dataDir + "TestDocument.md", saveOptions);

كيفية محاذاة المحتوى داخل الجدول أثناء التصدير إلى Markdown

يوفر Aspose.Words API تعداد TableContentAlignment الذي يحدد اتجاهات المحاذاة لمحاذاة المحتويات في الجداول أثناء التصدير إلى مستند Markdown. يوضح مثال التعليمات البرمجية التالي كيفية محاذاة المحتوى داخل الجدول.

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
DocumentBuilder builder = new DocumentBuilder();
// Create a new table with two cells.
builder.InsertCell();
builder.ParagraphFormat.Alignment = ParagraphAlignment.Right;
builder.Write("Cell1");
builder.InsertCell();
builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;
builder.Write("Cell2");
MarkdownSaveOptions saveOptions = new MarkdownSaveOptions();
// Makes all paragraphs inside table to be aligned to Left.
saveOptions.TableContentAlignment = TableContentAlignment.Left;
builder.Document.Save(dataDir + "left.md", saveOptions);
// Makes all paragraphs inside table to be aligned to Right.
saveOptions.TableContentAlignment = TableContentAlignment.Right;
builder.Document.Save(dataDir + "right.md", saveOptions);
// Makes all paragraphs inside table to be aligned to Center.
saveOptions.TableContentAlignment = TableContentAlignment.Center;
builder.Document.Save(dataDir + "center.md", saveOptions);
// Makes all paragraphs inside table to be aligned automatically.
// The alignment in this case will be taken from the first paragraph in corresponding table column.
saveOptions.TableContentAlignment = TableContentAlignment.Auto;
builder.Document.Save(dataDir + "auto.md", saveOptions);