参考了些网上的文章,然后自己改了改,实现了动态、静态模式下的代码高亮显示
1.首先下载 SyntaxHighlighter这个代码高亮渲染插件(用WORDPRESS时也用的它,呵呵)
http://code.google.com/p/syntaxhighlighter/
2.下载解压后将整个文件夹上传到博客plugins文件夹中
3.在\head.asp中的<head></head>中插入代码
<link type="text/css" rel="stylesheet" href="plugins/SyntaxHighlighter/Styles/SyntaxHighlighter.css"></link>
如果要在全静态化模式下实现高亮显示,则还需在\template\static.htm中插入这段代码
4.在\footer.asp文件最后插入代码
<script type="text/javascript" src="plugins/SyntaxHighlighter/Scripts/shCore.js"></script>
<script type="text/javascript" src="plugins/SyntaxHighlighter/Scripts/shBrushCss.js"></script>
<script type="text/javascript" src="plugins/SyntaxHighlighter/Scripts/shBrushPhp.js"></script>
<script type="text/javascript" src="plugins/SyntaxHighlighter/Scripts/shBrushJScript.js"></script>
<script type="text/javascript" src="plugins/SyntaxHighlighter/Scripts/shBrushVb.js"></script>
<script type="text/javascript" src="plugins/SyntaxHighlighter/Scripts/shBrushSql.js"></script>
<script type="text/javascript">
dp.SyntaxHighlighter.ClipboardSwf = 'plugins/SyntaxHighlighter/Scripts/clipboard.swf';
dp.SyntaxHighlighter.HighlightAll('code');
</script>
注意,这里面调用了不同代码的渲染文件如VB对应的是shBrushVb.js,PHP对应的是shBrushPhp.js,如需要添加其它语言支持,可以在这里对照添加
5.最后在/common/ubbcode.asp中 re.Pattern="\[code\](.*?)\[\/code\]" 语句上面添加:
re.Pattern= "\[codes=(.[^\]]*)\](.*?)\[\/codes\]"
Set strMatchs=re.Execute(strContent)
For Each strMatch in strMatchs
tmpStr1=strMatch.SubMatches(0)
tmpStr2=Replace(strMatch.SubMatches(1),"<br/>",vbCrLf)
strContent=replace(strContent,strMatch.Value,"<pre name=""code"" class=""" & tmpStr1 & """>" & tmpStr2 & "</pre>" ,1,-1,0)
Next
完成!
在UBB编辑模式下使用
[codes=语言]...代码...[/codes]
例如:
[codes=cpp]
int main()
{
cout<<"Hello World!";
}
[/codes]
具体效果可以参见我的博客
http://www.miaoever.cn