HTML-zu-Markdown-Konvertierung in Java

Markdown (MD) ist eine einfache Auszeichnungssprache, die eine Syntax zur Formatierung von Klartext verwendet. Aufgrund ihres leicht lesbaren und einfach zu schreibenden Formats wird sie häufig für die Erstellung von Dokumentationen und Readme-Dateien verwendet. Aufgrund ihres Designs kann sie leicht in viele Ausgabeformate konvertiert werden, aber ursprünglich wurde sie nur für die Konvertierung in HTML entwickelt. Aspose.HTML for Java ermöglicht Ihnen die umgekehrte Konvertierung und Sie können HTML in Java leicht in Markdown konvertieren.

In diesem Artikel finden Sie Informationen darüber, wie Sie HTML in Markdown konvertieren können, indem Sie die Methoden convertHTML() der Klasse Converter verwenden, und wie Sie MarkdownSaveOptions anwenden.

HTML zu Markdown mit ein paar Zeilen Java-Code

Sie können HTML in das Markdown-Format konvertieren, indem Sie Java und andere Java-Programmiersprachen verwenden. Die statischen Methoden der Klasse Converter dienen in erster Linie als einfachste Möglichkeit, einen HTML-Code in verschiedene Formate zu konvertieren. Das folgende Beispiel zeigt, wie man HTML in Markdown umwandeln kann, und zwar buchstäblich mit ein paar Zeilen Code!

1// Prepare HTML code and save it to a file
2String code = "<h1>Convert HTML to Markdown Using Java</h1>" +
3        "<h2>How to Convert HTML to MD in Java</h2>" +
4        "<p>The Aspose.HTML for Java library allows you to convert HTML to Markdown.</p>";
5FileHelper.writeAllText("conversion.html", code);
6
7// Call ConvertHTML() method to convert HTML to Markdown
8Converter.convertHTML("conversion.html", new MarkdownSaveOptions(), "conversion.md");

Speicheroptionen - Klasse MarkdownSaveOptions

Die Klasse MarkdownSaveOptions hat eine Reihe von Eigenschaften, die Ihnen die Kontrolle über den Konvertierungsprozess geben. Die wichtigste Option ist Features. Mit dieser Option können Sie die Konvertierung des jeweiligen Elements aktivieren/deaktivieren.

MethodDescription
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.

Um mehr über MarkdownSaveOptions zu erfahren, lesen Sie bitte den Artikel Feinabstimmungskonverter.

In dem Artikel Markdown-Syntax finden Sie Informationen zu den wichtigsten Markdown-Elementen, Details und Beispiele zur Markdown-Syntax.

HTML in Markdown umwandeln mit MarkdownSaveOptions

methode setFeatures()

Die Eigenschaft MarkdownSaveOptions.Features in Aspose.HTML for Java ermöglicht eine feinkörnige Kontrolle über die Markdown-Konvertierung durch das Aktivieren oder Deaktivieren bestimmter Funktionen durch eine bitweise Kombination von Flags aus dem MarkdownFeatures-Enum. Zum Beispiel,

Um HTML in Markdown zu konvertieren, wobei MarkdownSaveOptions.Features angegeben wird, sollten Sie einige Schritte befolgen:

  1. Ein beliebtes Szenario ist das Laden einer HTML-Datei mit einem der Konstruktoren HTMLDocument() der Klasse HTMLDocument. In diesem Beispiel erstellen wir jedoch eine HTML-Quelle von Grund auf, indem wir HTML-Code vorbereiten und ihn in einer Datei speichern.
  2. Erstellen Sie ein neues MarkdownSaveOptions Objekt. Verwenden Sie setFeatures(), um sowohl die Erzeugung von Hyperlinks als auch die automatische Absatzformatierung für die Umwandlung von HTML in Markdown zu aktivieren.
  3. Verwenden Sie die Methode convertHTML(sourcePath, options, outputPath) der Klasse Converter, um HTML als eine Markdown-Datei zu speichern.

Das folgende Beispiel zeigt, wie nur Links und Absätze verarbeitet werden, andere HTML-Elemente bleiben unverändert:

 1// Prepare HTML code and save it to the file
 2String code = "<h1>Header 1</h1>" +
 3        "<h2>Header 2</h2>" +
 4        "<p>Hello, World!!</p>" +
 5        "<a href='aspose.com'>aspose</a>";
 6FileHelper.writeAllText("options.html", code);
 7
 8// Create an instance of SaveOptions and set up the rule:
 9// - only <a> and <p> elements will be converted to Markdown
10MarkdownSaveOptions options = new MarkdownSaveOptions();
11options.setFeatures(MarkdownFeatures.Link | MarkdownFeatures.AutomaticParagraph);
12
13// Call the convertHTML() method to convert HTML to Markdown
14Converter.convertHTML("options.html", options, "options-output.md");

Im obigen Java-Code wird das options-Objekt erstellt, und zwei Optionen werden mit der Methode setFeatures() gesetzt. Die Funktion Link legt fest, dass HTML-<a>-Elemente in Markdown umgewandelt werden, während die Funktion AutomaticParagraph bestimmt, dass HTML-<p>-Elemente in Markdown umgewandelt werden. Alle anderen Elemente im HTML-Dokument werden nicht umgewandelt.

methode getGit()

GitHub Flavored Markdown ist die GitHub.com-Version der Markdown-Syntax, die eine Reihe zusätzlicher hilfreicher Funktionen bietet, die die Arbeit mit Inhalten auf GitHub.com erleichtern. Sie ist eine Erweiterung der Standard-Markdown-Syntax und fügt viele zusätzliche Funktionen hinzu, einschließlich Codehervorhebung, Aufgabenlisten, Tabellen und mehr.

