Convertir HTML en Markdown en C#

Markdown est un langage de balisage avec une syntaxe de formatage de texte brut. Markdown est souvent utilisé comme format pour la documentation et les fichiers readme, car il permet d’écrire dans un style facile à lire et à écrire. Il est populaire auprès des rédacteurs techniques en raison de sa simplicité d’utilisation, de sa facilité d’apprentissage et de son large soutien. 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. La bibliothèque Aspose.HTML for .NET permet une conversion inversée de HTML en Markdown. Vous pouvez accéder aux fichiers Markdown et les modifier ou créer de nouveaux contenus à partir de n’importe quel appareil et dans n’importe quel éditeur de texte.

Dans cet article, vous trouverez des informations sur la manière de convertir HTML en MD à l’aide des méthodes ConvertHTML() de la classe Converter, et sur la manière d’appliquer MarkdownSaveOptions. Nos exemples de code vous aident à convertir HTML en Markdown à l’aide de la bibliothèque C#.

Convertisseur HTML en ligne

Vous pouvez convertir HTML en Markdown avec l’API Aspose.HTML for .NET en temps réel. Commencez par charger un fichier HTML sur votre disque local, puis exécutez l’exemple. Dans cet exemple, 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.

                
            

De HTML à Markdown en quelques lignes de code

Vous pouvez convertir HTML au format Markdown en utilisant C# et d’autres langages de programmation .NET. 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’extrait de code suivant montre comment convertir HTML en Markdown en quelques lignes de code !

 1// Convert HTML to Markdown in C#
 2
 3// Prepare HTML code and save it to a file
 4string code = "<h1>Header 1</h1>" +
 5              "<h2>Header 2</h2>" +
 6              "<p>Convert HTML to Markdown</p>";
 7File.WriteAllText("convert.html", code);
 8
 9// Call ConvertHTML() method to convert HTML to Markdown
10Converter.ConvertHTML("convert.html", new MarkdownSaveOptions(), Path.Combine(OutputDir, "convert.md"));

Sauvegarder les options

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. L’option la plus importante est MarkdownSaveOptions.Features. Cette option vous permet d’activer/désactiver la conversion d’un élément particulier.

PropertyDescription
DefaultThis property returns a set of options that are compatible with default Markdown documentation.
FeaturesA flag set that controls which HTML elements are converted to Markdown.
FormatterThis property gets or sets the Markdown formatting style.
GitThis property returns a set of options that are compatible with GitLab Flavored Markdown.
ResourceHandlingOptionsGets a ResourceHandlingOptions object which is used for configuration of resources handling.

Pour en savoir plus sur les MarkdownSaveOptions, veuillez lire l’article Convertisseurs à réglage fin.

Convertir HTML en Markdown en utilisant MarkdownSaveOptions

Pour convertir HTML en Markdown en spécifiant MarkdownSaveOptions, vous devez suivre quelques étapes :

  1. Charger un fichier HTML en utilisant l’un des constructeurs HTMLDocument() de la classe HTMLDocument.
  2. Créer un nouvel objet MarkdownSaveOptions.
  3. Utilisez la méthode ConvertHTML() de la classe Converter pour enregistrer HTML en tant que fichier Markdown. Vous devez transmettre les paramètres HTMLDocument, MarkdownSaveOptions et le chemin du fichier de sortie à la méthode ConvertHTML() pour convertir HTML en 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 C#
 2
 3// Prepare a path for converted file saving 
 4string savePath = Path.Combine(OutputDir, "options-output.md");
 5
 6// Prepare HTML code and save it to the file
 7string code = "<h1>Header 1</h1>" +
 8              "<h2>Header 2</h2>" +
 9              "<p>Hello, World!!</p>" +
10              "<a href='aspose.com'>aspose</a>";
11File.WriteAllText(Path.Combine(OutputDir, "options.html"), code);
12
13// Create an instance of SaveOptions and set up the rule: 
14// - only <a> and <p> elements will be converted to Markdown
15MarkdownSaveOptions options = new MarkdownSaveOptions();
16options.Features = MarkdownFeatures.Link | MarkdownFeatures.AutomaticParagraph;
17
18// Call the ConvertHTML() method to convert the HTML to Markdown
19Converter.ConvertHTML(Path.Combine(OutputDir, "options.html"), options, savePath);

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 C# using Git syntax
 2
 3// Prepare a path for converted file saving 
 4string savePath = Path.Combine(OutputDir, "output-git.md");
 5
 6// Prepare HTML code and save it to the file
 7string code = "<h1>Header 1</h1>" +
 8              "<h2>Header 2</h2>" +
 9              "<p>Hello, World!!</p>";
10File.WriteAllText(Path.Combine(OutputDir, "document.html"), code);
11
12// Call ConvertHTML() method to convert HTML to Markdown
13Converter.ConvertHTML(Path.Combine(OutputDir, "document.html"), MarkdownSaveOptions.Git, savePath);

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.

Inline HTML

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 d’une 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 :

 1// Convert inline HTML elements to Markdown using C#
 2
 3// Prepare a path for converted file saving 
 4string savePath = Path.Combine(OutputDir, "inline-html.md");
 5
 6// Prepare HTML code and save it to the file
 7string code = "text<div markdown='inline'><code>text</code></div>";
 8File.WriteAllText(Path.Combine(OutputDir, "inline.html"), code);
 9
10// Call ConvertHTML() method to convert HTML to Markdown
11Converter.ConvertHTML(Path.Combine(OutputDir, "inline.html"), new MarkdownSaveOptions(), savePath);
12
13// 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 – Features nesting

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 featureFeatures which can be processed inside
HeaderLink, Emphasis, Strong, InlineCode, Image, Strikethrough, Video
BlockquoteAny
ListAutomaticParagraph, Link, Emphasis, Strong, InlineCode, Image, LineBreak, Strikethrough, Video, TaskList, List
LinkEmphasis, Strong, InlineCode, Image, LineBreak, Strikethrough
AutomaticParagraphLink, Emphasis, Strong, InlineCode, Image, LineBreak, Strikethrough
StrikethroughLink, Emphasis, Strong, InlineCode, Image, LineBreak
TableVideo, Strikethrough, Image, InlineCode, Emphasis, Strong, Link
EmphasisLink, InlineCode, Image, LineBreak, Strikethrough, Video
StrongLink, InlineCode, Image, LineBreak, Strikethrough, Video

Vous pouvez télécharger les exemples complets et les fichiers de données sur GitHub.

Téléchargez la bibliothèque Aspose.HTML for .NET, qui vous permet de 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 !

Texte “Convertisseur HTML en MD”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.