Modifier Markdown au moyen d’un arbre syntaxique typé

Aspose.HTML for .NET utilise un MarkdownParser pour représenter un fichier MD existant sous forme de MarkdownSyntaxTree . Une application C# peut localiser les nœuds typés, remplacer leur contenu, insérer ou supprimer des structures du document et enregistrer l’arbre modifié au format Markdown sans le convertir d’abord en HTML.


Mettre à jour le texte d’un paragraphe Markdown en C#

L’exemple suivant recherche le premier paragraphe dans input.md, remplace son contenu en ligne et enregistre l’arbre syntaxique mis à jour dans edited.md. Les autres nœuds de premier niveau restent dans l’arbre.

Code C# pour modifier un fichier Markdown

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");

Étapes pour modifier Markdown en C#

  1. Créez un MarkdownParser et appelez ParseFile() pour construire l’arbre syntaxique Markdown.
  2. Parcourez les nœuds de premier niveau avec FirstChild et NextSibling jusqu’à trouver le nœud typé requis.
  3. Supprimez ou remplacez le contenu du nœud cible avec les méthodes de manipulation d’arbre fournies par l’API Markdown Syntax.
  4. Créez des nœuds de remplacement valides avec SyntaxFactory et rattachez-les au nœud cible.
  5. Appelez Save() pour sérialiser l’arbre modifié dans un fichier MD.

Fonctions et limites de la modification de Markdown

  • Modifier une structure Markdown existante. Travaillez avec des nœuds typés pour les titres, les paragraphes, les listes, les liens, l’emphase, les blocs de code, les tableaux et d’autres éléments Markdown pris en charge.
  • Appliquer des modifications ciblées. Parcourez l’arbre syntaxique pour mettre à jour un contenu sélectionné, insérer un nœud à un emplacement précis, remplacer un enfant ou supprimer un bloc obsolète.
  • Préserver le modèle du document. La modification de l’AST agit sur les nœuds au lieu d’effectuer un remplacement de texte sans restriction. Le fichier enregistré est sérialisé depuis l’arbre syntaxique modifié et ne doit pas être considéré comme une copie de la source identique octet par octet.
  • Inspecter sans modifier le contenu. Utilisez le guide d’analyse de Markdown lorsque l’application doit parcourir l’AST ou extraire des données structurées sans modifier le document.
  • Utiliser des flux spécialisés pour les autres tâches. Consultez Créer du Markdown en C# pour un nouveau document, Enregistrer Markdown pour des exemples centrés sur l’enregistrement ou Markdown vers PDF lorsque le résultat requis est un document rendu.

Documentation et référence de l’API d’édition Markdown

Consultez Edit and Modify Markdown pour des exemples de modification des titres, paragraphes et éléments de liste au moyen de l’AST. Le guide Parse and Process Markdown explique le parcours des nœuds et les nœuds syntaxiques typés. Pour connaître la notation Markdown prise en charge et les formes d’éléments disponibles, consultez le guide Markdown Syntax .


Installer Aspose.HTML for .NET

Installez Aspose.HTML for .NET depuis NuGet avec l’interface CLI .NET :

dotnet add package Aspose.HTML

Vous pouvez également utiliser l’interface du gestionnaire de packages NuGet ou exécuter Install-Package Aspose.HTML dans la console du gestionnaire de packages. Consultez le guide d’installation pour la configuration, ou demandez une licence temporaire afin d’évaluer l’API sans limitations.


Questions sur la modification de Markdown

1. Pourquoi modifier Markdown au moyen d’un AST plutôt que de remplacer des chaînes ?

Un AST représente les titres, les paragraphes, les listes, les liens et le formatage en ligne sous forme de nœuds distincts. L’application peut ainsi modifier une structure précise sans remplacer accidentellement le même texte ailleurs ni endommager la syntaxe Markdown environnante.

2. La méthode ParseFile() modifie-t-elle le fichier MD source ?

Non. La méthode crée en mémoire un arbre syntaxique à partir du fichier source. Le fichier change uniquement lorsque l’application appelle Save() et écrit l’arbre dans le chemin d’origine ou vers une autre destination.

3. Comment modifier Markdown dans une application ASP.NET Core ?

Utilisez MarkdownParser dans le code côté serveur pour analyser le fichier MD sous forme de MarkdownSyntaxTree, modifiez les nœuds syntaxiques requis, puis appelez Save() pour écrire le Markdown mis à jour. Aspose.HTML fournit l’API de traitement de documents et l’application ASP.NET Core fournit l’interface d’édition dans le navigateur lorsqu’elle est nécessaire.

4. Le fichier Markdown modifié sera-t-il identique octet par octet en dehors du texte changé ?

Ne supposez pas une identité exacte au niveau des octets. L’API sérialise de nouveau l’arbre syntaxique en Markdown. La structure du document reste donc disponible, mais les espaces ou certains détails de formatage peuvent être normalisés. Comparez la sortie enregistrée lorsque la mise en forme exacte de la source est importante.

5. Peut-on convertir directement l’arbre modifié en PDF avec Save() ?

Non. La méthode MarkdownSyntaxTree.Save() écrit une sortie Markdown. Enregistrez d’abord le fichier MD modifié, puis utilisez le flux de conversion Markdown lorsque le résultat final doit être un PDF ou un autre format rendu.

Flux associés à Markdown et à l’édition

Poursuivez avec une tâche ciblée de traitement Markdown ou d’édition de documents.