LBS asp博客系统添加代码高亮插件的方法

LBS asp博客系统添加代码高亮插件的方法,第1张

LBSasp博客系统添加代码高亮插件的方法

我经常在博客里发布一些C#等代码。LBS本身的代码标签功能太弱,需要加强。下面介绍一下要用的高光工具和要修改的文件。

1、代码高亮工具:syntaxhighlighter
  下载地址:http://code.google.com/p/syntaxhighlighter/downloads/list

  2、修改的文件
   global.asp
   class\ubbcode.asp
   style\SyntaxHighlighter.css(新增加的代码高亮CSS文件)
   Scripts\(新增加的文件夹,里面为相关代码高亮的JS文件)

  3、修改方法
  首选把syntaxhighlighter下载到本地把里面的Scripts文件夹复制到你的blog根目录下,把styles文件夹下的SyntaxHighlighter.css放到你blog的styles文件夹下。
  接下来是修改文件,修改最主要的一个文件是class\ubbcode.asp
  class\ubbcode.asp改动内容:

复制代码代码如下:
//BringBackHTMLNewLine<br/>andSpaces
str=str.replace(/\n/g,"<br/>");
str=str.replace(/\$nbsp\$/g," ");
//以上是本身就在的代码段,以下是我新添加的代码段,找对位置添加就可以了
//BreakNadd///////////////////////////////////////////////////////////2007-7-25把代码里的换行换成\n
str=str.replace(/\<CodeBR\>/g,"\n");

此文件还有一处改动,找到//Process[code]tag,这个是codeUBB代码的解析方法,替换为以下内容:
  注意:为避免解析,我把[]换成全角了

