⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 highlighter.js

📁 ROYcms 是国内CMS市场的新秀、也是国内少有的采用微软的ASP.NET 2.0 + SQL2000/2005 技术框架开发的CMS
💻 JS
📖 第 1 页 / 共 5 页
字号:
/********************************************************/
//支持高亮的语言种类

var langs = new Array();
    langs['XML/HTML'] = 'xhtml';
    langs['JavaScript'] = 'javascript';
    langs['CSS'] = 'css';
    langs['C#'] = 'csharp';
    langs['C++'] = 'cpp';
    langs['JAVA'] = 'java';
    langs['PHP'] = 'php';
    langs['Python'] = 'python';
    langs['SQL'] = 'sql';
    langs['Visual Basic'] = 'vb';
    langs['Lua'] = 'lua';
    langs['AWK'] = 'awk';
    langs['UNIX Shell'] = 'sh';
    langs['Bat 批处理'] = 'bat';
    langs['Perl'] = 'perl';
    langs['Delphi/Kylix/Pascal'] = 'delphi';
    langs['ActionScript'] = 'as';
    langs['Ruby/Rails'] = 'ruby';
    langs['Assembly'] = 'asm';
 
 
/********************************************************/
//以下为主函数

var Highlighter = {
  Brushes: {},
  RegexLib: {
    MultiLineCComments : new RegExp('/\\*[\\s\\S]*?\\*/', 'gm'),
    SingleLineCComments : new RegExp('//.*$', 'gm'),
    SingleLinePerlComments : new RegExp('#.*$', 'gm'),
    DoubleQuotedString : new RegExp('"(?:\\.|(\\\\\\")|[^\\""\\n])*"','g'),
    SingleQuotedString : new RegExp("'(?:\\.|(\\\\\\')|[^\\''\\n])*'", 'g')
  },
  Match: function(value, index, css){
    this.value = value;
    this.index = index;
    this.length = value.length;
    this.css = css;
  },
  Execute: function(str,lang){
    var registered = new Object();
    for(var brush in Highlighter.Brushes){
      var aliases = Highlighter.Brushes[brush].Aliases;
      if(aliases == null) continue;
      for(var i=0;i<aliases.length;i++) registered[aliases[i].toLowerCase()] = brush;
    };
    if(!!registered[lang.toLowerCase()]){
      var ht = new Highlighter.Brushes[registered[lang.toLowerCase()]]();
      return ht.Highlight(str);
    } else {
      str = str.replace(/&/g, '&amp;');
      str = str.replace(/</g, '&lt;');
      str = str.replace(/>/g, '&gt;');
      str = str.replace(/\t/g, '&nbsp;&nbsp;&nbsp;&nbsp;');
      str = str.replace(/[ ]{2}/g, '&nbsp;&nbsp;');
      return str.replace(/\n/g, '<br/>');
    }
  }
};

Highlighter.Brushe = new Function();
Highlighter.Brushe.SortCallback = function(m1, m2){
  if(m1.index < m2.index)
    return -1;
  else if(m1.index > m2.index)
    return 1;
  else {
    if(m1.length < m2.length)
      return -1;
    else if(m1.length > m2.length)
      return 1;
  }
  return 0;
}
Highlighter.Brushe.prototype = {
  GetMatches: function(regex, css){
    var index = 0;
    var match = null;  
    while((match = regex.exec(this.code)) != null)
      this.matches.push(new Highlighter.Match(match[0], match.index, css));
  },
  AddBit: function(str, css){
    if(str == null || str.length == 0)
      return;  
    str = str.replace(/&/g, '&amp;');
    str = str.replace(/</g, '&lt;');
    str = str.replace(/>/g, '&gt;');
    str = str.replace(/\t/g, '&nbsp;&nbsp;&nbsp;&nbsp;');
    str = str.replace(/[ ]{2}/g, '&nbsp;&nbsp;');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -