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.
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. |
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,
MarkdownFeatures.Link
ermöglicht die Erzeugung oder Erhaltung von Hyperlinks in der Markdown-Ausgabe.MarkdownFeatures.AutomaticParagraph
wandelt HTML-<p>
-Elemente in Markdown-Absätze um.
Um HTML in Markdown zu konvertieren, wobei MarkdownSaveOptions.Features
angegeben wird, sollten Sie einige Schritte befolgen:
- 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. - 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. - 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 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 |
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!