Convertir HTML en Markdown
Markdown est un langage de balisage avec une syntaxe de formatage de texte brut qui est couramment utilisé pour la documentation et les fichiers Readme en raison de sa lisibilité et de sa facilité d’écriture. Il a été créé à l’origine pour convertir uniquement en HTML. La bibliothèque Aspose.HTML for Python via .NET permet la conversion inverse de HTML en Markdown. Vous pouvez ouvrir, créer et modifier des fichiers Markdown à partir de n’importe quel appareil en utilisant n’importe quel éditeur de texte.
Dans cet article, vous apprendrez à convertir HTML en Markdown en utilisant les méthodes convert_html() de la classe Converter et à appliquer les MarkdownSaveOptions.
Pour continuer à suivre ce tutoriel, installez et configurez Aspose.HTML for Python via .NET dans votre projet Python. Nos exemples de code vous aident à convertir HTML en Markdown et à générer des fichiers Markdown à l’aide de la bibliothèque Python.
Convertisseur HTML en ligne
Vous pouvez convertir HTML en Markdown avec Aspose.HTML for Python via l’API .NET en temps réel. Tout d’abord, chargez un fichier HTML à partir de votre disque local ou d’une URL et exécutez l’exemple. Dans l’exemple de code, les options d’enregistrement sont définies par défaut. Vous recevrez immédiatement le résultat de la conversion HTML vers Markdown sous la forme d’un fichier Markdown distinct.
HTML vers Markdown – Exemple de code Python
Les méthodes de la classe Converter sont principalement utilisées comme moyen le plus simple de convertir un code HTML dans différents formats. Pour convertir du HTML en Markdown, vous devez suivre quelques étapes :
- Charger, ouvrir ou lire un document HTML. Dans l’exemple suivant, nous initialisons un document HTML à partir d’une chaîne de code.
- Créez un nouvel objet MarkdownSaveOptions et spécifiez les propriétés requises.
- Pour convertir du HTML en Markdown, utilisez la méthode convert_html() de la classe Converter, en lui passant un HTMLDocument, des MarkdownSaveOptions et le chemin vers le fichier de sortie.
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. L’extrait de code suivant montre comment convertir HTML en Markdown en utilisant la propriété git
de MarkdownSaveOptions
:
1from aspose.html import *
2from aspose.html.converters import *
3from aspose.html.saving import *
4
5# Prepare an HTML code and save it to a file
6code = "<h1>Header 1</h1>" \
7 "<h2>Header 2</h2>" \
8 "<p>Hello World!!</p>"
9with open("document.html", "w", encoding="utf-8") as f:
10 f.write(code)
11 f.close()
12 # Call the convert_html method to convert HTML to Markdown
13 Converter.convert_html("document.html", MarkdownSaveOptions.git, "output.md")
Options d’enregistrement – Classe MarkdownSaveOptions
La fonctionnalité de création de Markdown peut être améliorée grâce à des options d’enregistrement adaptées à vos besoins. Le fichier MarkdownSaveOptions possède un certain nombre de propriétés qui vous permettent de contrôler le processus de conversion :
Property | Description |
---|---|
default | This property returns a set of options that are compatible with default Markdown documentation. |
features | This property is a flag set that controls which HTML elements are converted to Markdown. For example, you can choose to convert only links and paragraphs or include a broader range of elements such as headers, lists, and tables. |
formatter | This property gets or sets the Markdown formatting style. Options available: GIT and DEFAULT. |
git | This property returns a set of options that are compatible with GitLab Flavored Markdown, which is a popular extension of Markdown used by GitLab. |
resource_handling_options | This property provides access to a ResourceHandlingOptions object which is used to configure how resources are handled during the conversion process. |
Convertir HTML en Markdown – En utilisant la propriété features
Examinons l’une des propriétés importantes de MarkdownSaveOptions – features. Cette option vous permet d’activer/désactiver la conversion d’un élément particulier. L’exemple suivant montre comment traiter uniquement les liens et les paragraphes, les autres éléments HTML restant inchangés :
1import os
2from aspose.html.converters import *
3from aspose.html.saving import *
4
5# Prepare directories and paths
6output_dir = "output/"
7if not os.path.exists(output_dir):
8 os.makedirs(output_dir)
9
10save_path = os.path.join(output_dir, "options-output.md")
11
12# Prepare HTML code and save it to a file
13code = "<h1>Header 1</h1>" \
14 "<h2>Header 2</h2>" \
15 "<p>Hello, World!!</p>" \
16 "<a href="https://docs.aspose.com/">aspose</a>"
17with open(os.path.join(output_dir, "options.html"), "w") as file:
18 file.write(code)
19
20# Create an instance of SaveOptions and set up the rule:
21# – only <a> and <p> elements will be converted to Markdown
22options = MarkdownSaveOptions()
23options.features = MarkdownFeatures.LINK | MarkdownFeatures.AUTOMATIC_PARAGRAPH
24
25# Call the convert_html() method to convert HTML to Markdown
26Converter.convert_html(os.path.join(output_dir, "options.html"), options, save_path)
Caractéristiques de l’emboîtement
Markdown propose de nombreuses fonctionnalités, mais elles ne peuvent pas toutes être utilisées ensemble. Par exemple, les éléments de liste à l’intérieur d’éléments de tableau ne seraient pas convertis. Le tableau suivant montre quelles fonctionnalités 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 |
Limitation
Markdown est une syntaxe légère et facile à utiliser. Cependant, 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. Vous pouvez également marquer l’un de ces éléments comme “Inline HTML”, en ajoutant l’attribut markdown avec la valeur inline à cet élément. Voici un petit exemple qui montre comment utiliser cet attribut :
1import os
2from aspose.html.converters import *
3from aspose.html.saving import *
4
5# Prepare directories and paths
6output_dir = "output/"
7if not os.path.exists(output_dir):
8 os.makedirs(output_dir)
9
10save_path = os.path.join(output_dir, "inline-html.md")
11
12# Prepare HTML code and save it to a file
13code = "text<div markdown="inline"><code>text</code></div>"
14with open(os.path.join(output_dir, "inline.html"), "w") as file:
15 file.write(code)
16
17# Call the convert_html() method for HTML to Markdown conversion
18Converter.convert_html(os.path.join(output_dir, "inline.html"), MarkdownSaveOptions(), save_path)
19
20# 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.
L’article Syntaxe Markdown – Tutoriel de base fournit des informations sur les principaux éléments du langage de balisage Markdown et sur les détails de la syntaxe Markdown.
Téléchargez la bibliothèque Aspose.HTML for Python via .NET pour convertir avec succès, rapidement et facilement vos documents HTML, MHTML, EPUB, SVG et Markdown vers les formats les plus populaires.
Aspose.HTML propose un Convertisseur HTML en MD 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 !