C#实现了语法加亮open in new window

核心代码来自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

Contributors: FHL