Editar Markdown mediante un árbol de sintaxis tipado

Aspose.HTML for .NET utiliza un MarkdownParser para representar un archivo MD existente como un MarkdownSyntaxTree . Una aplicación C# puede localizar nodos tipados, sustituir su contenido, insertar o eliminar estructuras del documento y guardar el árbol modificado como Markdown sin convertirlo primero a HTML.


Actualizar el texto de un párrafo Markdown en C#

El siguiente ejemplo busca el primer párrafo de input.md, sustituye su contenido en línea y guarda el árbol de sintaxis actualizado en edited.md. Los demás nodos de nivel superior permanecen en el árbol.

Código C# para editar un archivo 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");

Pasos para editar Markdown en C#

  1. Cree un MarkdownParser y llame a ParseFile() para construir el árbol de sintaxis Markdown.
  2. Recorra los nodos de nivel superior mediante FirstChild y NextSibling hasta encontrar el nodo tipado necesario.
  3. Elimine o sustituya el contenido del nodo de destino mediante los métodos de manipulación de árboles de la API Markdown Syntax.
  4. Cree nodos de sustitución válidos mediante SyntaxFactory y adjúntelos al nodo de destino.
  5. Llame a Save() para serializar el árbol editado en un archivo MD.

Funciones y límites de la edición de Markdown

  • Editar una estructura Markdown existente. Trabaje con nodos tipados para encabezados, párrafos, listas, enlaces, énfasis, bloques de código, tablas y otros elementos Markdown compatibles.
  • Realizar cambios específicos. Recorra el árbol de sintaxis para actualizar contenido seleccionado, insertar un nodo en una posición concreta, sustituir un nodo secundario o eliminar un bloque obsoleto.
  • Conservar el modelo del documento. La edición del AST modifica nodos en lugar de aplicar una sustitución de texto sin restricciones. El archivo guardado se serializa a partir del árbol de sintaxis modificado y no debe considerarse una copia idéntica del origen a nivel de bytes.
  • Inspeccionar sin modificar el contenido. Utilice la guía de análisis de Markdown cuando la aplicación necesite recorrer el AST o extraer datos estructurados sin cambiar el documento.
  • Utilizar flujos específicos para otras tareas. Consulte Crear Markdown en C# para un documento nuevo, Guardar Markdown para ejemplos centrados en el guardado o Markdown a PDF cuando necesite un documento renderizado.

Documentación y referencia de la API de edición de Markdown

Consulte Edit and Modify Markdown para ver ejemplos de modificación de encabezados, párrafos y elementos de lista mediante el AST. La guía Parse and Process Markdown explica el recorrido de nodos y los nodos de sintaxis tipados. Para conocer la notación Markdown compatible y las formas de sus elementos, consulte la guía Markdown Syntax .


Instalar Aspose.HTML for .NET

Instale Aspose.HTML for .NET desde NuGet con la CLI de .NET:

dotnet add package Aspose.HTML

También puede usar la interfaz del Administrador de paquetes NuGet o ejecutar Install-Package Aspose.HTML en la consola del Administrador de paquetes. Consulte la guía de instalación para configurar la biblioteca o solicite una licencia temporal para evaluar la API sin limitaciones.


Preguntas sobre la edición de Markdown

1. ¿Por qué conviene editar Markdown mediante un AST en lugar de sustituir cadenas?

Un AST representa los encabezados, párrafos, listas, enlaces y el formato en línea como nodos independientes. De este modo, la aplicación puede modificar una estructura concreta sin sustituir por error texto coincidente en otra parte ni dañar la sintaxis Markdown circundante.

2. ¿ParseFile() modifica el archivo MD de origen?

No. Crea un árbol de sintaxis en memoria a partir del archivo de origen. El archivo solo cambia cuando la aplicación llama a Save() y escribe el árbol en la ruta original o en otro destino.

3. ¿Cómo se edita Markdown en una aplicación ASP.NET Core?

Utilice MarkdownParser en el código del servidor para analizar el archivo MD como un MarkdownSyntaxTree, modifique los nodos de sintaxis necesarios y llame a Save() para escribir el Markdown actualizado. Aspose.HTML proporciona la API de procesamiento de documentos y la aplicación ASP.NET Core proporciona la interfaz de edición en el navegador cuando sea necesaria.

4. ¿El archivo Markdown editado será idéntico byte por byte excepto por el texto modificado?

No dé por supuesta una coincidencia exacta a nivel de bytes. La API serializa el árbol de sintaxis de nuevo como Markdown, por lo que se conserva la estructura del documento, pero pueden normalizarse los espacios u otros detalles de formato. Compare la salida guardada cuando necesite conservar exactamente el formato del código fuente.

5. ¿Se puede convertir directamente el árbol editado a PDF con Save()?

No. El método MarkdownSyntaxTree.Save() escribe una salida Markdown. Guarde primero el archivo MD editado y después utilice el flujo de conversión de Markdown cuando el resultado final deba ser PDF u otro formato renderizado.

Flujos relacionados con Markdown y la edición

Continúe con una tarea específica de Markdown o de edición de documentos.