Работа с функциями Markdown
В этом разделе обсуждается, как реализовать функции Markdown с помощью Aspose.Words. Markdown - это простой способ форматирования обычного текста, который можно легко преобразовать в HTML. Aspose.Words поддерживает следующие функции Markdown:
- Заголовки
- Цитаты из блоков
- Горизонтальные правила
- Жирный акцент
- Выделено курсивом
Реализация функции Markdown в основном соответствует спецификации CommonMark
в Aspose.Words API, и все функции представлены в виде соответствующих стилей или прямого форматирования. Это означает, что
- Жирный шрифт и курсив представлены как Font.bold и Font.Italic.
- Заголовки - это абзацы со стилями Heading 1 - Heading 6.
- Кавычки - это абзацы с надписью “Quote” в названии стиля.
- 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) |