Syntaxe MarkdownSharp & GitHub pour le code C#

Existe-t-il un moyen D'obtenir MarkdownSharp (j'utilise le paquet NuGet) pour gérer 'Github flavored Markdown (GFM) ' et surtout la coloration syntaxique du code c#, qui (dans GFM) est écrit comme ceci:

```c#
//my code.....
```

Donc, si je passe du contenu formaté Markdown à MarkDownSharp, en containg un bloc de code C# (comme ci-dessus), je veux qu'il génère du html en surbrillance de syntaxe pour ce code c#. Des idées? Je sais que je peux utiliser les espaces 4 pris en charge pour indiquer un bloc de code, mais encore une fois, je cherche une solution pour l'obtenir pour soutenir Github aromatisé Markdown.

24
demandé sur slang 2011-11-21 15:22:45

3 réponses

J'ai apporté quelques modifications légères à MarkdownSharp qui transformeront les blocs de code clôturés aromatisés github

Https://github.com/KyleGobel/MarkdownSharp-GithubCodeBlocks

```cs
Console.WriteLine("Fenced code blocks ftw!");
```

Deviendrait

<pre><code class='language-cs'>
Console.WriteLine("Fenced code blocks ftw!");
</code></pre>

Il gère les cas que j'avais besoin d'utiliser, il y a probablement beaucoup de cas de bord, n'hésitez pas à fork/change/modify/pull request. Markdown sharp a beaucoup de commentaires et n'est qu'un seul fichier, donc ce n'est pas trop mal à modifier.

15
répondu Kyle Gobel 2014-05-11 17:45:33
6
répondu Daniel 2011-12-03 01:27:20

Comme on peut le lire dans cette post - , GitHub s'appuie sur RedCarpet pour rendre la syntaxe Markdown.

Cependant, Vincent Marti (Coucher du soleil (ex-Upskirt) et RedCarpet responsable) unis que la coloration syntaxique est spécifiquement traitée par Pygments, une bibliothèque python.

Retour à votre préoccupation, je peux penser à plusieurs options pour bénéficier de la coloration syntaxique de C#:

  • essayez de construire une version gérée compilée de Pygments code source merci à IronPython ("les API D'hébergement D'IronPython peuvent être utilisées pour compiler des scripts Python dans des dll, des exécutables de console ou des exécutables Windows.")
  • Port Pygment à C #
  • utilisez un produit de coloration syntaxique différent (par exemple, ColorCode qui est utilisé par Codeplex...)

Alors soit:

  • Fork MarkDownSharp pour le faire accepter les plug-ins
  • de même que ce que fait GitHub, utilisez le managed la coloration syntaxique produit et post traite le code Html généré par MarkDownSharp

En passant, comme alternative à MarkDown, vous voudrez peut-être considérer Moonshine, un wrapper géré au-dessus de Sundown qui est dit "au moins 20 fois plus rapide que MarkdownSharp lorsqu'il est exécuté contre la propre application de référence de MarkdownSharp."

3
répondu nulltoken 2013-03-01 20:26:05