Editar Markdown por meio de uma árvore de sintaxe tipada

O Aspose.HTML for .NET usa um MarkdownParser para representar um arquivo MD existente como uma MarkdownSyntaxTree . Uma aplicação C# pode localizar nós tipados, substituir seu conteúdo, inserir ou remover estruturas do documento e salvar a árvore modificada como Markdown sem convertê-la primeiro em HTML.


Atualizar o texto de um parágrafo Markdown em C#

O exemplo a seguir encontra o primeiro parágrafo em input.md, substitui seu conteúdo inline e salva a árvore de sintaxe atualizada em edited.md. Os demais nós de nível superior permanecem na árvore.

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

Etapas para editar Markdown em C#

  1. Crie um MarkdownParser e chame ParseFile() para construir a árvore de sintaxe Markdown.
  2. Percorra os nós de nível superior com FirstChild e NextSibling até encontrar o nó tipado necessário.
  3. Remova ou substitua o conteúdo do nó de destino usando os métodos de manipulação da árvore fornecidos pela Markdown Syntax API.
  4. Crie nós substitutos válidos por meio de SyntaxFactory e anexe-os ao nó de destino.
  5. Chame Save() para serializar a árvore editada em um arquivo MD.

Recursos e limites da edição de Markdown

  • Editar uma estrutura Markdown existente. Trabalhe com nós tipados para títulos, parágrafos, listas, links, ênfase, blocos de código, tabelas e outros elementos Markdown compatíveis.
  • Fazer alterações específicas. Percorra a árvore de sintaxe para atualizar o conteúdo selecionado, inserir um nó em uma posição específica, substituir um filho ou remover um bloco obsoleto.
  • Preservar o modelo do documento. A edição da AST altera nós em vez de aplicar uma substituição de texto irrestrita. O arquivo salvo é serializado da árvore de sintaxe modificada e não deve ser tratado como uma cópia byte a byte da origem.
  • Inspecionar sem alterar o conteúdo. Use o guia de análise de Markdown quando a aplicação precisar percorrer a AST ou extrair dados estruturados sem modificar o documento.
  • Usar fluxos específicos para outras tarefas. Consulte Criar Markdown em C# para um novo documento, Salvar Markdown para exemplos voltados ao salvamento ou Markdown para PDF quando o resultado necessário for um documento renderizado.

Documentação e referência da API de edição de Markdown

Consulte Editar e modificar Markdown para ver exemplos de alteração de títulos, parágrafos e itens de lista por meio da AST. O guia Analisar e processar Markdown explica a navegação por nós e os nós de sintaxe tipados. Para conhecer a notação Markdown compatível e as formas dos elementos, consulte o guia Sintaxe Markdown .


Instalar o Aspose.HTML for .NET

Instale o Aspose.HTML for .NET pelo NuGet usando a CLI do .NET:

dotnet add package Aspose.HTML

Você também pode usar a interface do Gerenciador de Pacotes NuGet ou executar Install-Package Aspose.HTML no Console do Gerenciador de Pacotes. Consulte o guia de instalação para configurar a biblioteca ou solicite uma licença temporária para avaliar a API sem limitações.


Perguntas frequentes sobre edição de Markdown

1. Por que editar Markdown por meio de uma AST em vez de substituir strings?

Uma AST identifica títulos, parágrafos, listas, links e formatação inline como nós separados. Assim, a aplicação pode alterar uma estrutura selecionada sem substituir por engano texto correspondente em outro local nem danificar a sintaxe Markdown ao redor.

2. O método ParseFile() modifica o arquivo MD de origem?

Não. Ele cria uma árvore de sintaxe em memória a partir da origem. O arquivo só muda quando a aplicação chama Save() e grava a árvore no caminho original ou em outro destino.

3. Como editar Markdown em uma aplicação ASP.NET Core?

Use MarkdownParser no código do servidor para analisar o arquivo MD em uma MarkdownSyntaxTree, modifique os nós de sintaxe necessários e chame Save() para gravar o Markdown atualizado. O Aspose.HTML fornece a API de processamento de documentos. A aplicação ASP.NET Core fornece a interface de edição no navegador quando ela for necessária.

4. Um arquivo Markdown editado será idêntico byte a byte fora do texto alterado?

Não conte com a identidade em nível de bytes. A API serializa a árvore de sintaxe novamente como Markdown, portanto a estrutura do documento permanece disponível, mas detalhes de espaços em branco ou formatação podem ser normalizados. Compare a saída salva quando a formatação exata da origem for importante.

5. Posso converter a árvore editada diretamente em PDF com Save()?

Não. O método MarkdownSyntaxTree.Save() grava a saída Markdown. Salve primeiro o arquivo MD editado e depois use o fluxo de conversão de Markdown quando o resultado final precisar ser PDF ou outro formato renderizado.

Fluxos relacionados a Markdown e edição

Continue com uma tarefa específica de Markdown ou edição de documentos.