是否有一个使用C#编写的开源项目,它可以以类似于shjs的方式将语法高亮显示应用于多种语言?
这是一些伪代码:
public string HighlightSourceInHTML(string html) {
return Highlighter.HighlightHTML(html);
}
输入HTML的含义如下:
<!DOCTYPE html>
<html>
<head>...</head>
<body>
<p>Here is a function written using C#:</p>
<pre class="source lang-csharp">public void foo(int a, int b) {
return a + b;
}</pre>
<p>Here is the same function written using JavaScript:</p>
<pre class="source lang-javascript">function foo(a, b) {
return a + b;
}</pre>
</body>
</html>
上述内容基本上会返回整个HTML文件,其中所有pre
个带有source
个元素的元素都会被突出显示语法
注意:这不适用于服务器端脚本,而是性能不太重要的离线应用程序的一部分。
答案 0 :(得分:3)
找到一个!我的硬盘上有一个一直存在于名为“ColorizerLibrary.dll”的托管DLL中的Sandcastle帮助文件生成器(SHFB)文件夹中。
只需添加对此DLL的引用,语法着色就变得非常简单。
以下是一个用法示例:
ColorizerLibrary.CodeColorizer colorizer = new ColorizerLibrary.CodeColorizer(
@"C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\Colorizer\highlight.xml",
@"C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\Colorizer\highlight.xsl"
);
colorizer.Init();
string htmlText = "<!DOCTYPE html><html><head><title>Test Page</title></head><body><pre codelanguage=\"CSharp\">public string Foo(string a, int b = 4) {\n\treturn a + b * 3;\n}</pre></body></html>";
return colorizer.ProcessAndHighlightText(htmlText);
注意:请记住链接到head
中的CSS文件,以显示语法颜色。
已添加:请从此处查找ColorizerLibrary
的源代码:http://shfb.codeplex.com/SourceControl/changeset/view/98645#1672960
答案 1 :(得分:1)