Discuz!NT 1.1高亮代码插件FOR .NET2.0
作者:winson
版本:1.5稳定版
支持网站:
http://bbs.szblogs.com
功能:
为论坛增加高亮代码显示,类似cnblogs的形式
一、1.5版修复的问题:
之前发布的版本由于并未做具体的过滤处理,因此只有以牺牲论坛安全性(去掉了HTML过滤)
为前提的条件下使用,同时为了让代码显示,还将论坛的一些UBB代码功能取消了(如在可视化编辑
状态下不能增加换行),就是在代码编辑状态下,会出现很多HTML代码,让人看起来非常乱
现已对上面问题进行了修复,在完全不影响论坛正常UBB代码和安全性下,也可达到很好的
高亮代码显示效果。因此现在也可以在可视化编辑状态下任意修改或者增加其他页面内容了
同时也修复了一个小BUG,就是有时发代码帖多时,会出现“存储空间不足,无法完成此操作”
的JS错误,虽然不影响正常使用,但看着也不爽,呵呵
但最后一点比较遗憾的就是,现在还没办法在编辑状态中显示代码效果,只有发布后才能显示
二、新增功能:
主要是增加了可记忆上次所选择的代码语言功能,像cnblogs那样,即只要你选择了一个语言后,
下次进来会自动定位到该语言的选中状态
三、安装:
1、全新安装:
1)进入相应的模板,然后修改 _editor 模板
2)、搜索“插入表格”,找到以下代码段:
<
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
>
在其下添加:
<
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模板,在此模板第一行下加入
<%
...
namespace Discuz.Plugin
%>
4)提交此模板的修改,然后更新
editpost、postreply、posttopic、showtopic四个模板文件,即对这几个模板生成新的页面
5)修改生成好的showtopic.aspx文件,在你模板的目录下,找到
post["message"].ToString().Trim()
改为:
Writer.OutputCode(post["message"].ToString().Trim())
这里需要说明的一点是,我已原此
OutputCode方法做了重载,如果你同时安装了LEE的
手写板插件,此方法只需再添加一个模板ID的参数即可,具体方法看手写板插件说明吧
6)修改web.config文件,在< configuration >后面添加以下代码:
<!--
配置代码高亮插件
-->
<
configSections
>
<
section
name
="codeHighlighter"
requirePermission
="false"
type
="ActiproSoftware.CodeHighlighter.CodeHighlighterConfigurationSectionHandler, ActiproSoftware.CodeHighlighter.Net20"
/>
</
configSections
>
<!--
定义代码高亮插件
-->
<
codeHighlighter
>
<
cache
languageTimeout
="3"
/>
<
keywordLinking
enabled
="true"
target
="_blank"
defaultKeywordCollectionKey
="ActiproKeywords"
>
<
keywordCollection
key
="ActiproKeywords"
>
<
explicitKeyword
tokenKey
="IdentifierToken"
patternValue
="Actipro"
url
="http://www.actiprosoftware.com"
caseSensitive
="false"
/>
<
explicitKeyword
tokenKey
="IdentifierToken"
patternValue
="CodeHighlighter"
url
="http://www.codehighlighter.com"
caseSensitive
="false"
/>
</
keywordCollection
>
</
keywordLinking
>
<
languages
>
<
language
key
="BatchFile"
definitionPath
="~/Languages/Lexers/ActiproSoftware.BatchFile.xml"
/>
<
language
key
="C#"
definitionPath
="~/Languages/Lexers/ActiproSoftware.CSharp.xml"
/>
<
language
key
="CSS"
definitionPath
="~/Languages/Lexers/ActiproSoftware.CSS.xml"
/>
<
language
key
="HTML"
definitionPath
="~/Languages/Lexers/ActiproSoftware.HTML.xml"
/>
<
language
key
="INIFile"
definitionPath
="~/Languages/Lexers/ActiproSoftware.INIFile.xml"
/>
<
language
key
="Java"
definitionPath
="~/Languages/Lexers/ActiproSoftware.Java.xml"
/>
<
language
key
="JScript"
definitionPath
="~/Languages/Lexers/ActiproSoftware.JScript.xml"
/>
<
language
key
="Lua"
definitionPath
="~/Languages/Lexers/ActiproSoftware.Lua.xml"
/>
<
language
key
="Pascal"
definitionPath
="~/Languages/Lexers/ActiproSoftware.Pascal.xml"
/>
<
language
key
="Perl"
definitionPath
="~/Languages/Lexers/ActiproSoftware.Perl.xml"
/>
<
language
key
="PHP"
definitionPath
="~/Languages/Lexers/ActiproSoftware.PHP.xml"
/>
<
language
key
="Python"
definitionPath
="~/Languages/Lexers/ActiproSoftware.Python.xml"
/>
<
language
key
="SQL"
definitionPath
="~/Languages/Lexers/ActiproSoftware.SQL.xml"
/>
<
language
key
="VB.NET"
definitionPath
="~/Languages/Lexers/ActiproSoftware.VBDotNet.xml"
/>
<
language
key
="VBScript"
definitionPath
="~/Languages/Lexers/ActiproSoftware.VBScript.xml"
/>
<
language
key
="XML"
definitionPath
="~/Languages/Lexers/ActiproSoftware.XML.xml"
/>
</
languages
>
<
lineNumberMargin
foreColor
="Teal"
paddingCharacter
=" "
visible
="true"
/>
<
outlining
enabled
="true"
imagesPath
="~/Images/OutliningIndicators/"
/>
<
spacesInTabs
count
="4"
/>
</
codeHighlighter
>
5)将附件中
全新安装目录里的文件均上传到你的论坛目录就OK啦!
2、升级安装:
1)先按上面全新安装的3-5的步骤安装,同时可以删除在_editor模板之前版本所增加的JS代码:
<
script
type
="text/javascript"
>
...
var message=document.getElementById('posteditor_textarea').value;
if(message.indexOf("id=bbs.szblogs.com")>0)
document.getElementById('iscode').value='1';
</
script
>
2)恢复原来论坛的安全性,你可将论坛默认的Discuz.ForumPage.dll、bbcode.js复盖你的文件,或者使用我的附件里
升级安装目录里的文件
3)将
升级安装目录里的文件上传到你的论坛相应目录,安装完成!
另附件还有一个
Discuz.Plugin.CodeHighWrite
项目,即生成Discuz.Plugin.Write.dll文件的,可自行根据需要修改,有什么问题欢迎到本论坛提出
下载:
http://files.cnblogs.com/winsonet/CodeHigh.rar