Travailler avec Markdown Fonctionnalités

Cette rubrique explique comment implémenter Markdown fonctionnalités à l’aide de Aspose.Words. Markdown est un moyen simple de formater du texte brut qui peut facilement être converti en HTML. Aspose.Words prend en charge les fonctionnalités Markdown suivantes:

  • Rubriques
  • Citations de Bloc
  • Règles horizontales
  • Accent audacieux
  • Accent italique

L’implémentation des fonctionnalités Markdown suit principalement la spécification CommonMark dans Aspose.Words API et toutes les fonctionnalités sont représentées sous forme de styles correspondants ou de formatage direct. Ce qui signifie que

  • Les caractères gras et italiques sont représentés par Font.Bold et Font.Italic.
  • Les titres sont des paragraphes avec des styles Heading 1 - Heading 6.
  • Les guillemets sont des paragraphes avec “Citation” dans le nom du style.
  • HorizontalRule est un paragraphe avec une forme HorizontalRule.

Markdown Document avec Emphases

Cette section vous montre comment produire un document markdown avec des accents comme indiqué ci-dessous:

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

L’extrait de code suivant peut être utilisé pour produire le document markdown donné ci-dessus.

// 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 Document avec En-têtes

Cette section vous montre comment produire un document markdown avec des en-têtes comme indiqué ci-dessous:

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

L’extrait de code suivant peut être utilisé pour produire le document markdown donné ci-dessus.

// 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 Document avec des guillemets bloc

Cette section vous montre comment produire un document markdown avec des guillemets bloc comme indiqué ci-dessous:

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
>

L’extrait de code suivant peut être utilisé pour produire le document markdown donné ci-dessus.

// 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 Document avec Règle horizontale

Cette section vous montre comment produire un document markdown avec une règle horizontale comme indiqué ci-dessous:

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

L’extrait de code suivant peut être utilisé pour produire le document markdown donné ci-dessus.

// 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");

Lecture d’un document Markdown

L’extrait de code suivant vous montre comment lire un document 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");

Spécifiez Markdown Options de sauvegarde

Aspose.Words API fournit la classe MarkdownSaveOptions pour spécifier des options supplémentaires lors de l’enregistrement d’un document au format Markdown.

L’exemple de code suivant montre comment spécifier diverses options d’enregistrement 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);

Comment aligner le contenu à l’intérieur du Tableau lors de l’exportation vers Markdown

Aspose.Words API fournit une énumération TableContentAlignment qui définit les directions d’alignement pour aligner le contenu des tableaux lors de l’exportation dans le document Markdown. L’exemple de code suivant montre comment aligner le contenu à l’intérieur de la table.

// 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);