Pregunta

¿Hay una biblioteca de terceros disponible para proyectos .NET que pueda convertir un documento de rebajas en el lado del servidor html? Es decir. He almacenado el texto Markdown en una base de datos que debe convertirse a html cuando se muestra.

Sé sobre WMD , pero solo convierte al lado del cliente.

¿Fue útil?

Solución

Markdown.NET

Creo que eso es lo que este sitio usó en algún momento.


Editar

Markdown Sharp es lo que el sitio usa ahora.

Otros consejos

Otra implementación que parece estar ganando terreno es MarkdownDeep

Esta es una implementación completa para C # y JavaScript. El MarkdownHelper en Nuget está utilizando MarkdownDeep ahora en lugar de MarkdownSharp .

He usado ambos y MarkdownDeep parece ser más funcional y tener la versión de JavaScript es ideal para configuraciones rápidas del lado del cliente.

Consulte Markdown Sharp . Es la biblioteca de código abierto que resultó del desarrollo de Stack Overflow y es mucho más robusta / desarrollada activamente que markdown.net.

Markdown Sharp

Markdown Sharp no es tan malo en cuanto al código, como señaló John Leidegren, simplemente no es tan fácil comentar expresiones regulares o administrar proyectos complejos, dentro de una OOP más limpia. Definitivamente es muy rápido y está bien soportado. Todavía no he encontrado un enfoque basado en Markup-parser. Aquí hay un ejemplo:

        pattern = string.Format(@"
            (?:
                (?<=\n\n)           # Starting after a blank line
                |                   # or
                \A\n?               # the beginning of the doc
            )
            (                       # save in $1
                [ ]{{0, {0}}}
                <(hr)               # start tag = $2
                \b                  # word break
                ([^<>])*?           #
                /?>                 # the matching end tag
                [ \t]*
                (?=\n{{2,}}|\Z)     # followed by a blank line or end of document
            )", tabWidth - 1);
        text = Regex.Replace(text, pattern, new MatchEvaluator(HtmlEvaluator), RegexOptions.IgnorePatternWhitespace);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top