Trabalhando com Markdown em C# (.NET): bibliotecas e exemplos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Trabalhando com Markdown em C# (.NET): melhores bibliotecas e exemplos de uso



Markdown é uma linguagem de marcação leve que permite formatar texto usando símbolos simples. É amplamente utilizado para escrever documentação, arquivos README, postagens em blogs e mensagens em fóruns. No ecossistema C# (.NET), existem várias bibliotecas poderosas para análise, conversão e geração de Markdown. Neste artigo, veremos as principais ferramentas e mostraremos como trabalhar com elas.



Bibliotecas populares para trabalhar com Markdown em C#



As soluções mais requisitadas no .NET:



  • Markdig — biblioteca moderna, rápida e totalmente compatível com a especificação CommonMark. Suporta extensões (tabelas, tachado, emoji, diagramas, etc.).
  • MarkdownSharp — parser leve do Stack Overflow. Simples, mas não suporta CommonMark e muitas extensões.
  • CommonMark.NET — implementação oficial da especificação CommonMark. Adequado para compatibilidade rigorosa.


Neste guia, focaremos no Markdig, pois ele é o padrão de facto para projetos .NET modernos.



Instalação do Markdig



Adicione o pacote via NuGet Package Manager ou .NET CLI:



dotnet add package Markdig


Ou via Package Manager Console:



Install-Package Markdig


Uso básico: conversão de Markdown para HTML



O cenário mais simples é converter uma string Markdown em HTML. O Markdig faz isso em uma linha:



using Markdig;

string markdown = "# Título 1

Este é **texto em negrito** e *itálico*.

- Item de lista 1- Item de lista 2";

string html = Markdown.ToHtml(markdown);

Console.WriteLine(html);


Resultado:



<h1>Título 1</h1><p>Este é <strong>texto em negrito</strong> e <em>itálico</em>.</p><ul><li>Item de lista 1</li><li>Item de lista 2</li></ul>


Trabalhando com extensões do Markdig



O Markdig suporta várias extensões. Para usá-las, é necessário criar um pipeline:



using Markdig;using Markdig.Extensions.Tables;

var pipeline = new MarkdownPipelineBuilder() .UseAdvancedExtensions() // inclui todas as extensões principais .Build();

string markdown = "| Cabeçalho 1 | Cabeçalho 2 ||-------------|-------------|| Célula 1 | Célula 2 |";

string html = Markdown.ToHtml(markdown, pipeline);

Console.WriteLine(html);


Este código gerará uma tabela HTML. É possível ativar extensões individuais: .UseTables(), .UseEmojiAndSmiley(), .UseTaskLists() e outras.



Convertendo HTML de volta para Markdown



A conversão reversa (HTML → Markdown) não está incluída no pacote padrão do Markdig, mas pode-se usar a biblioteca ReverseMarkdown:



dotnet add package ReverseMarkdown


using ReverseMarkdown;

var converter = new Converter();string html = "<h1>Olá, mundo!</h1><p>Isto é <strong>importante</strong></p>";string markdown = converter.Convert(html);

Console.WriteLine(markdown);


Trabalhando com arquivos Markdown



Frequentemente, o Markdown é armazenado em arquivos. Exemplo de leitura e conversão:



using Markdig;

string filePath = "documento.md";string markdownContent = File.ReadAllText(filePath);string htmlContent = Markdown.ToHtml(markdownContent);

File.WriteAllText("saida.html", htmlContent);


Criando HTML avançado com pipeline personalizado



Você pode ajustar o pipeline para tarefas específicas:



var pipeline = new MarkdownPipelineBuilder()                    

Recommendations