Trabalhando com recursos Markdown
Este tópico discute como implementar recursos Markdown usando Aspose.Words. Markdown é uma maneira simples de formatar texto simples que pode ser facilmente convertido em HTML. Aspose.Words oferece suporte aos seguintes recursos Markdown:
- Títulos
- Citações em bloco
- Regras horizontais
- Ênfase ousada
- Ênfase em itálico
A implementação do recurso Markdown segue principalmente a especificação CommonMark
em Aspose.Words API e todos os recursos são representados como estilos correspondentes ou formatação direta. O que significa que
- Negrito e Itálico são representados como Font.bold e Font.Italic
- Os títulos são parágrafos com estilos Título 1 - Título 6
- Aspas são parágrafos com “Citação” no nome do estilo
- HorizontalRule é um parágrafo com formato HorizontalRule.
Documento Markdown com ênfases
Esta seção demonstra como produzir um documento markdown com as ênfases fornecidas abaixo:
Markdown treats asterisks (*) and underscores (_) as indicators of emphasis.
You can write **bold** or *italic* text.
You can also write ***BoldItalic*** text.
O trecho de código a seguir pode ser usado para produzir o documento markdown fornecido acima.
# 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") |
Documento Markdown com títulos
Esta seção demonstra como produzir um documento markdown com os títulos fornecidos abaixo:
The following produces headings:
# Heading1
## Heading2
### Heading3
#### Heading4
##### Heading5
###### Heading6
# **Bold Heading1**
O trecho de código a seguir pode ser usado para produzir o documento markdown fornecido acima.
# 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") |
Documento Markdown com cotações em bloco
Esta seção demonstra como produzir um documento markdown com aspas em bloco, conforme mostrado abaixo:
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
>
O trecho de código a seguir pode ser usado para produzir o documento markdown fornecido acima.
# 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") |
Documento Markdown com regra horizontal
Esta seção demonstra como produzir um documento markdown com regra horizontal conforme mostrado abaixo:
We support Horizontal rules (Thematic breaks) in Markdown:
-----
O trecho de código a seguir pode ser usado para produzir o documento markdown fornecido acima.
# 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") |
Lendo um documento Markdown
O trecho de código a seguir mostra como ler um documento 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") |
Especifique opções de salvamento Markdown
Aspose.Words API fornece classe MarkdownSaveOptions para especificar opções adicionais ao salvar um documento no formato Markdown.
O exemplo de código a seguir demonstrou como especificar várias opções de salvamento 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") |
Como alinhar o conteúdo dentro da tabela ao exportar para Markdown
Aspose.Words API fornece enumeração TableContentAlignment que define direções de alinhamento para alinhar o conteúdo das tabelas durante a exportação para o documento Markdown. O exemplo de código a seguir demonstra como alinhar o conteúdo dentro da tabela.
# 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) |