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

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

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

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

  • يتم تمثيل الغامق والمائل على أنهما Font.Bold و Font.Italic.
  • العناوين هي فقرات ذات أنماط Heading 1 - Heading 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-Java
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.getFont().setBold(true);
builder.write("bold");
builder.getFont().setBold(false);
builder.write(" or ");
builder.getFont().setItalic(true);
builder.write("italic");
builder.getFont().setItalic(false);
builder.writeln(" text. ");
builder.write("You can also write ");
builder.getFont().setBold(true);
builder.getFont().setItalic(true);
builder.write("BoldItalic");
builder.getFont().setBold(false);
builder.getFont().setItalic(false);
builder.write("text.");
builder.getDocument().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-Java
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.getFont().setBold(false);
builder.getFont().setItalic(false);
builder.writeln("The following produces headings:");
builder.getParagraphFormat().setStyle(doc.getStyles().get("Heading 1"));
builder.writeln("Heading1");
builder.getParagraphFormat().setStyle(doc.getStyles().get("Heading 2"));
builder.writeln("Heading2");
builder.getParagraphFormat().setStyle(doc.getStyles().get("Heading 3"));
builder.writeln("Heading3");
builder.getParagraphFormat().setStyle(doc.getStyles().get("Heading 4"));
builder.writeln("Heading4");
builder.getParagraphFormat().setStyle(doc.getStyles().get("Heading 5"));
builder.writeln("Heading5");
builder.getParagraphFormat().setStyle(doc.getStyles().get("Heading 6"));
builder.writeln("Heading6");
// Note, emphases are also allowed inside Headings:
builder.getFont().setBold(true);
builder.getParagraphFormat().setStyle(doc.getStyles().get("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-Java
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.writeln("We support blockquotes in Markdown:");
builder.getParagraphFormat().setStyle(doc.getStyles().get("Quote"));
builder.writeln("Lorem");
builder.writeln("ipsum");
builder.getParagraphFormat().setStyle(doc.getStyles().get("Normal"));
builder.writeln("The quotes can be of any level and can be nested:");
Style quoteLevel3 = doc.getStyles().add(StyleType.PARAGRAPH, "Quote2");
builder.getParagraphFormat().setStyle(quoteLevel3);
builder.writeln("Quote level 3");
Style quoteLevel4 = doc.getStyles().add(StyleType.PARAGRAPH, "Quote3");
builder.getParagraphFormat().setStyle(quoteLevel4);
builder.writeln("Nested quote level 4");
builder.getParagraphFormat().setStyle(doc.getStyles().get("Quote"));
builder.writeln();
builder.writeln("Back to first level");
Style quoteLevel1WithHeading = doc.getStyles().add(StyleType.PARAGRAPH, "Quote Heading 3");
builder.getParagraphFormat().setStyle(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-Java
DocumentBuilder builder = new DocumentBuilder(new Document());
builder.writeln("We support Horizontal rules (Thematic breaks) in Markdown:");
builder.insertHorizontalRule();
builder.getDocument().save(dataDir + "HorizontalRuleExample.md");

قراءة Markdown وثيقة

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

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
// This is Markdown document that was produced in example of
// MarkdownDocumentWithBlockQuotes.
Document doc = new Document(dataDir + "QuotesExample.md");
// Let's remove Heading formatting from a Quote in the very last paragraph.
Paragraph paragraph = doc.getFirstSection().getBody().getLastParagraph();
paragraph.getParagraphFormat().setStyle(doc.getStyles().get("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-Java
DocumentBuilder builder = new DocumentBuilder();
builder.writeln("Some text!");
// specify MarkDownSaveOptions
MarkdownSaveOptions saveOptions = (MarkdownSaveOptions) SaveOptions.createSaveOptions(SaveFormat.MARKDOWN);
builder.getDocument().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-Java
DocumentBuilder builder = new DocumentBuilder();
// Create a new table with two cells.
builder.insertCell();
builder.getParagraphFormat().setAlignment(ParagraphAlignment.RIGHT);
builder.write("Cell1");
builder.insertCell();
builder.getParagraphFormat().setAlignment(ParagraphAlignment.CENTER);
builder.write("Cell2");
MarkdownSaveOptions saveOptions = new MarkdownSaveOptions();
// Makes all paragraphs inside table to be aligned to Left.
saveOptions.setTableContentAlignment(TableContentAlignment.LEFT);
builder.getDocument().save(dataDir + "left.md", saveOptions);
// Makes all paragraphs inside table to be aligned to Right.
saveOptions.setTableContentAlignment(TableContentAlignment.RIGHT);
builder.getDocument().save(dataDir + "right.md", saveOptions);
// Makes all paragraphs inside table to be aligned to Center.
saveOptions.setTableContentAlignment(TableContentAlignment.CENTER);
builder.getDocument().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.setTableContentAlignment(TableContentAlignment.AUTO);
builder.getDocument().save(dataDir + "auto.md", saveOptions);