Trabajo con Markdown en C# (.NET): bibliotecas y ejemplos

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Trabajo con Markdown en C# (.NET): mejores bibliotecas y ejemplos de uso



Markdown es un lenguaje de marcado ligero que permite formatear texto con símbolos simples. Se utiliza ampliamente para escribir documentación, archivos README, publicaciones en blogs y mensajes en foros. En el ecosistema de C# (.NET) existen varias bibliotecas potentes para analizar, convertir y generar Markdown. En este artículo revisaremos las herramientas principales y mostraremos cómo trabajar con ellas.



Bibliotecas populares para trabajar con Markdown en C#



Las soluciones más demandadas en .NET:



  • Markdig — biblioteca moderna, rápida y totalmente compatible con la especificación CommonMark. Soporta extensiones (tablas, tachado, emoji, diagramas, etc.).
  • MarkdownSharp — analizador ligero de Stack Overflow. Simple, pero no soporta CommonMark ni muchas extensiones.
  • CommonMark.NET — implementación oficial de la especificación CommonMark. Ideal para una compatibilidad estricta.


En esta guía nos centraremos en Markdig, ya que es el estándar de facto para proyectos .NET modernos.



Instalación de Markdig



Agregue el paquete a través de NuGet Package Manager o .NET CLI:



dotnet add package Markdig


O a través de Package Manager Console:



Install-Package Markdig


Uso básico: conversión de Markdown a HTML



El escenario más simple es convertir una cadena Markdown a HTML. Markdig lo hace en una línea:



using Markdig;

string markdown = "# Título 1

Este es **texto en negrita** y *cursiva*.

- Elemento de lista 1- Elemento de lista 2";

string html = Markdown.ToHtml(markdown);

Console.WriteLine(html);


Resultado:



<h1>Título 1</h1><p>Este es <strong>texto en negrita</strong> y <em>cursiva</em>.</p><ul><li>Elemento de lista 1</li><li>Elemento de lista 2</li></ul>


Trabajo con extensiones de Markdig



Markdig soporta múltiples extensiones. Para usarlas, debe crear un pipeline:



using Markdig;using Markdig.Extensions.Tables;

var pipeline = new MarkdownPipelineBuilder() .UseAdvancedExtensions() // incluye todas las extensiones principales .Build();

string markdown = "| Título 1 | Título 2 ||----------|----------|| Celda 1 | Celda 2 |";

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

Console.WriteLine(html);


Este código generará una tabla HTML. Se pueden conectar extensiones individuales: .UseTables(), .UseEmojiAndSmiley(), .UseTaskLists() y otras.



Conversión de HTML de vuelta a Markdown



La conversión inversa (HTML → Markdown) no está incluida en la distribución estándar de Markdig, pero se puede usar la biblioteca ReverseMarkdown:



dotnet add package ReverseMarkdown


using ReverseMarkdown;

var converter = new Converter();string html = "<h1>¡Hola, mundo!</h1><p>Esto es <strong>importante</strong></p>";string markdown = converter.Convert(html);

Console.WriteLine(markdown);


Trabajo con archivos Markdown



A menudo Markdown se almacena en archivos. Ejemplo de lectura y conversión:



using Markdig;

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

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


Creación de HTML extendido con pipeline personalizado



Puede ajustar finamente el pipeline para tareas específicas:



var pipeline = new MarkdownPipelineBuilder()                    

Recommendations