复制代码代码如下:
//Process[code=]tag///////////////////////////////////////////////////////BreakNEdit2007-7-25޸
this.formatCode=function(str){
str=str.replace(/\[code\]/ig,"[code=]");
//Cleanupstring
str=str.replace(/\[code=/ig,"[code=");
str=str.replace(/\[\/code\]/ig,"[/code]");
str=str.replace(/\n*\[code=/ig,"[code=");
str=str.replace(/\n*\[\/code\]/ig,"[/code]");
str=str.replace(/\[code=([^]]*)]\n*/ig,"[code=$1]");
str=str.replace(/\[\/code\]\n*/ig,"[/code]");
while(str.indexOf("[code=",0)>-1&&str.indexOf("[/code]",0)>-1){
varintStart,intEnd;
varstrText="";
  varstrAuthor="";
  varstrSource="";
  varstrResult="";
intStart=str.indexOf("[code=",0)+6;
  intEnd=str.indexOf("]",intStart);
if(intStart>5&&intEnd>0){
strAuthor=str.substr(intStart,intEnd-intStart);
}
intStart=intStart+strAuthor.length+1;
intEnd=str.indexOf("[/code]",intStart);
if(intEnd<=intStart)intEnd=intStart;
if(intEnd>intStart){
strText=str.substr(intStart,intEnd-intStart);
    varstrAuthorText=strAuthor.replace(/\"/g,"");
    strAuthorText=strAuthorText.length>1?strAuthorText:"c-sharp";
    varstrContent=this.encUBB(strText.replace(/^+/gm,"").replace(/\:\/\//g,":")).replace(/\n/g,"<CodeBR>")
    //response.write(strContent);
    strResult='<prename="code"class="'+strAuthorText+'">'+strContent.replace(/\<br\s\/\>/ig,'\r\n')+"</pre>";
//strResult='<divclass="code">'+this.encUBB(strText.replace(/^+/gm," ").replace(/\:\/\//g,"://"))+"</div>";
}
intStart=str.indexOf("[code=",0);
intEnd=str.indexOf("[/code]",intStart)+7;
if(intEnd<=intStart+6)intEnd=intStart+7;
strSource=str.substr(intStart,intEnd-intStart);
if(strResult!=""){
str=str.replace(strSource,strResult);
}else{
str=str.replace(strSource,strSource.replace(/\[/g,"["));
}
}
returnstr;
}

修改global.asp文件

复制代码代码如下:
<linkrel="stylesheet"type="text/css"href="<%=theCache.settings["styleSheet"]%>"/>
<!--找到以上代码段,以下面添加如下代码即可。下面的代码段为新添加内容-->
<linktype="text/css"rel="stylesheet"href="Styles/SyntaxHighlighter.css"></link>

把以下内容放在functionpageFooter()中:

复制代码代码如下:
<scriptclass="javascript"src="Scripts/shCore.js"></script>
<scriptclass="javascript"src="Scripts/shBrushCSharp.js"></script>
<scriptclass="javascript"src="Scripts/shBrushPhp.js"></script>
<scriptclass="javascript"src="Scripts/shBrushJScript.js"></script>
<scriptclass="javascript"src="Scripts/shBrushJava.js"></script>
<scriptclass="javascript"src="Scripts/shBrushVb.js"></script>
<scriptclass="javascript"src="Scripts/shBrushSql.js"></script>
<scriptclass="javascript"src="Scripts/shBrushXml.js"></script>
<scriptclass="javascript"src="Scripts/shBrushDelphi.js"></script>
<scriptclass="javascript"src="Scripts/shBrushPython.js"></script>
<scriptclass="javascript"src="Scripts/shBrushRuby.js"></script>
<scriptclass="javascript"src="Scripts/shBrushCss.js"></script>
<scriptclass="javascript"src="Scripts/shBrushCpp.js"></script>
<scriptclass="javascript">
dp.SyntaxHighlighter.ClipboardSwf='Scripts/clipboard.swf';
dp.SyntaxHighlighter.HighlightAll('code');
</script>

Foot部分完整的代码添加效果示例

复制代码代码如下:
//Pagefooter//////////////////////////////////////////////////////////////
functionpageFooter(){
//CaculateExecutionTime
processTime=Number(newDate())-processTime;
%>
<!--高亮-->
<scriptclass="javascript"src="Scripts/shCore.js"></script>
<scriptclass="javascript"src="Scripts/shBrushCSharp.js"></script>
<scriptclass="javascript"src="Scripts/shBrushPhp.js"></script>
<scriptclass="javascript"src="Scripts/shBrushJScript.js"></script>
<scriptclass="javascript"src="Scripts/shBrushJava.js"></script>
<scriptclass="javascript"src="Scripts/shBrushVb.js"></script>
<scriptclass="javascript"src="Scripts/shBrushSql.js"></script>
<scriptclass="javascript"src="Scripts/shBrushXml.js"></script>
<scriptclass="javascript"src="Scripts/shBrushDelphi.js"></script>
<scriptclass="javascript"src="Scripts/shBrushPython.js"></script>
<scriptclass="javascript"src="Scripts/shBrushRuby.js"></script>
<scriptclass="javascript"src="Scripts/shBrushCss.js"></script>
<scriptclass="javascript"src="Scripts/shBrushCpp.js"></script>
<scriptclass="javascript">
dp.SyntaxHighlighter.ClipboardSwf='Scripts/clipboard.swf';
dp.SyntaxHighlighter.HighlightAll('code');
</script>
<!--高亮/end-->
<divid="footer">
<divid="innerFooter">
<!--REMOVALOFTHISCOPYRIGHTWITHOUTPERMISSIONFROMTHEAUTHORWILLVIOLATETHELICENCEYOUAGREEDTOWHENDOWNLOADINGTHISSOFTWARE.-->
<!--CopyrightStart-->
Poweredby<ahref="http:www.voidland.com/"target="_blank">LBSVersion<%=blogVersion%></a>&copy;2003-2005<ahref="http:www.breakN.net">BreakN</a>

</div>
</div>
</div>
</div>
</body>
</html>
<%
connBlog.close();
SessionSession.CodePage=Session("OldCodePage");
if(inDebug)showSQL();
}
%>

最后保存文件,上传到服务器就搞定了。

4、如何使用
  为避免解析,我把[]换成全角了
HTML=[code=html]
XML=[code=xml]
C#=[code=C#]
Javascript=[code=js]
CSS=[code=css]
Java=[code=java]
C++=[code=c]
Delphi=[code=delphi]
PHP=[code=php]
Python=[code=python]
Ruby=[code=ruby]
SQL=[code=sql]
VisualBasic=[code=vb]
转自:http://blog.breakn.net/article.asp?id=349

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/772021.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-03
下一篇 2022-05-03

发表评论

登录后才能评论

评论列表(0条)

保存