C#代码的MarkdownSharp和GitHub语法

有没有办法让MarkdownSharp(我正在使用NuGet包 )处理’ GitHub风格的Markdown (GFM)’,特别是c#代码的语法高亮,其中(在GFM中)是这样编写的:

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

因此,如果我将Markdown格式化的内容传递给MarkDownSharp,包含C#代码块(如上所述),我希望它为该c#代码生成突出显示的语法html。 有任何想法吗? 我知道我可以使用支持的4个空格来表示代码块,但同样,我正在寻找一个解决方案,让它支持GitHub风格的Markdown。

我对MarkdownSharp做了一些轻微修改,它将改变github风格的fenced代码块

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

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

会成为

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

它处理我需要使用的情况,可能有很多边缘情况,随意分叉/更改/修改/拉取请求。 Markdown sharp有很多评论,只有一个文件,因此修改并不算太糟糕。

结果如下: https : //github.com/danielwertheim/kiwi/wiki/Use-with-Asp.Net-MVC

// d

正如人们可以在这篇文章中看到的那样,GitHub依赖于RedCarpet来呈现Markdown语法。

然而,Vicent Marti( Sundown (前Upskirt)和RedCarpet维护者) 声明语法高亮是由Pygments (一个python库)专门处理的。

回到你的问题,我可以想到几个选项,从C#语法高亮中受益:

  • 感谢IronPython尝试构建Pygments 源代码的编译托管版本( “IronPython的托管API可用于将Python脚本编译为DLL,控制台可执行文件或Windows可执行文件。”
  • 端口Pygment到C#
  • 使用不同的语法突出显示产品(例如,Codeplex使用的ColorCode …)

然后:

  • Fork MarkDownSharp使其接受插件
  • 与GitHub的工作方式类似,使用托管语法高亮产品并对MarkDownSharp生成的Html进行后期处理

顺便说一句,作为MarkDown的替代方案,您可能需要考虑Moonshine ,这是一个在Sundown之上的托管包装器,据说“当与MarkdownSharp自己的基准应用程序运行时,它比MarkdownSharp快至少20倍。”