Domanda

È disponibile una libreria di terze parti per progetti .NET in grado di convertire un documento markdown in lato server HTML? Cioè Ho memorizzato il testo Markdown in un database che deve essere convertito in HTML quando viene visualizzato.

Conosco WMD , ma converte solo il lato client.

È stato utile?

Soluzione

Markdown.NET

Credo che sia quello che questo sito ha usato ad un certo punto.


Modifica

Markdown Sharp è ciò che il sito utilizza ora.

Altri suggerimenti

Un'altra implementazione che sembra guadagnare terreno è MarkdownDeep

Questa è un'implementazione completa sia per C # che per JavaScript. Il MarkdownHelper su Nuget utilizza MarkdownDeep ora invece di MarkdownSharp .

Ho usato entrambi e MarkdownDeep sembra essere più perfettamente funzionante e avere la versione JavaScript è l'ideale per una rapida configurazione lato client.

Guarda Markdown Sharp . È la libreria open source derivata dallo sviluppo di Stack Overflow ed è molto più robusta / sviluppata attivamente rispetto a markdown.net.

Markdown Sharp

Markdown Sharp non è poi così male dal punto di vista del codice, come ha notato John Leidegren, ma non è così facile commentare espressioni regolari o gestire progetti complessi, in termini di OOP più pulito. È decisamente molto veloce e ben supportato. Non ho ancora trovato un approccio basato su Markup-parser. Ecco un esempio:

        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);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top