Trabalhando com Markdown em C# (.NET): visão geral de bibliotecas e ferramentas
\n\nMarkdown é uma linguagem de marcação leve, amplamente utilizada para formatar texto em documentações, arquivos README, blogs e chats. No ecossistema C# (.NET), existem várias bibliotecas poderosas que permitem fazer parsing, processar e converter Markdown para HTML e outros formatos. Neste artigo, veremos as ferramentas mais populares, seus recursos e exemplos de uso.
\n\nPor que processar Markdown em C#?
\n\nAplicações web modernas, sistemas de gerenciamento de conteúdo (CMS) e editores de código estão cada vez mais usando Markdown como formato principal de entrada. Em C# (.NET), isso pode ser útil para:
\n- \n
- Geração de conteúdo estático (documentação, blogs) \n
- Implementação de editores WYSIWYG com suporte a Markdown \n
- Importação/exportação de dados de sistemas externos (GitHub, Reddit, Stack Overflow) \n
- Conversão de Markdown para PDF, DOCX ou LaTeX através de HTML intermediário \n
Principais bibliotecas para C# (.NET)
\n\n1. Markdig
\nMarkdig é a biblioteca mais popular e performática para trabalhar com Markdown em .NET. Ela suporta CommonMark, GFM (GitHub Flavored Markdown) e várias extensões: tabelas, listas de tarefas, substituição automática de links, fórmulas matemáticas (via MathJax) e muito mais.
\n\nInstalação:
\n// Via NuGet Package Manager\nInstall-Package Markdig\n\n// Ou via .NET CLI\ndotnet add package Markdig\n\nExemplo de uso:
\nusing Markdig;\n\nstring markdown = @"\n# Título de primeiro nível\n\n**Texto em negrito** e *itálico*.\n\n- Item de lista 1\n- Item de lista 2\n\n> Citação\n\n```csharp\nConsole.WriteLine(""Hello, World!"");\n```";\n\n// Conversão para HTML com extensões GFM\nstring html = Markdown.ToHtml(markdown);\n\nConsole.WriteLine(html);\n\n\nRecursos avançados:
\n// Configuração do pipeline com extensões adicionais\nvar pipeline = new MarkdownPipelineBuilder()\n .UseAdvancedExtensions() // Ativa todas as extensões populares\n .UseMathematics() // Suporte a fórmulas LaTeX\n .UseEmojiAndSmiley() // Emojis :smile:\n .Build();\n\nstring htmlWithExtensions = Markdown.ToHtml(markdown, pipeline);\n\n\n2. CommonMark.NET
\nCommonMark.NET é uma implementação rigorosa da especificação CommonMark (padrão Markdown). A biblioteca é leve, não possui dependências e é ideal para projetos onde a compatibilidade com a implementação de referência é importante.
\n\nInstalação:
\nInstall-Package CommonMark.NET\n\nExemplo de uso:
\nusing CommonMark;\n\nstring markdown = "Olá, **mundo**!";\nstring html = CommonMarkConverter.Convert(markdown);\n\n// Resultado: <p>Olá, <strong>mundo</strong>!</p>\n\n\n3. MarkdownSharp
\nMarkdownSharp é um port do processador Markdown original para C# por Jeff Atwood (cofundador do Stack Overflow). A biblioteca está desatualizada, mas ainda é usada em projetos antigos. Suporta apenas a sintaxe básica, sem extensões.
\n\nInstall-Package MarkdownSharp\n\nusing MarkdownSharp;\n\nvar markdown = new Markdown();\nstring html = markdown.Transform("**Olá**");\n\n\nFerramentas adicionais
\n\n4. HtmlSanitizer (para saída segura)
\nAo converter Markdown para HTML e exibir o resultado em uma página web, é importante limpar o resultado de tags potencialmente perigosas (ataques XSS). Use a biblioteca HtmlSanitizer:
\n\nInstall-Package HtmlSanitizer\n\nusing Ganss.XSS;\n\nvar sanitizer = new HtmlSanitizer();\nstring rawHtml = Markdown.ToHtml("<script>alert('xss')</script>");\nstring safeHtml = sanit Também na biblioteca
Programação Reativa em C# (.NET) — Observable, Rx.NET e LINQ
Monitoramento de aplicações Java: ferramentas e bibliotecas para coleta de métricas
Geração de PDF em JavaScript: biblioteca pdf-lib
Chalk para JavaScript (Node.js): guia completo com exemplos
Envio de SMS em TypeScript: API da biblioteca sms-client-ts