Discuz7使用syntaxhighlighter_2.0.320实现代码高亮

Discuz7使用syntaxhighlighter_2.0.320实现代码高亮
一、修改./templates/default/discuzcode.htm文件
在function tpl_codedisp($discuzcodes, $code) 函数前增加如下函数
function tpl_codecsh($discuzcodes, $code, $lang) {
}–>
<!–{block return}–><code id="code$discuzcodes[codecount]"><pre class="brush: $lang">$code</pre></code><!–{/block}–>
<!–{eval return $return;}–>
<!–{eval
}
二、修改./templates/你的风格/header.htm
在</head>前添加:
<link href="plugins/syntaxhighlighter/styles/shCore.css" type="text/css" rel="stylesheet" />
<link href="plugins/syntaxhighlighter/styles/shThemeDefault.css" type="text/css" rel="stylesheet" />
<script src="plugins/syntaxhighlighter/src/shCore.js" type="text/javascript"></script>
<script class="javascript">
 SyntaxHighlighter.config.clipboardSwf = 'plugins/syntaxhighlighter/scripts/clipboard.swf';
</script>
三、修改./templates/你的风格/footer.htm
在</body>前添加:
<script class="javascript" src="plugins/syntaxhighlighter/src/shCore.js"></script>
<script class="javascript" src="plugins/syntaxhighlighter/scripts/shBrushAS3.js"></script>
<script class="javascript" src="plugins/syntaxhighlighter/scripts/shBrushBash.js"></script>
<script class="javascript" src="plugins/syntaxhighlighter/scripts/shBrushCpp.js"></script>
<script class="javascript" src="plugins/syntaxhighlighter/scripts/shBrushCSharp.js"></script>
<script class="javascript" src="plugins/syntaxhighlighter/scripts/shBrushCss.js"></script>
<script class="javascript" src="plugins/syntaxhighlighter/scripts/shBrushDelphi.js"></script>
<script class="javascript" src="plugins/syntaxhighlighter/scripts/shBrushDiff.js"></script>
<script class="javascript" src="plugins/syntaxhighlighter/scripts/shBrushGroovy.js"></script>
<script class="javascript" src="plugins/syntaxhighlighter/scripts/shBrushJava.js"></script>
<script class="javascript" src="plugins/syntaxhighlighter/scripts/shBrushJavaFX.js"></script>
<script class="javascript" src="plugins/syntaxhighlighter/scripts/shBrushJScript.js"></script>
<script class="javascript" src="plugins/syntaxhighlighter/scripts/shBrushPerl.js"></script>
<script class="javascript" src="plugins/syntaxhighlighter/scripts/shBrushPhp.js"></script>
<script class="javascript" src="plugins/syntaxhighlighter/scripts/shBrushPlain.js"></script>
<script class="javascript" src="plugins/syntaxhighlighter/scripts/shBrushPowerShell.js"></script>
<script class="javascript" src="plugins/syntaxhighlighter/scripts/shBrushPython.js"></script>
<script class="javascript" src="plugins/syntaxhighlighter/scripts/shBrushRuby.js"></script>
<script class="javascript" src="plugins/syntaxhighlighter/scripts/shBrushScala.js"></script>
<script class="javascript" src="plugins/syntaxhighlighter/scripts/shBrushSql.js"></script>
<script class="javascript" src="plugins/syntaxhighlighter/scripts/shBrushVb.js"></script>
<script class="javascript" src="plugins/syntaxhighlighter/scripts/shBrushXml.js"></script>
<script class="javascript">
 SyntaxHighlighter.config.clipboardSwf = 'plugins/syntaxhighlighter/scripts/clipboard.swf';
 SyntaxHighlighter.config.stripBrs=true;
 SyntaxHighlighter.all();
</script>
四、修改./include/discuzcode.func.php
在function codedisp($code)函数下面添加如下函数
function codedpdisp($code, $lang) {
 global $discuzcodes;
 $discuzcodes['pcodecount']++;
 $code = htmlspecialchars(str_replace('//"', '"', preg_replace("/^[/n/r]*(.+?)[/n/r]*$/is", "//1", $code)));
 $discuzcodes['codehtml'][$discuzcodes['pcodecount']] = tpl_codecsh($discuzcodes, $code, $lang);
 $discuzcodes['codecount']++;
 return "[/tDISCUZ_CODE_$discuzcodes[pcodecount]/t]";
}
在$message = preg_replace("//s*/[code/](.+?)/[//code/]/s*/ies", "codedisp('//1')", $message);上面增加如下代码
$message = preg_replace("//s*/[code=/"(xml|xhtml|xslt|html|vb|vbnet|sql|scala|ruby|rails|ror|powershell|ps|text|plain|php|py|python|perl|Perl|pl|js|jscript|javascript|jfx|javafx|groovy|java|diff|patch|delphi|pascal|css|c#|c-sharp|csharp|cpp|c|bash|shell|actionscript3|as3){1}/"/](.+?)/[//code/]/s*/ies", "codedpdisp('//2', '//1')", $message);
把return $htmlon ? $message : nl2br(str_replace(array("/t", '   ', '  '), array('&nbsp; &nbsp; &nbsp; &nbsp; ', '&nbsp; &nbsp;', '&nbsp;&nbsp;'), $message));替换为
$message = $htmlon ? $message : nl2br(str_replace(array("/t", '   ', '  '), array('&nbsp; &nbsp; &nbsp; &nbsp; ', '&nbsp; &nbsp;', '&nbsp;&nbsp;'), $message));
    for($i = 0; $i <= $discuzcodes['pcodecount']; $i++) {
        $message = str_replace("[/tDISCUZ_CODE_$i/t]", $discuzcodes['codehtml'][$i], $message);
}
    return $message;

五、修改./include/js/post.js
在</textarea>';下面增加如下代码
if (cmd == 'code') {
                str += '<br />请选择语言: <select id="' + ctrlid + '_param_2">'
     + '<option value="">-=程序语言=-</option>'
                    + '<option value="php">PHP</option>'
                    + '<option value="css">CSS</option>'
                    + '<option value="xhtml">XML/XHTML</option>'
                    + '<option value="javascript">Javascript</option>'
                    + '<option value="sql">SQL</option>'
                    + '<option value="csharp">C#</option>'
                    + '<option value="java">Java</option>'
                    + '<option value="cpp">C/C++</option>'
                    + '</select>';
            }
别的语言根据需要和上面的列表进行添加

if(wysiwyg) {
    if(cmd == 'code') {
     text = preg_replace(['<', '>'], ['<', '>'], text);
    }
    text = text.replace(//r?/n/g, '<br />');
   }下面增加如下代码
if (cmd == 'code' && $(ctrlid + '_param_2').value != '') {
                opentag = '[code="' + $(ctrlid + '_param_2').value + '"]';
                text = "/n" + text + "/n";
            }
六、如果需要汉化修改./plugins/syntaxhighlighter/src/shCore.js相关数据并根据论坛的编码修改成相对应的编码。

 

七、效果图(下载地址http://download.csdn.net/source/1547749

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值