Markdown über einen typisierten Syntaxbaum bearbeiten
Aspose.HTML for .NET
verwendet einen
MarkdownParser
, um eine vorhandene MD-Datei als
MarkdownSyntaxTree
darzustellen. Eine C#-Anwendung kann typisierte Knoten suchen, deren Inhalt ersetzen, Dokumentstrukturen einfügen oder entfernen und den geänderten Baum als Markdown speichern, ohne ihn zuvor in HTML zu konvertieren.
Absatztext in Markdown mit C# aktualisieren
Das folgende Beispiel findet den ersten Absatz in input.md, ersetzt seinen Inline-Inhalt und speichert den aktualisierten Syntaxbaum in edited.md. Andere Dokumentknoten der obersten Ebene bleiben im Baum erhalten.
C#-Code zum Bearbeiten einer Markdown-Datei
using Aspose.Html.Toolkit.Markdown.Syntax;
using Aspose.Html.Toolkit.Markdown.Syntax.Parser;
MarkdownParser parser = new MarkdownParser();
// Parse the source file into a typed Markdown syntax tree
MarkdownSyntaxTree syntaxTree = parser.ParseFile("input.md");
// Find the first top-level paragraph
MarkdownSyntaxNode currentNode = syntaxTree.FirstChild;
ParagraphSyntaxNode paragraph = null;
while (currentNode != null)
{
if (currentNode is ParagraphSyntaxNode)
{
paragraph = (ParagraphSyntaxNode)currentNode;
break;
}
currentNode = currentNode.NextSibling;
}
if (paragraph != null)
{
// Replace the paragraph's existing inline content
while (paragraph.FirstChild != null)
{
paragraph.RemoveChild(paragraph.FirstChild);
}
MarkdownSyntaxFactory factory = syntaxTree.SyntaxFactory;
TextSyntaxNode text = factory.Text("Updated paragraph text.");
paragraph.AppendChild(text);
}
// Serialize the updated syntax tree back to Markdown
syntaxTree.Save("edited.md");
Schritte zum Bearbeiten von Markdown in C#
- Erstellen Sie einen
MarkdownParserund rufen SieParseFile()auf, um den Markdown-Syntaxbaum zu erstellen. - Durchlaufen Sie Knoten der obersten Ebene über
FirstChildundNextSibling, bis der benötigte typisierte Knoten gefunden wurde. - Entfernen oder ersetzen Sie den Inhalt des Zielknotens mit den Methoden zur Baumbearbeitung der Markdown-Syntax-API.
- Erstellen Sie gültige Ersatzknoten über
SyntaxFactoryund fügen Sie sie an den Zielknoten an. - Rufen Sie
Save()auf, um den bearbeiteten Baum in eine MD-Datei zu serialisieren.
Möglichkeiten und Grenzen der Markdown-Bearbeitung
- Vorhandene Markdown-Struktur bearbeiten. Mit typisierten Knoten für Überschriften, Absätze, Listen, Links, Hervorhebungen, Codeblöcke, Tabellen und andere unterstützte Markdown-Elemente arbeiten.
- Gezielte Änderungen vornehmen. Den Syntaxbaum durchlaufen, um ausgewählte Inhalte zu aktualisieren, einen Knoten an einer bestimmten Position einzufügen, ein untergeordnetes Element zu ersetzen oder einen veralteten Block zu entfernen.
- Dokumentmodell beibehalten. Bei der AST-Bearbeitung werden Knoten geändert, statt eine uneingeschränkte Textersetzung auszuführen. Die gespeicherte Datei wird aus dem geänderten Syntaxbaum serialisiert und sollte nicht als bytegenaue Kopie der Quelle betrachtet werden.
- Ohne Inhaltsänderung untersuchen. Verwenden Sie den Leitfaden Markdown parsen , wenn die Anwendung den AST durchlaufen oder strukturierte Daten extrahieren soll, ohne das Dokument zu ändern.
- Spezielle Workflows für andere Aufgaben verwenden. Unter Markdown in C# erstellen finden Sie Informationen zu neuen Dokumenten, unter Markdown speichern Beispiele zum Speichern und unter Markdown in PDF einen Workflow für gerenderte Dokumente.
Dokumentation und API-Referenz zur Markdown-Bearbeitung
Markdown bearbeiten und ändern enthält Beispiele zum Ändern von Überschriften, Absätzen und Listenelementen über den AST. Der Leitfaden Markdown parsen und verarbeiten erklärt die Knotennavigation und typisierte Syntaxknoten. Die unterstützte Markdown-Notation und Elementformen beschreibt der Leitfaden Markdown-Syntax .
Aspose.HTML for .NET installieren
Installieren Sie Aspose.HTML for .NET aus NuGet mit der .NET CLI:
dotnet add package Aspose.HTML
Alternativ können Sie die Benutzeroberfläche des NuGet-Paket-Managers verwenden oder Install-Package Aspose.HTML in der Paket-Manager-Konsole ausführen. Einzelheiten zur Einrichtung finden Sie in der
Installationsanleitung
. Mit einer
temporären Lizenz
können Sie die API ohne Einschränkungen der Evaluierung testen.
Häufige Fragen zur Markdown-Bearbeitung
1. Warum sollte ich Markdown über einen AST statt durch Ersetzen von Zeichenfolgen bearbeiten?
Ein AST stellt Überschriften, Absätze, Listen, Links und Inline-Formatierungen als getrennte Knoten dar. So kann die Anwendung eine bestimmte Struktur ändern, ohne versehentlich übereinstimmenden Text an anderer Stelle zu ersetzen oder die umgebende Markdown-Syntax zu beschädigen.
2. Ändert ParseFile() die MD-Quelldatei?
Nein. Die Methode erstellt aus der Quelle einen Syntaxbaum im Arbeitsspeicher. Die Datei ändert sich erst, wenn die Anwendung Save() aufruft und den Baum am ursprünglichen oder an einem anderen Speicherort schreibt.
3. Kann derselbe Knotentyp jede Markdown-Überschrift darstellen?
Nein. ATX-Überschriften mit vorangestellten #-Zeichen verwenden AtxHeadingSyntaxNode, während mit = oder - unterstrichene Setext-Überschriften SetextHeadingSyntaxNode verwenden. Code zur Bearbeitung von Überschriften sollte die erwarteten Schreibweisen berücksichtigen.
4. Bleibt eine bearbeitete Markdown-Datei außerhalb des geänderten Textes bytegenau identisch?
Verlassen Sie sich nicht auf bytegenaue Übereinstimmung. Die API serialisiert den Syntaxbaum wieder als Markdown. Die Dokumentstruktur bleibt erhalten, Leerzeichen oder Formatierungsdetails können jedoch normalisiert werden. Vergleichen Sie die gespeicherte Ausgabe, wenn die exakte Quellformatierung wichtig ist.
5. Kann ich den bearbeiteten Baum mit Save() direkt in PDF konvertieren?
Nein. MarkdownSyntaxTree.Save() schreibt Markdown. Speichern Sie zuerst die bearbeitete MD-Datei und verwenden Sie anschließend den Markdown-Konvertierungsworkflow, wenn PDF oder ein anderes gerendertes Format benötigt wird.
Verwandte Markdown- und Bearbeitungsworkflows
Mit einer weiteren Aufgabe zur Markdown-Verarbeitung oder Dokumentbearbeitung fortfahren.