C#实现了语法加亮
核心代码来自AspNetForums.
StringWriter textBuffer = new StringWriter();
Match match = Regex.Match(HTMLStr, @"\", RegexOptions.IgnoreCase | RegexOptions.Compiled);
if (match == null)
{
Response.Write(HTMLStr);
return;
}
string codeType = match.Groups["codeType"].Value;
string content = match.Groups["codeContent"].Value;
if (codeType == String.Empty || content == String.Empty)
{
Response.Write(HTMLStr);
return;
}
// MessageBox.Show(codeType);
// MessageBox.Show(content);
string[] sr = content.Split(Convert.ToChar("\n"));
if (codeType == "C#")
{
textBuffer.Write("<Csharp>\r\n");
foreach (string sourceLine in sr)
{
textBuffer.Write(FixCSLine(sourceLine));
textBuffer.Write("\r\n");
}
textBuffer.Write("</Csharp>");
}
else if (codeType == "JScript.Net")
{
textBuffer.Write("<JScript.Net>\r\n");
foreach (string sourceLine in sr)
{
textBuffer.Write(FixJSLine(sourceLine));
textBuffer.Write("\r\n");
}
textBuffer.Write("</JScript.Net>");
}
else if (codeType == "VB")
{
textBuffer.Write("<VB>\r\n");
foreach (string sourceLine in sr)
{
textBuffer.Write(FixVBLine(sourceLine));
textBuffer.Write("\r\n");
}
textBuffer.Write("</VB>");
}
效果如下:
http://forums.coder.cn/forum/topic.aspx?author_id=2&topic_id=11&category_id=9