• 代码高亮插件SyntaxHighlighter


    一 

    • 第一

          解压压缩包,scripts文件夹中包含了各种语言的JS文件,在styles文件夹中是各种显示高亮的主题

    • 第二

      如何使用?首先要引入其核心javascript文件shCore.js和核心CSS文件shCore.css这两个是必选要引入的。其次引入你要高亮的语言JS,比如我想高亮显示的是C#,那么必须引入在scripts文件夹中的shBrushCSharp.js最后引入高亮显示的主题CSS,默认的为shThemeDefault.css

    • 第三

          下面以高亮显示JavaScript代码为例讲解。

         引入JS和CSS文件之后还要在页面上写相关代码。

          JavaScript代码

        <script type="text/javascript">

            SyntaxHighlighter.config.clipboardSwf = 'scripts/clipboard.swf';

            SyntaxHighlighter.all();

        </script>

          HTML代码:

        <pre class="brush: javascript;">

        var myCustomFn = function ShowFn() {

            Ext.Msg.alert('消息框', "你调用了客户端的JavaScript函数");

        }

    </pre>

    注意:HTML代码显示在标签为<pre></pre>中,syntaxhighlighter默认会自动查找<pre />标签,其中标签可自定义,可以是<div>,<ul >,<ol >等等,只需要加上如下配置代码:

    SyntaxHighlighter.config.tagName = 'div';

    同时根椐class类名选择不同的格式刷,由于以javascript为实例,因此格式刷配置为javascript,如上:class="brush: javascript;"

    • 第五

      鼠标移动到代码区域时会显示一个工具条,分别是显示代码,复制代码,打印代码和帮助四个功能,默认为英文,改中文设置如下:

        <script type="text/javascript">

            SyntaxHighlighter.config.clipboardSwf = 'scripts/clipboard.swf';

            SyntaxHighlighter.config.strings = {

                expandSource : '展开代码',

                viewSource : '查看代码',

                copyToClipboard : '复制代码',

                copyToClipboardConfirmation : '代码复制成功',

                print : '打印',

                help: '?',

                alert: '语法高亮 ',

                noBrush: '不能找到刷子: ',

                brushNotHtmlScript: '刷子没有配置html-script选项',

                aboutDialog: '<div></div>'

            };

            SyntaxHighlighter.all();

        </script>

    看下最终效果展示:

    最后该插件下载地址: /Files/meiqunfeng/代码高亮插件syntaxhighlighter_2.1.364.zip

    二   

    1、下载

        SyntaxHighlighter 3.0.83 : http://alexgorbatchev.com/SyntaxHighlighter

    2、配置

        (1) SyntaxHighlighter解析的默认标签,默认为pre

    复制代码代码如下:

    SyntaxHighlighter.config.tagName="div";

        (2) 去除HTML换行标记
            如果您的软件会在每行末尾添加< br /> 标记,此选项允许您忽略这些标记。
            shCore.js中实现代码为:

    复制代码代码如下:

            if (sh.config.stripBrs == true)
                str = str.replace(br, '');
    SyntaxHighlighter.config.stripBrs=true;

        (3) 不显示工具条

    复制代码代码如下:

    SyntaxHighlighter.defaults['toolbar'] = false;

    3、代码中使用

    3.1 brush为必选项,其余为可选:

    复制代码代码如下:

    <div class="brush:java;class-name:mycode;highlight:[1,3];">some java code</div>

    brush取值:java/xml/sql/c/js/css等,详见:http://alexgorbatchev.com/SyntaxHighlighter/manual/brushes/

    3.2 着色调用:

    复制代码代码如下:

        SyntaxHighlighter.highlight();

        或

    复制代码代码如下:

        SyntaxHighlighter.all();

    all()与highlight()区别在于all()是注册到onload()事件中的。

    4、在博客园中使用

        博客园默认支持SyntaxHighlighter。代码修改默认值(因为jQuery不支持设置!important的样式所以需要设置cssText):

    复制代码代码如下:

        var sh = $(".syntaxhighlighter");
        var code = sh.find("code");
        var line = sh.find(".line");
        var caption = sh.find("table caption");
        sh.css("cssText", " auto !important");
        code.add(line)
                .add(caption)
                .css("cssText", "font-size: 20px !important;white-space: nowrap !important;line-height: 1.5em !important;");
  • 相关阅读:
    JMM简述
    spring简读
    Linux常用命令
    基于java的八大排序实现
    数据库事务说明
    BIO、NIO、AIO区别与联系
    ThreadLocal 是什么?有哪些使用场景?
    ConcurrentHashMap 和 Hashtable 比较,为什么推荐使用ConcurrentHashMap?
    sychronized设计原理
    MySQL索引详解
  • 原文地址:https://www.cnblogs.com/ChineseMoonGod/p/5104896.html
Copyright © 2020-2023  润新知