العمل مع ميزات 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-Python-via-.NET
doc = aw.Document()
builder = aw.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(docs_base.artifacts_dir + "WorkingWithMarkdown.emphases.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-Python-via-.NET
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
# By default Heading styles in Word may have bold and italic formatting.
# If we do not want the 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.paragraph_format.style = doc.styles.get_by_name("Heading 1")
builder.writeln("Heading1")
builder.paragraph_format.style = doc.styles.get_by_name("Heading 2")
builder.writeln("Heading2")
builder.paragraph_format.style = doc.styles.get_by_name("Heading 3")
builder.writeln("Heading3")
builder.paragraph_format.style = doc.styles.get_by_name("Heading 4")
builder.writeln("Heading4")
builder.paragraph_format.style = doc.styles.get_by_name("Heading 5")
builder.writeln("Heading5")
builder.paragraph_format.style = doc.styles.get_by_name("Heading 6")
builder.writeln("Heading6")
# Note that the emphases are also allowed inside Headings.
builder.font.bold = True
builder.paragraph_format.style = doc.styles.get_by_name("Heading 1")
builder.writeln("Bold Heading1")
doc.save(docs_base.artifacts_dir + "WorkingWithMarkdown.headings.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-Python-via-.NET
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
builder.writeln("We support blockquotes in Markdown:")
builder.paragraph_format.style = doc.styles.get_by_name("Quote")
builder.writeln("Lorem")
builder.writeln("ipsum")
builder.paragraph_format.style = doc.styles.get_by_name("Normal")
builder.writeln("The quotes can be of any level and can be nested:")
quoteLevel3 = doc.styles.add(aw.StyleType.PARAGRAPH, "Quote2")
builder.paragraph_format.style = quoteLevel3
builder.writeln("Quote level 3")
quoteLevel4 = doc.styles.add(aw.StyleType.PARAGRAPH, "Quote3")
builder.paragraph_format.style = quoteLevel4
builder.writeln("Nested quote level 4")
builder.paragraph_format.style = doc.styles.get_by_name("Quote")
builder.writeln()
builder.writeln("Back to first level")
quoteLevel1WithHeading = doc.styles.add(aw.StyleType.PARAGRAPH, "Quote Heading 3")
builder.paragraph_format.style = quoteLevel1WithHeading
builder.write("Headings are allowed inside Quotes")
doc.save(docs_base.artifacts_dir + "WorkingWithMarkdown.block_quotes.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-Python-via-.NET
builder = aw.DocumentBuilder()
builder.writeln("We support Horizontal rules (Thematic breaks) in Markdown:")
builder.insert_horizontal_rule()
builder.document.save(docs_base.artifacts_dir + "WorkingWithMarkdown.horizontal_rule_example.md")

قراءة مستند Markdown

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

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document(docs_base.my_dir + "Quotes.md")
# Let's remove Heading formatting from a Quote in the very last paragraph.
paragraph = doc.first_section.body.last_paragraph
paragraph.paragraph_format.style = doc.styles.get_by_name("Quote")
doc.save(docs_base.artifacts_dir + "WorkingWithMarkdown.read_markdown_document.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-Python-via-.NET
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
builder.writeln("Some text!")
doc.save(docs_base.artifacts_dir + "BaseConversions.docx_to_markdown.md")

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

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

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
builder.insert_cell()
builder.paragraph_format.alignment = aw.ParagraphAlignment.RIGHT
builder.write("Cell1")
builder.insert_cell()
builder.paragraph_format.alignment = aw.ParagraphAlignment.CENTER
builder.write("Cell2")
# Makes all paragraphs inside the table to be aligned.
saveOptions = aw.saving.MarkdownSaveOptions()
saveOptions.table_content_alignment = aw.saving.TableContentAlignment.LEFT
doc.save(docs_base.artifacts_dir + "WorkingWithMarkdownSaveOptions.left_table_content_alignment.md", saveOptions)
saveOptions.table_content_alignment = aw.saving.TableContentAlignment.RIGHT
doc.save(docs_base.artifacts_dir + "WorkingWithMarkdownSaveOptions.right_table_content_alignment.md", saveOptions)
saveOptions.table_content_alignment = aw.saving.TableContentAlignment.CENTER
doc.save(docs_base.artifacts_dir + "WorkingWithMarkdownSaveOptions.center_table_content_alignment.md", saveOptions)
# The alignment in this case will be taken from the first paragraph in corresponding table column.
saveOptions.table_content_alignment = aw.saving.TableContentAlignment.AUTO
doc.save(docs_base.artifacts_dir + "WorkingWithMarkdownSaveOptions.auto_table_content_alignment.md", saveOptions)