[原创]Discuz!NT1.1高亮代码插件1.5稳定版!

Discuz!NT 1.1高亮代码插件FOR .NET2.0
作者:winson
版本:1.5稳定版
支持网站: http://bbs.szblogs.com
功能:
为论坛增加高亮代码显示,类似cnblogs的形式

一、1.5版修复的问题:

        之前发布的版本由于并未做具体的过滤处理,因此只有以牺牲论坛安全性(去掉了HTML过滤)
为前提的条件下使用,同时为了让代码显示,还将论坛的一些UBB代码功能取消了(如在可视化编辑
状态下不能增加换行),就是在代码编辑状态下,会出现很多HTML代码,让人看起来非常乱

        现已对上面问题进行了修复,在完全不影响论坛正常UBB代码和安全性下,也可达到很好的
高亮代码显示效果。因此现在也可以在可视化编辑状态下任意修改或者增加其他页面内容了 smile.gif

        同时也修复了一个小BUG,就是有时发代码帖多时,会出现“存储空间不足,无法完成此操作”
的JS错误,虽然不影响正常使用,但看着也不爽,呵呵

        但最后一点比较遗憾的就是,现在还没办法在编辑状态中显示代码效果,只有发布后才能显示

二、新增功能:

    主要是增加了可记忆上次所选择的代码语言功能,像cnblogs那样,即只要你选择了一个语言后,
下次进来会自动定位到该语言的选中状态

三、安装:

1、全新安装:
1)进入相应的模板,然后修改 _editor 模板

2)、搜索“插入表格”,找到以下代码段:

None.gif < td >< div class ="editor_buttonnormal" id ="posteditor_cmd_table" onclick ="discuzcode('table')" onMouseOver ="buttonContext(this, 'mouseover')" onMouseOut ="buttonContext(this, 'mouseout')" >< img src ="editor/images/table.gif" width ="21" height ="20" title ="插入表格" alt ="插入表格" /></ div ></ td >


在其下添加:

None.gif < td >< div class ="editor_buttonnormal" id ="posteditor_cmd_wrap0_code" onclick ="discuzcode('mycode')" onMouseOver ="buttonContext(this, 'mouseover')" onMouseOut ="buttonContext(this, 'mouseout')" >< img src ="editor/images/insertcode.gif" width ="21" height ="20" title ="插入高亮代码" alt ="插入高亮代码" ></ div ></ td >


3)修改 showtopic模板,在此模板第一行下加入

ExpandedBlockStart.gif ContractedBlock.gif <% ... namespace Discuz.Plugin %>


4)提交此模板的修改,然后更新 editpost、postreply、posttopic、showtopic四个模板文件,即对这几个模板生成新的页面

5)修改生成好的showtopic.aspx文件,在你模板的目录下,找到

None.gif post["message"].ToString().Trim()


改为:

None.gif Writer.OutputCode(post["message"].ToString().Trim())


这里需要说明的一点是,我已原此 OutputCode方法做了重载,如果你同时安装了LEE的 手写板插件,此方法只需再添加一个模板ID的参数即可,具体方法看手写板插件说明吧 smile.gif

6)修改web.config文件,在< configuration >后面添加以下代码:

