Convertir HTML en Markdown en Java
Markdown (MD) est un langage de balisage simple qui utilise une syntaxe de formatage de texte brut. Il est couramment utilisé pour créer de la documentation et des fichiers readme en raison de son format facile à lire et à écrire. Sa conception lui permet d’être facilement converti dans de nombreux formats de sortie, mais à l’origine, il a été créé pour convertir uniquement en HTML. Aspose.HTML for Java vous permet de faire la conversion inverse et vous pouvez facilement convertir HTML en Markdown en Java.
Dans cet article, vous trouverez des informations sur la façon de convertir HTML en Markdown en utilisant les méthodes convertHTML() de la classe
Converter, et sur la façon d’appliquer les
MarkdownSaveOptions.
De HTML à Markdown en quelques lignes de code Java
Vous pouvez convertir HTML au format Markdown en utilisant Java et d’autres langages de programmation Java. Les méthodes statiques de la classe Converter sont principalement utilisées comme moyen le plus simple de convertir un code HTML dans différents formats. L’exemple suivant montre comment convertir HTML en Markdown littéralement avec quelques lignes de code !
1// Convert HTML to Markdown in Java
2
3// Prepare HTML code and save it to a file
4String code = "<h1>Convert HTML to Markdown Using Java</h1>" +
5 "<h2>How to Convert HTML to MD in Java</h2>" +
6 "<p>The Aspose.HTML for Java library allows you to convert HTML to Markdown.</p>";
7FileHelper.writeAllText("conversion.html", code);
8
9// Call ConvertHTML() method to convert HTML to Markdown
10Converter.convertHTML("conversion.html", new MarkdownSaveOptions(), "conversion.md");Options d’enregistrement – Classe MarkdownSaveOptions
La classe
MarkdownSaveOptions possède un certain nombre de propriétés qui vous permettent de contrôler le processus de conversion. L’option la plus importante est Features. Cette option vous permet d’activer/désactiver la conversion d’un élément particulier.
| Method | Description |
|---|---|
| getDefault() | This method returns a set of options that are compatible with default Markdown documentation. |
| setFeatures(value) | A flag set that controls which HTML elements are converted to Markdown. |
| setFormatter(value) | This method gets or sets the Markdown formatting style. |
| getGit() | This method returns a set of options that are compatible with GitLab Flavored Markdown. |
| getResourceHandlingOptions() | Gets a ResourceHandlingOptions object which is used for configuration of resources handling. |
Pour en savoir plus sur MarkdownSaveOptions, veuillez lire l’article Convertisseurs à réglage fin.
Dans l’article Syntaxe Markdown, vous trouverez des informations sur les principaux éléments Markdown, des détails et des exemples de la syntaxe Markdown.
Convertir HTML en Markdown en utilisant MarkdownSaveOptions
Méthode `setFeatures()
La propriété MarkdownSaveOptions.Features dans Aspose.HTML for Java permet un contrôle fin de la conversion Markdown en activant ou désactivant des fonctionnalités spécifiques par une combinaison bit à bit de drapeaux de l’enum MarkdownFeatures. Par exemple,
MarkdownFeatures.Linkpermet de générer ou de conserver des liens hypertextes dans le texte Markdown.MarkdownFeatures.AutomaticParagraphconvertit les éléments HTML<p>en paragraphes Markdown.
Pour convertir HTML en Markdown avec MarkdownSaveOptions.Features, vous devez suivre quelques étapes :
- Un scénario courant consiste à charger un fichier HTML en utilisant l’un des constructeurs
HTMLDocument()de la classe HTMLDocument. Mais dans cet exemple, nous créons une source HTML à partir de zéro en préparant du code HTML et en l’enregistrant dans un fichier. - Créez un nouvel objet
MarkdownSaveOptions. Utilisez
setFeatures()pour activer la génération d’hyperliens et le formatage automatique des paragraphes pour la conversion HTML vers Markdown. - Utilisez la méthode
convertHTML(sourcePath, options, outputPath)de la classe Converter pour enregistrer du HTML sous forme de fichier Markdown.
L’exemple suivant montre comment traiter uniquement les liens et les paragraphes, les autres éléments HTML restant inchangés :
1// Convert selective HTML tags to Markdown using Java
2
3// Prepare HTML code and save it to the file
4String code = "<h1>Header 1</h1>" +
5 "<h2>Header 2</h2>" +
6 "<p>Hello, World!!</p>" +
7 "<a href='aspose.com'>aspose</a>";
8FileHelper.writeAllText("options.html", code);
9
10// Create an instance of SaveOptions and set up the rule:
11// - only <a> and <p> elements will be converted to Markdown
12MarkdownSaveOptions options = new MarkdownSaveOptions();
13options.setFeatures(MarkdownFeatures.Link | MarkdownFeatures.AutomaticParagraph);
14
15// Call the convertHTML() method to convert HTML to Markdown
16Converter.convertHTML("options.html", options, "options-output.md");Dans le code Java ci-dessus, l’objet options est créé, et deux options sont définies en utilisant la méthode setFeatures(). L’option Link spécifie que les éléments HTML <a> seront convertis en Markdown, tandis que l’option AutomaticParagraph détermine que les éléments HTML <p> seront convertis en Markdown. Les autres éléments du document HTML ne seront pas convertis.
Méthode getGit()
GitHub Flavored Markdown est la version GitHub.com de la syntaxe Markdown qui fournit un ensemble supplémentaire de fonctionnalités utiles qui facilitent le travail avec le contenu sur GitHub.com. Il s’agit d’une extension de la syntaxe Markdown standard qui ajoute de nombreuses fonctionnalités, notamment la mise en évidence du code, les listes de tâches, les tableaux, etc.
Pour convertir HTML en Markdown, vous pouvez définir votre propre ensemble de règles ou utiliser les modèles prédéfinis. Par exemple, vous pouvez utiliser le modèle basé sur la syntaxe GitLab Flavored Markdown :
1// Convert HTML to Markdown in Java using Git syntax
2
3// Prepare HTML code and save it to a file
4String code = "<h1>Header 1</h1>" +
5 "<h2>Header 2</h2>" +
6 "<p>Hello, World!!</p>";
7FileHelper.writeAllText("document.html", code);
8
9// Call convertHTML() method to convert HTML to Markdown
10Converter.convertHTML("document.html", MarkdownSaveOptions.getGit(), "output-git.md");Dans l’exemple Java ci-dessus, la méthode convertHTML(sourcePath, options, outputPath) effectue la conversion. Elle prend trois arguments : sourcePath, options, et outputPath. Le second argument est une instance de MarkdownSaveOptions. Nous utilisons la méthode getGit() dans MarkdownSaveOptions qui retourne une instance options avec Git activé. Activer Git dans MarkdownSaveOptions signifie que le fichier de sortie Markdown généré contiendra un Markdown à saveur Git, une syntaxe Markdown qui inclut des fonctionnalités spécifiques à Git.
Limitation
Markdown est une syntaxe légère et facile à utiliser. Tous les éléments HTML ne peuvent pas être convertis en Markdown car il n’y a pas d’équivalent dans la syntaxe Markdown. Les éléments tels que STYLE, SCRIPT, LINK, EMBED, etc. ne seront pas pris en compte lors de la conversion.
HTML en ligne
Markdown vous permet de spécifier le code HTML pur, qui sera rendu tel quel. La fonctionnalité qui permet ce comportement est appelée “Inline HTML”. Pour l’utiliser, vous devez placer l’un des éléments spécifiques pris en charge par cette fonctionnalité au début de la nouvelle ligne. Ou vous pouvez marquer un de ces éléments comme “HTML en ligne”, en ajoutant l’attribut markdown avec la valeur inline à cet élément. Voici un petit exemple qui montre comment utiliser cet attribut :
1// Convert inline HTML elements to Markdown using Java
2
3// Prepare HTML code and save it to a file
4String code = "text<div markdown='inline'><code>text</code></div>";
5FileHelper.writeAllText("inline.html", code);
6
7// Call convertHTML() method to convert HTML to Markdown
8Converter.convertHTML("inline.html", new MarkdownSaveOptions(), "inline-html.md");
9
10// Output file will contain: text\r\n<div markdown="inline"><code>text</code></div>Comme vous pouvez le voir, le contenu de l’élément <div> n’est pas converti en Markdown et est traité tel quel par le processeur Markdown. La liste des éléments qui supportent cette fonctionnalité est différente pour chaque processeur Markdown.
La spécification originale de Markdown prend en charge ces balises : BLOCKQUOTE, H1, H2, H3, H4, H5, H6, P, PRE, OL, UL, DL, DIV, INS, DEL, IFRAME, FIELDSET, NOSCRIPT, FORM, MATH.
Le GitLab Flavored Markdown étend cette liste avec les balises suivantes : ARTICLE, FOOTER, NAV, ASIDE, HEADER, ADDRESS, HR, DD, FIGURE, FIGCAPTION, ABBR, VIDEO, AUDIO, OUTPUT, CANVAS, SECTION, DETAILS, HGROUP, SUMMARY.
Caractéristiques de l’emboîtement
Bien que Markdown prenne en charge un large éventail de fonctionnalités, toutes ne peuvent pas être combinées. Par exemple, les éléments de liste à l’intérieur d’éléments de tableau ne seront pas convertis. Le tableau ci-dessous indique les fonctionnalités qui peuvent être imbriquées. Chaque fonctionnalité est un membre de l’énumération MarkdownFeatures.
| Parent feature | Features which can be processed inside |
|---|---|
| Header | Link, Emphasis, Strong, InlineCode, Image, Strikethrough, Video |
| Blockquote | Any |
| List | AutomaticParagraph, Link, Emphasis, Strong, InlineCode, Image, LineBreak, Strikethrough, Video, TaskList, List |
| Link | Emphasis, Strong, InlineCode, Image, LineBreak, Strikethrough |
| AutomaticParagraph | Link, Emphasis, Strong, InlineCode, Image, LineBreak, Strikethrough |
| Strikethrough | Link, Emphasis, Strong, InlineCode, Image, LineBreak |
| Table | Video, Strikethrough, Image, InlineCode, Emphasis, Strong, Link |
| Emphasis | Link, InlineCode, Image, LineBreak, Strikethrough, Video |
| Strong | Link, InlineCode, Image, LineBreak, Strikethrough, Video |
Conclusion
Aspose.HTML for Java fournit des outils puissants pour la conversion HTML-Markdown, en s’appuyant sur la méthode convertHTML() et les options personnalisables MarkdownSaveOptions.
La classe MarkdownSaveOptions permet aux développeurs de contrôler finement le processus de conversion. Elle comprend des fonctionnalités permettant d’activer ou de désactiver des éléments HTML spécifiques, de définir des styles de formatage et de gérer efficacement les ressources. Pour les scénarios avancés, des options prédéfinies telles que GitHub Flavored Markdown (GFM) sont disponibles, permettant une intégration transparente avec les plateformes qui supportent la syntaxe Markdown étendue.
Cependant, des limitations existent en raison de la légèreté de Markdown. Certains éléments HTML, tels que <style> et <script>, n’ont pas d’équivalents directs en Markdown et sont omis lors de la conversion. Néanmoins, le support de Markdown pour le “HTML en ligne” fournit une solution de contournement pour l’inclusion d’éléments non supportés.
Vous pouvez télécharger les exemples complets et les fichiers de données à partir de GitHub.
Aspose.HTML propose un Convertisseur HTML en Markdown gratuit en ligne qui convertit HTML en Markdown avec une grande qualité, facilement et rapidement. Il suffit de télécharger, de convertir vos fichiers et d’obtenir des résultats en quelques secondes !