MarkdownSharp,c#代码的GitHub语法

本文关键字:GitHub 语法 代码 MarkdownSharp | 更新日期: 2023-09-27 18:15:21

是否有办法让MarkdownSharp(我使用NuGet包)来处理'GitHub口味的Markdown (GFM)',特别是c#代码的语法高亮显示,(在GFM中)是这样写的:

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

所以,如果我传递Markdown格式的内容给MarkDownSharp,包含一个c#代码块(如上所述),我希望它为该c#代码生成语法高亮的html。什么好主意吗?我知道我可以使用支持的4个空格来指示代码块,但是再次,我正在寻求一个解决方案,让它支持GitHub风味的Markdown。

MarkdownSharp,c#代码的GitHub语法

我对MarkdownSharp做了一些轻微的修改,它将转换github风格的围栏代码块

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

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

将成为

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

它处理我需要使用的情况,可能有很多边缘情况,尽管,请随意分叉/更改/修改/拉请求。Markdown sharp有很多注释,而且都是一个文件,所以修改起来还不错。

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

//D

从这篇文章中可以看到,GitHub依赖RedCarpet来渲染Markdown语法。

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

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

  • 借助IronPython,尝试构建一个已编译的托管版本的pyents源代码("IronPython的托管api可用于将Python脚本编译为dll,控制台可执行文件或Windows可执行文件。")
  • 到c#的端口转换
  • 使用不同的语法高亮产品(例如,Codeplex使用的ColorCode…)
然后

:

  • Fork MarkDownSharp使其接受插件
  • 与GitHub类似,使用管理语法高亮产品和后期处理MarkDownSharp生成的Html
顺便说一下,作为MarkDown的替代方案,你可能会考虑Moonshine,这是一个位于Sundown之上的托管包装器,据说"在MarkdownSharp自己的基准应用程序上运行时,它至少比MarkdownSharp快20倍。"