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做了一些轻微的修改,它将转换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