None.gif <!-- 配置代码高亮插件 -->
None.gif
< configSections >
None.gif
< section name ="codeHighlighter" requirePermission ="false" type ="ActiproSoftware.CodeHighlighter.CodeHighlighterConfigurationSectionHandler, ActiproSoftware.CodeHighlighter.Net20" />
None.gif
</ configSections >
None.gif
<!-- 定义代码高亮插件 -->
None.gif
< codeHighlighter >
None.gif
< cache languageTimeout ="3" />
None.gif
< keywordLinking enabled ="true" target ="_blank" defaultKeywordCollectionKey ="ActiproKeywords" >
None.gif
< keywordCollection key ="ActiproKeywords" >
None.gif
< explicitKeyword tokenKey ="IdentifierToken" patternValue ="Actipro" url ="http://www.actiprosoftware.com" caseSensitive ="false" />
None.gif
< explicitKeyword tokenKey ="IdentifierToken" patternValue ="CodeHighlighter" url ="http://www.codehighlighter.com" caseSensitive ="false" />
None.gif
</ keywordCollection >
None.gif
</ keywordLinking >
None.gif
< languages >
None.gif
< language key ="BatchFile" definitionPath ="~/Languages/Lexers/ActiproSoftware.BatchFile.xml" />
None.gif
< language key ="C#" definitionPath ="~/Languages/Lexers/ActiproSoftware.CSharp.xml" />
None.gif
< language key ="CSS" definitionPath ="~/Languages/Lexers/ActiproSoftware.CSS.xml" />
None.gif
< language key ="HTML" definitionPath ="~/Languages/Lexers/ActiproSoftware.HTML.xml" />
None.gif
< language key ="INIFile" definitionPath ="~/Languages/Lexers/ActiproSoftware.INIFile.xml" />
None.gif
< language key ="Java" definitionPath ="~/Languages/Lexers/ActiproSoftware.Java.xml" />
None.gif
< language key ="JScript" definitionPath ="~/Languages/Lexers/ActiproSoftware.JScript.xml" />
None.gif
< language key ="Lua" definitionPath ="~/Languages/Lexers/ActiproSoftware.Lua.xml" />
None.gif
< language key ="Pascal" definitionPath ="~/Languages/Lexers/ActiproSoftware.Pascal.xml" />
None.gif
< language key ="Perl" definitionPath ="~/Languages/Lexers/ActiproSoftware.Perl.xml" />
None.gif
< language key ="PHP" definitionPath ="~/Languages/Lexers/ActiproSoftware.PHP.xml" />
None.gif
< language key ="Python" definitionPath ="~/Languages/Lexers/ActiproSoftware.Python.xml" />
None.gif
< language key ="SQL" definitionPath ="~/Languages/Lexers/ActiproSoftware.SQL.xml" />
None.gif
< language key ="VB.NET" definitionPath ="~/Languages/Lexers/ActiproSoftware.VBDotNet.xml" />
None.gif
< language key ="VBScript" definitionPath ="~/Languages/Lexers/ActiproSoftware.VBScript.xml" />
None.gif
< language key ="XML" definitionPath ="~/Languages/Lexers/ActiproSoftware.XML.xml" />
None.gif
</ languages >
None.gif
< lineNumberMargin foreColor ="Teal" paddingCharacter =" " visible ="true" />
None.gif
< outlining enabled ="true" imagesPath ="~/Images/OutliningIndicators/" />
None.gif
< spacesInTabs count ="4" />
None.gif
</ codeHighlighter >


5)将附件中 全新安装目录里的文件均上传到你的论坛目录就OK啦!

2、升级安装:

1)先按上面全新安装的3-5的步骤安装,同时可以删除在_editor模板之前版本所增加的JS代码:

ExpandedBlockStart.gif ContractedBlock.gif < script type ="text/javascript" > ...
InBlock.gif
var message=document.getElementById('posteditor_textarea').value;
InBlock.gif
if(message.indexOf("id=bbs.szblogs.com")>0)
InBlock.gif document.getElementById(
'iscode').value='1';
ExpandedBlockEnd.gif
</ script >


2)恢复原来论坛的安全性,你可将论坛默认的Discuz.ForumPage.dll、bbcode.js复盖你的文件,或者使用我的附件里 升级安装目录里的文件

3)将 升级安装目录里的文件上传到你的论坛相应目录,安装完成!


另附件还有一个 Discuz.Plugin.CodeHighWrite 项目,即生成Discuz.Plugin.Write.dll文件的,可自行根据需要修改,有什么问题欢迎到本论坛提出lol.gif

下载:
http://files.cnblogs.com/winsonet/CodeHigh.rar

转载于:https://www.cnblogs.com/winsonet/archive/2007/08/09/849169.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值