Um HTML in Markdown zu konvertieren, können Sie Ihre eigenen Regeln definieren oder die vordefinierten Vorlagen verwenden. Sie können zum Beispiel die Vorlage verwenden, die auf der Syntax von GitLab Flavored Markdown basiert:

1// Prepare HTML code and save it to a file
2String code = "<h1>Header 1</h1>" +
3        "<h2>Header 2</h2>" +
4        "<p>Hello, World!!</p>";
5FileHelper.writeAllText("document.html", code);
6
7// Call convertHTML() method to convert HTML to Markdown
8Converter.convertHTML("document.html", MarkdownSaveOptions.getGit(), "output-git.md");

Im obigen Java-Beispiel führt die Methode convertHTML(sourcePath, options, outputPath) die Konvertierung durch. Sie nimmt drei Argumente entgegen: SourcePath, options und OutputPath. Das zweite Argument ist eine Instanz der MarkdownSaveOptions. Wir verwenden die Methode getGit() in MarkdownSaveOptions, die eine options-Instanz mit aktiviertem Git zurückgibt. Das Aktivieren von Git in MarkdownSaveOptions bedeutet, dass die generierte Markdown-Ausgabedatei ein Git-flavored Markdown enthält, eine Markdown-Syntax, die Git-spezifische Funktionen enthält.

Begrenzung

Markdown ist eine leichtgewichtige und einfach zu verwendende Syntax. Nicht alle HTML-Elemente können in Markdown umgewandelt werden, da es in der Markdown-Syntax keine Entsprechung gibt. Elemente wie STYLE, SCRIPT, LINK, EMBED usw. werden bei der Umwandlung verworfen.

Inline-HTML

Markdown ermöglicht es Ihnen, den reinen HTML-Code anzugeben, der dann unverändert wiedergegeben wird. Die Funktion, die dieses Verhalten ermöglicht, heißt “Inline HTML”. Um sie zu nutzen, sollten Sie eines der spezifischen Elemente, die von dieser Funktion unterstützt werden, an den Anfang der neuen Zeile stellen. Oder Sie können eines dieser Elemente als “Inline-HTML” markieren, indem Sie diesem Element das Attribut markdown mit dem Wert inline hinzufügen. Hier ist ein kleines Beispiel, das die Verwendung dieses Attributs demonstriert:

1// Prepare HTML code and save it to a file
2String code = "text<div markdown='inline'><code>text</code></div>";
3FileHelper.writeAllText("inline.html", code);
4
5// Call convertHTML() method to convert HTML to Markdown
6Converter.convertHTML("inline.html", new MarkdownSaveOptions(), "inline-html.md");
7
8// Output file will contain: text\r\n<div markdown="inline"><code>text</code></div>

Wie Sie sehen können, wird der Inhalt des <div>-Elements nicht in Markdown umgewandelt und vom Markdown-Prozessor so behandelt, wie er ist. Die Liste der Elemente, die diese Funktion unterstützen, ist für jeden Markdown-Prozessor unterschiedlich.

Die ursprüngliche Markdown-Spezifikation unterstützt diese Tags: BLOCKQUOTE, H1, H2, H3, H4, H5, H6, P, PRE, OL, UL, DL, DIV, INS, DEL, IFRAME, FIELDSET, NOSCRIPT, FORM, MATH.

Das GitLab Flavored Markdown erweitert diese Liste um die folgenden Tags: ARTICLE, FOOTER, NAV, ASIDE, HEADER, ADDRESS, HR, DD, FIGURE, FIGCAPTION, ABBR, VIDEO, AUDIO, OUTPUT, CANVAS, SECTION, DETAILS, HGROUP, SUMMARY.

Merkmale Verschachtelung

Obwohl Markdown eine breite Palette von Funktionen unterstützt, können nicht alle kombiniert werden. Zum Beispiel werden Listenelemente innerhalb von Tabellenelementen nicht konvertiert. Die folgende Tabelle zeigt, welche Features verschachtelt werden können. Jedes Feature ist ein Mitglied der Aufzählung 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

Schlussfolgerung

Aspose.HTML for Java bietet leistungsstarke Werkzeuge für die HTML-zu-Markdown-Konvertierung, die die Methode convertHTML() und anpassbare MarkdownSaveOptions nutzen.

Die Klasse MarkdownSaveOptions gibt Entwicklern eine fein abgestufte Kontrolle über den Konvertierungsprozess. Sie enthält Funktionen zum Aktivieren oder Deaktivieren bestimmter HTML-Elemente, zum Festlegen von Formatierungsstilen und zum effizienten Umgang mit Ressourcen. Für fortgeschrittene Szenarien sind vordefinierte Optionen wie GitHub Flavored Markdown (GFM) verfügbar, die eine nahtlose Integration mit Plattformen ermöglichen, die eine erweiterte Markdown-Syntax unterstützen.

Allerdings gibt es Einschränkungen aufgrund der Leichtigkeit von Markdown. Bestimmte HTML-Elemente wie <style> und <script> haben keine direkten Entsprechungen in Markdown und werden bei der Konvertierung weggelassen. Nichtsdestotrotz bietet die Unterstützung von Markdown für “Inline-HTML” eine Umgehung für die Aufnahme nicht unterstützter Elemente.

Sie können die vollständigen Beispiele und Datendateien unter GitHub herunterladen.

Aspose.HTML bietet einen kostenlosen Online HTML to Markdown Converter, der HTML in Markdown mit hoher Qualität, einfach und schnell konvertiert. Einfach hochladen, Ihre Dateien konvertieren und in wenigen Sekunden Ergebnisse erhalten!

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.