csharp-reverse-markdown

Cómo convertir HTML a Markdown con C# y ReverseMarkdown

ReverseMarkdown.Net es una biblioteca para .NET que permite permite convertir ficheros HTML en Markdown desde una aplicación escrita en C#.

ReverseMarkdown se basa en un analizador sintáctico para interpretar la estructura del fichero Markdown y generar un árbol de objetos que representa su contenido.

Internamente, la biblioteca usa HtmlAgilityPack (HAP) para generar el DOM del documento HTML, y convertirlo en el equivalente en formato Markdown

Además, ReverseMarkdown dispone de un amplio abanico de opciones para personalizar el proceso de conversión.

Cómo usar ReverseMarkdown.Net

Podemos añadir la biblioteca a un proyecto de .NET fácilmente, a través del paquete Nuget correspondiente.

Install-Package ReverseMarkdown

Aquí tenéis algunos de cómo utilizar ReverseMarkdown.Net extraídos de la documentación de la librería

var converter = new ReverseMarkdown.Converter();

string html = "This a sample <strong>paragraph</strong> from <a href=\"http://test.com\">my site</a>";

string markdown = converter.Convert(html);

Si quisiéramos convertir un fichero existentes, simplemente tenemos que leer antes su contenido y pasárselo al conversor.

string html = File.ReadAllText("documento.html");
var converter = new ReverseMarkdown.Converter();
string markdown = convertidor.Convert(html);

El proceso de configuración puede personalizarse a nuestras necesidades mediante la opción config

var config = new ReverseMarkdown.Config
{
    // Include the unknown tag completely in the result (default as well)
    UnknownTags = Config.UnknownTagsOption.PassThrough,
    // generate GitHub flavoured markdown, supported for BR, PRE and table tags
    GithubFlavored = true,
    // will ignore all comments
    RemoveComments = true,
    // remove markdown output for links where appropriate
    SmartHrefHandling = true
};

var converter = new ReverseMarkdown.Converter(config);

Como vemos, es muy sencillo convertir un fichero HTML ReverseMarkdown.Net es Open Source, y todo el código y documentación está disponible en el repositorio del proyecto en https://github.com/mysticmind/reversemarkdown-net