Changeset 68

Show
Ignore:
Timestamp:
05/14/07 09:16:34 (20 months ago)
Author:
steadicat
Message:

Updated syntax highilighter.
Added Google Analytics.
Set svn:ignore again.

Location:
unicoders/trunk/unicoders
Files:
8 added
11 modified

Legend:

Unmodified
Added
Removed
  • unicoders/trunk/unicoders/code

    • Property svn:ignore set to
      *.pyc
      *~
  • unicoders/trunk/unicoders/code/templates

    • Property svn:ignore set to
      *.pyc
      *~
  • unicoders/trunk/unicoders/contrib

    • Property svn:ignore set to
      *.pyc
      *~
  • unicoders/trunk/unicoders/database

    • Property svn:ignore
      •  

        old new  
        11*.pyc 
        22*~ 
        3 *.db 
  • unicoders/trunk/unicoders/media/scripts/sh

    • Property svn:ignore set to
      *.pyc
      *~
  • unicoders/trunk/unicoders/media/scripts/sh/css.js

    r12 r68  
    88                                        'content counter-increment counter-reset cue-after cue-before cue cursor definition-src descent direction display ' + 
    99                                        'elevation empty-cells float font-size-adjust font-family font-size font-stretch font-style font-variant font-weight font ' + 
    10                                         'height left letter-spacing line-height list-style-image list-style-position list-style-type list-style margin-top ' + 
     10                                        'height letter-spacing line-height list-style-image list-style-position list-style-type list-style margin-top ' + 
    1111                                        'margin-right margin-bottom margin-left margin marker-offset marks mathline max-height max-width min-height min-width orphans ' + 
    1212                                        'outline-color outline-style outline-width outline overflow padding-top padding-right padding-bottom padding-left padding page ' + 
     
    1414                                        'quotes richness right size slope src speak-header speak-numeral speak-punctuation speak speech-rate stemh stemv stress ' + 
    1515                                        'table-layout text-align text-decoration text-indent text-shadow text-transform unicode-bidi unicode-range units-per-em ' + 
    16                                         'vertical-align visibility voice-family volume white-space widows width widths word-spacing x-height z-index'; 
     16                                        'vertical-align visibility voice-family volume white-space widows width widths word-spacing x-height z-index important'; 
    1717 
    1818        var values =    'above absolute all always aqua armenian attr aural auto avoid baseline behind below bidi-override black blink block blue bold bolder '+ 
     
    4545 
    4646        this.CssClass = 'dp-css'; 
     47        this.Style =    '.dp-css .colors { color: darkred; }' + 
     48                                        '.dp-css .vars { color: #d00; }'; 
    4749} 
    4850 
  • unicoders/trunk/unicoders/media/scripts/sh/py.js

    r12 r68  
    22dp.sh.Brushes.Python = function() 
    33{ 
    4         var keywords =          'and assert break class continue def del elif else except exec ' + 
    5                                                 'finally for from global if import in is lambda not or object pass print ' + 
    6                                                 'raise return try yield while'; 
    7          
    8         var builtins =          'self __builtin__ __dict__ __future__ __methods__ __members__ __author__ __email__ __version__' + 
    9                                                 '__class__ __bases__ __import__ __main__ __name__ __doc__ __self__ __debug__ __slots__ ' + 
    10                                                 'abs append apply basestring bool buffer callable chr classmethod clear close cmp coerce compile complex ' + 
    11                                                 'conjugate copy count delattr dict dir divmod enumerate Ellipsis eval execfile extend False file fileno filter float flush ' + 
    12                                                 'get getattr globals has_key hasarttr hash hex id index input insert int intern isatty isinstance isubclass ' + 
    13                                                 'items iter keys len list locals long map max min mode oct open ord pop pow property range ' + 
    14                                                 'raw_input read readline readlines reduce reload remove repr reverse round seek setattr slice sum ' + 
    15                                                 'staticmethod str super tell True truncate tuple type unichr unicode update values write writelines xrange zip'; 
    16          
    17         var magicmethods =      '__abs__ __add__ __and__ __call__ __cmp__ __coerce__ __complex__ __concat__ __contains__ __del__ __delattr__ __delitem__ ' + 
    18                                                 '__delslice__ __div__ __divmod__ __float__ __getattr__ __getitem__ __getslice__ __hash__ __hex__ __eq__ __le__ __lt__ __gt__ __ge__ ' + 
    19                                                 '__iadd__ __isub__ __imod__ __idiv__ __ipow__ __iand__ __ior__ __ixor__ __ilshift__ __irshift__ ' + 
    20                                                 '__invert__ __init__ __int__ __inv__ __iter__ __len__ __long__ __lshift__ __mod__ __mul__ __new__ __neg__ __nonzero__ __oct__ __or__ ' + 
    21                                                 '__pos__ __pow__ __radd__ __rand__ __rcmp__ __rdiv__ __rdivmod__ __repeat__ __repr__ __rlshift__ __rmod__ __rmul__ ' + 
    22                                                 '__ror__ __rpow__ __rrshift__ __rshift__ __rsub__ __rxor__ __setattr__ __setitem__ __setslice__ __str__ __sub__ __xor__'; 
    23          
    24         var exceptions =        'Exception StandardError ArithmeticError LookupError EnvironmentError AssertionError AttributeError EOFError ' + 
    25                                                 'FutureWarning IndentationError OverflowWarning PendingDeprecationWarning ReferenceError RuntimeWarning ' + 
    26                                                 'SyntaxWarning TabError UnicodeDecodeError UnicodeEncodeError UnicodeTranslateError UserWarning Warning ' + 
    27                                                 'IOError ImportError IndexError KeyError KeyboardInterrupt MemoryError NameError NotImplementedError OSError ' + 
    28                                                 'RuntimeError StopIteration SyntaxError SystemError SystemExit TypeError UnboundLocalError UnicodeError ValueError ' + 
    29                                                 'FloatingPointError OverflowError WindowsError ZeroDivisionError'; 
    30          
    31         var types =                     'NoneType TypeType IntType LongType FloatType ComplexType StringType UnicodeType BufferType TupleType ListType ' + 
    32                                                 'DictType FunctionType LambdaType CodeType ClassType UnboundMethodType InstanceType MethodType BuiltinFunctionType BuiltinMethodType ' + 
    33                                                 'ModuleType FileType XRangeType TracebackType FrameType SliceType EllipsisType'; 
    34          
    35         var commonlibs =        'anydbm array asynchat asyncore AST base64 binascii binhex bisect bsddb buildtools bz2 ' + 
    36                                                 'BaseHTTPServer Bastion calendar cgi cmath cmd codecs codeop commands compiler copy copy_reg ' + 
    37                                                 'cPickle crypt cStringIO csv curses Carbon CGIHTTPServer ConfigParser Cookie datetime dbhash ' + 
    38                                                 'dbm difflib dircache distutils doctest DocXMLRPCServer email encodings errno exceptions fcntl ' + 
    39                                                 'filecmp fileinput ftplib gc gdbm getopt getpass glob gopherlib gzip heapq htmlentitydefs ' + 
    40                                                 'htmllib httplib HTMLParser imageop imaplib imgfile imghdr imp inspect itertools jpeg keyword ' + 
    41                                                 'linecache locale logging mailbox mailcap marshal math md5 mhlib mimetools mimetypes mimify mmap ' + 
    42                                                 'mpz multifile mutex MimeWriter netrc new nis nntplib nsremote operator optparse os parser pickle pipes ' + 
    43                                                 'popen2 poplib posix posixfile pprint preferences profile pstats pwd pydoc pythonprefs quietconsole ' + 
    44                                                 'quopri Queue random re readline resource rexec rfc822 rgbimg sched select sets sgmllib sha shelve shutil ' + 
    45                                                 'signal site smtplib socket stat statcache string struct symbol sys syslog SimpleHTTPServer ' + 
    46                                                 'SimpleXMLRPCServer SocketServer StringIO tabnanny tarfile telnetlib tempfile termios textwrap ' + 
    47                                                 'thread threading time timeit token tokenize traceback tty types Tkinter unicodedata unittest ' + 
    48                                                 'urllib urllib2 urlparse user UserDict UserList UserString warnings weakref webbrowser whichdb ' + 
    49                                                 'xml xmllib xmlrpclib xreadlines zipfile zlib'; 
     4    var keywords =  'and assert break class continue def del elif else ' + 
     5                    'except exec finally for from global if import in is ' + 
     6                    'lambda not or pass print raise return try yield while'; 
    507 
    51         this.regexList = [ 
    52                 { regex: new RegExp('#.*$', 'gm'),                                                      css: 'comment' },                       // comments 
    53                 { regex: new RegExp('"""(.|\n)*?"""', 'gm'),                                    css: 'string' },                        // multi-line strings " 
    54                 { regex: new RegExp("'''(.|\n)*?'''", 'gm'),                                    css: 'string' },                        // multi-line strings ' 
    55 //              { regex: dp.sh.RegexLib.DoubleQuotedString,                                     css: 'string' },                        // double quoted strings 
    56 //              { regex: dp.sh.RegexLib.SingleQuotedString,                                     css: 'string' },                        // single quoted strings 
    57                 { regex: new RegExp(this.GetKeywords(keywords), 'gm'),          css: 'keyword' },                       // keywords 
    58                 { regex: new RegExp(this.GetKeywords(builtins), 'gm'),          css: 'builtins' },                      // builtin objects, functions, methods, magic attributes 
    59                 { regex: new RegExp(this.GetKeywords(magicmethods), 'gm'),      css: 'magicmethods' },          // special methods 
    60                 { regex: new RegExp(this.GetKeywords(exceptions), 'gm'),        css: 'exceptions' },            // standard exception classes 
    61                 { regex: new RegExp(this.GetKeywords(types), 'gm'),                     css: 'types' },                         // types from types.py 
    62                 { regex: new RegExp(this.GetKeywords(commonlibs), 'gm'),        css: 'commonlibs' }                     // common standard library modules 
    63                 ]; 
     8    var special =  'None True False self cls class_' 
    649 
    65         this.CssClass = 'dp-py'; 
     10    this.regexList = [ 
     11        { regex: dp.sh.RegexLib.SingleLinePerlComments, css: 'comment' }, 
     12        { regex: new RegExp("^\\s*@\\w+", 'gm'), css: 'decorator' }, 
     13        { regex: new RegExp("(['\"]{3})([^\\1])*?\\1", 'gm'), css: 'comment' }, 
     14        { regex: new RegExp('"(?!")(?:\\.|\\\\\\"|[^\\""\\n\\r])*"', 'gm'), css: 'string' }, 
     15        { regex: new RegExp("'(?!')*(?:\\.|(\\\\\\')|[^\\''\\n\\r])*'", 'gm'), css: 'string' }, 
     16        { regex: new RegExp("\\b\\d+\\.?\\w*", 'g'), css: 'number' }, 
     17        { regex: new RegExp(this.GetKeywords(keywords), 'gm'), css: 'keyword' }, 
     18        { regex: new RegExp(this.GetKeywords(special), 'gm'), css: 'special' }, 
     19        ]; 
     20 
     21    this.CssClass = 'dp-py'; 
     22        this.Style =    '.dp-py .builtins { color: #ff1493; }' + 
     23                                        '.dp-py .magicmethods { color: #808080; }' + 
     24                                        '.dp-py .exceptions { color: brown; }' + 
     25                                        '.dp-py .types { color: brown; font-style: italic; }' + 
     26                                        '.dp-py .commonlibs { color: #8A2BE2; font-style: italic; }'; 
    6627} 
    6728 
    68 dp.sh.Brushes.Python.prototype  = new dp.sh.Highlighter(); 
    69 dp.sh.Brushes.Python.Aliases    = ['py', 'python']; 
     29dp.sh.Brushes.Python.prototype  = new dp.sh.Highlighter(); 
     30dp.sh.Brushes.Python.Aliases    = ['py', 'python']; 
  • unicoders/trunk/unicoders/media/scripts/sh/sh.js

    r12 r68  
    1 var dp={sh:{Toolbar:{},Utils:{},RegexLib:{},Brushes:{},Strings:{},Version:"1.4.0"}};dp.sh.Strings={AboutDialog:"<html><head><title>About...</title></head><body class=\"dp-about\"><table cellspacing=\"0\"><tr><td class=\"copy\"><p class=\"title\">dp.SyntaxHighlighter</div><div class=\"para\">Version: {V}</p><p><a href=\"http://www.dreamprojections.com/syntaxhighlighter/?ref=about\" target=\"_blank\">http://www.dreamprojections.com/SyntaxHighlighter</a></p>&copy;2004-2005 Alex Gorbatchev. All right reserved.</td></tr><tr><td class=\"footer\"><input type=\"button\" class=\"close\" value=\"OK\" onClick=\"window.close()\"/></td></tr></table></body></html>"};dp.SyntaxHighlighter=dp.sh;dp.sh.Toolbar.Commands={ExpandSource:{label:"+ expand source",check:function(_1){return _1.collapse;},func:function(_2,_3){_2.parentNode.removeChild(_2);_3.div.className=_3.div.className.replace("collapsed","");}},ViewSource:{label:"view plain",func:function(_4,_5){var _6=_5.originalCode.replace(/</g,"&lt;");var _7=window.open("","_blank","width=750, height=400, location=0, resizable=1, menubar=0, scrollbars=1");_7.document.write("<textarea style=\"width:99%;height:99%\">"+_6+"</textarea>");_7.document.close();}},CopyToClipboard:{label:"copy to clipboard",check:function(){return window.clipboardData!=null;},func:function(_8,_9){window.clipboardData.setData("text",_9.originalCode);alert("The code is in your clipboard now");}},PrintSource:{label:"print",func:function(_a,_b){var _c=document.createElement("IFRAME");var _d=null;_c.style.cssText="position:absolute;width:0px;height:0px;left:-500px;top:-500px;";document.body.appendChild(_c);_d=_c.contentWindow.document;dp.sh.Utils.CopyStyles(_d,window.document);_d.write("<div class=\""+_b.div.className.replace("collapsed","")+" printing\">"+_b.div.innerHTML+"</div>");_d.close();_c.contentWindow.focus();_c.contentWindow.print();alert("Printing...");document.body.removeChild(_c);}},About:{label:"?",func:function(_e){var _f=window.open("","_blank","dialog,width=300,height=150,scrollbars=0");var doc=_f.document;dp.sh.Utils.CopyStyles(doc,window.document);doc.write(dp.sh.Strings.AboutDialog.replace("{V}",dp.sh.Version));doc.close();_f.focus();}}};dp.sh.Toolbar.Create=function(_11){var div=document.createElement("DIV");div.className="tools";for(var _13 in dp.sh.Toolbar.Commands){var cmd=dp.sh.Toolbar.Commands[_13];if(cmd.check!=null&&!cmd.check(_11)){continue;}div.innerHTML+="<a href=\"#\" onclick=\"dp.sh.Toolbar.Command('"+_13+"',this);return false;\">"+cmd.label+"</a>";}return div;};dp.sh.Toolbar.Command=function(_15,_16){var n=_16;while(n!=null&&n.className.indexOf("dp-highlighter")==-1){n=n.parentNode;}if(n!=null){dp.sh.Toolbar.Commands[_15].func(_16,n.highlighter);}};dp.sh.Utils.CopyStyles=function(_18,_19){var _1a=_19.getElementsByTagName("link");for(var i=0;i<_1a.length;i++){if(_1a[i].rel.toLowerCase()=="stylesheet"){_18.write("<link type=\"text/css\" rel=\"stylesheet\" href=\""+_1a[i].href+"\"></link>");}}};dp.sh.RegexLib={MultiLineCComments:new RegExp("/\\*[\\s\\S]*?\\*/","gm"),SingleLineCComments:new RegExp("//.*$","gm"),SingleLinePerlComments:new RegExp("#.*$","gm"),DoubleQuotedString:new RegExp("\"(?:\\.|(\\\\\\\")|[^\\\"\"])*\"","g"),SingleQuotedString:new RegExp("'(?:\\.|(\\\\\\')|[^\\''])*'","g")};dp.sh.Match=function(_1c,_1d,css){this.value=_1c;this.index=_1d;this.length=_1c.length;this.css=css;};dp.sh.Highlighter=function(){this.addGutter=true;this.addControls=true;this.collapse=false;this.tabsToSpaces=true;this.wrapColumn=80;this.showColumns=true;};dp.sh.Highlighter.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;};dp.sh.Highlighter.prototype.CreateElement=function(_21){var _22=document.createElement(_21);_22.highlighter=this;return _22;};dp.sh.Highlighter.prototype.GetMatches=function(_23,css){var _25=0;var _26=null;while((_26=_23.exec(this.code))!=null){this.matches[this.matches.length]=new dp.sh.Match(_26[0],_26.index,css);}};dp.sh.Highlighter.prototype.AddBit=function(str,css){if(str==null||str.length==0){return;}var _29=this.CreateElement("SPAN");str=str.replace(/&/g,"&amp;");str=str.replace(/ /g,"&nbsp;");str=str.replace(/</g,"&lt;");str=str.replace(/\n/gm,"&nbsp;<br>");if(css!=null){var _2a=new RegExp("<br>","gi");if(_2a.test(str)){var _2b=str.split("&nbsp;<br>");str="";for(var i=0;i<_2b.length;i++){_29=this.CreateElement("SPAN");_29.className=css;_29.innerHTML=_2b[i];this.div.appendChild(_29);if(i+1<_2b.length){this.div.appendChild(this.CreateElement("BR"));}}}else{_29.className=css;_29.innerHTML=str;this.div.appendChild(_29);}}else{_29.innerHTML=str;this.div.appendChild(_29);}};dp.sh.Highlighter.prototype.IsInside=function(_2d){if(_2d==null||_2d.length==0){return false;}for(var i=0;i<this.matches.length;i++){var c=this.matches[i];if(c==null){continue;}if((_2d.index>c.index)&&(_2d.index<c.index+c.length)){return true;}}return false;};dp.sh.Highlighter.prototype.ProcessRegexList=function(){for(var i=0;i<this.regexList.length;i++){this.GetMatches(this.regexList[i].regex,this.regexList[i].css);}};dp.sh.Highlighter.prototype.ProcessSmartTabs=function(_31){var _32=_31.split("\n");var _33="";var _34=4;var tab="\t";function InsertSpaces(_36,pos,_38){var _39=_36.substr(0,pos);var _3a=_36.substr(pos+1,_36.length);var _3b="";for(var i=0;i<_38;i++){_3b+=" ";}return _39+_3b+_3a;}function ProcessLine(_3d,_3e){if(_3d.indexOf(tab)==-1){return _3d;}var pos=0;while((pos=_3d.indexOf(tab))!=-1){var _40=_3e-pos%_3e;_3d=InsertSpaces(_3d,pos,_40);}return _3d;}for(var i=0;i<_32.length;i++){_33+=ProcessLine(_32[i],_34)+"\n";}return _33;};dp.sh.Highlighter.prototype.SwitchToList=function(){var _42=this.div.innerHTML.replace(/<(br)\/?>/gi,"\n");var _43=_42.split("\n");if(this.addControls==true){this.bar.appendChild(dp.sh.Toolbar.Create(this));}if(this.showColumns){var div=this.CreateElement("div");var _45=this.CreateElement("div");var _46=10;var i=1;while(i<=150){if(i%_46==0){div.innerHTML+=i;i+=(i+"").length;}else{div.innerHTML+="&middot;";i++;}}_45.className="columns";_45.appendChild(div);this.bar.appendChild(_45);}for(var i=0,lineIndex=this.firstLine;i<_43.length-1;i++,lineIndex++){var li=this.CreateElement("LI");var _4a=this.CreateElement("SPAN");li.className=(i%2==0)?"alt":"";_4a.innerHTML=_43[i]+"&nbsp;";li.appendChild(_4a);this.ol.appendChild(li);}this.div.innerHTML="";};dp.sh.Highlighter.prototype.Highlight=function(_4b){function Trim(str){return str.replace(/^\s*(.*?)[\s\n]*$/g,"$1");}function Chop(str){return str.replace(/\n*$/,"").replace(/^\n*/,"");}function Unindent(str){var _4f=str.split("\n");var _50=new Array();var _51=new RegExp("^\\s*","g");var min=1000;for(var i=0;i<_4f.length&&min>0;i++){if(Trim(_4f[i]).length==0){continue;}var _54=_51.exec(_4f[i]);if(_54!=null&&_54.length>0){min=Math.min(_54[0].length,min);}}if(min>0){for(var i=0;i<_4f.length;i++){_4f[i]=_4f[i].substr(min);}}return _4f.join("\n");}function Copy(_56,_57,_58){return _56.substr(_57,_58-_57);}var pos=0;this.originalCode=_4b;this.code=Chop(Unindent(_4b));this.div=this.CreateElement("DIV");this.bar=this.CreateElement("DIV");this.ol=this.CreateElement("OL");this.matches=new Array();this.div.className="dp-highlighter";this.div.highlighter=this;this.bar.className="bar";this.ol.start=this.firstLine;if(this.CssClass!=null){this.ol.className=this.CssClass;}if(this.collapse){this.div.className+=" collapsed";}if(this.tabsToSpaces==true){this.code=this.ProcessSmartTabs(this.code);}this.ProcessRegexList();if(this.matches.length==0){this.AddBit(this.code,null);this.SwitchToList();this.div.appendChild(this.ol);return;}this.matches=this.matches.sort(dp.sh.Highlighter.SortCallback);for(var i=0;i<this.matches.length;i++){if(this.IsInside(this.matches[i])){this.matches[i]=null;}}for(var i=0;i<this.matches.length;i++){var _5c=this.matches[i];if(_5c==null||_5c.length==0){continue;}this.AddBit(Copy(this.code,pos,_5c.index),null);this.AddBit(_5c.value,_5c.css);pos=_5c.index+_5c.length;}this.AddBit(this.code.substr(pos),null);this.SwitchToList();this.div.appendChild(this.bar);this.div.appendChild(this.ol);};dp.sh.Highlighter.prototype.GetKeywords=function(str){return "\\b"+str.replace(/ /g,"\\b|\\b")+"\\b";};dp.sh.HighlightAll=function(_5e,_5f,_60,_61,_62,_63){function FindValue(){var a=arguments;for(var i=0;i<a.length;i++){if(a[i]==null){continue;}if(typeof (a[i])=="string"&&a[i]!=""){return a[i]+"";}if(typeof (a[i])=="object"&&a[i].value!=""){return a[i].value+"";}}return null;}function IsOptionSet(_66,_67){for(var i=0;i<_67.length;i++){if(_67[i]==_66){return true;}}return false;}function GetOptionValue(_69,_6a,_6b){var _6c=new RegExp("^"+_69+"\\[(\\w+)\\]$","gi");var _6d=null;for(var i=0;i<_6a.length;i++){if((_6d=_6c.exec(_6a[i]))!=null){return _6d[1];}}return _6b;}var _6f=document.getElementsByName(_5e);var _70=null;var _71=new Object();var _72="value";if(_6f==null){return;}for(var _73 in dp.sh.Brushes){var _74=dp.sh.Brushes[_73].Aliases;if(_74==null){continue;}for(var i=0;i<_74.length;i++){_71[_74[i]]=_73;}}for(var i=0;i<_6f.length;i++){var _77=_6f[i];var _78=FindValue(_77.attributes["class"],_77.className,_77.attributes["language"],_77.language);var _79="";if(_78==null){continue;}_78=_78.split(":");_79=_78[0].toLowerCase();if(_71[_79]==null){continue;}_70=new dp.sh.Brushes[_71[_79]]();_77.style.display="none";_70.addGutter=(_5f==null)?!IsOptionSet("nogutter",_78):_5f;_70.addControls=(_60==null)?!IsOptionSet("nocontrols",_78):_60;_70.collapse=(_61==null)?IsOptionSet("collapse",_78):_61;_70.showColumns=(_63==null)?IsOptionSet("showcolumns",_78):_63;_70.firstLine=(_62==null)?parseInt(GetOptionValue("firstline",_78,1)):_62;_70.Highlight(_77[_72]);_77.parentNode.insertBefore(_70.div,_77);}}; 
     1var dp={sh:{Toolbar:{},Utils:{},RegexLib:{},Brushes:{},Strings:{AboutDialog:"<html><head><title>About...</title></head><body class=\"dp-about\"><table cellspacing=\"0\"><tr><td class=\"copy\"><p class=\"title\">dp.SyntaxHighlighter</div><div class=\"para\">Version: {V}</p><p><a href=\"http://www.dreamprojections.com/syntaxhighlighter/?ref=about\" target=\"_blank\">http://www.dreamprojections.com/syntaxhighlighter</a></p>&copy;2004-2007 Alex Gorbatchev.</td></tr><tr><td class=\"footer\"><input type=\"button\" class=\"close\" value=\"OK\" onClick=\"window.close()\"/></td></tr></table></body></html>"},ClipboardSwf:null,Version:"1.5"}}; 
     2dp.SyntaxHighlighter=dp.sh; 
     3dp.sh.Toolbar.Commands={ExpandSource:{label:"+ expand source",check:function(_1){ 
     4return _1.collapse; 
     5},func:function(_2,_3){ 
     6_2.parentNode.removeChild(_2); 
     7_3.div.className=_3.div.className.replace("collapsed",""); 
     8}},ViewSource:{label:"view plain",func:function(_4,_5){ 
     9var _6=_5.originalCode.replace(/</g,"&lt;"); 
     10var _7=window.open("","_blank","width=750, height=400, location=0, resizable=1, menubar=0, scrollbars=0"); 
     11_7.document.write("<textarea style=\"width:99%;height:99%\">"+_6+"</textarea>"); 
     12_7.document.close(); 
     13}},CopyToClipboard:{label:"copy to clipboard",check:function(){ 
     14return window.clipboardData!=null||dp.sh.ClipboardSwf!=null; 
     15},func:function(_8,_9){ 
     16var _a=_9.originalCode; 
     17if(window.clipboardData){ 
     18window.clipboardData.setData("text",_a); 
     19}else{ 
     20if(dp.sh.ClipboardSwf!=null){ 
     21var _b=_9.flashCopier; 
     22if(_b==null){ 
     23_b=document.createElement("div"); 
     24_9.flashCopier=_b; 
     25_9.div.appendChild(_b); 
     26} 
     27_b.innerHTML="<embed src=\""+dp.sh.ClipboardSwf+"\" FlashVars=\"clipboard="+encodeURIComponent(_a)+"\" width=\"0\" height=\"0\" type=\"application/x-shockwave-flash\"></embed>"; 
     28} 
     29} 
     30alert("The code is in your clipboard now"); 
     31}},PrintSource:{label:"print",func:function(_c,_d){ 
     32var _e=document.createElement("IFRAME"); 
     33var _f=null; 
     34_e.style.cssText="position:absolute;width:0px;height:0px;left:-500px;top:-500px;"; 
     35document.body.appendChild(_e); 
     36_f=_e.contentWindow.document; 
     37dp.sh.Utils.CopyStyles(_f,window.document); 
     38_f.write("<div class=\""+_d.div.className.replace("collapsed","")+" printing\">"+_d.div.innerHTML+"</div>"); 
     39_f.close(); 
     40_e.contentWindow.focus(); 
     41_e.contentWindow.print(); 
     42alert("Printing..."); 
     43document.body.removeChild(_e); 
     44}},About:{label:"?",func:function(_10){ 
     45var wnd=window.open("","_blank","dialog,width=300,height=150,scrollbars=0"); 
     46var doc=wnd.document; 
     47dp.sh.Utils.CopyStyles(doc,window.document); 
     48doc.write(dp.sh.Strings.AboutDialog.replace("{V}",dp.sh.Version)); 
     49doc.close(); 
     50wnd.focus(); 
     51}}}; 
     52dp.sh.Toolbar.Create=function(_13){ 
     53var div=document.createElement("DIV"); 
     54div.className="tools"; 
     55for(var _15 in dp.sh.Toolbar.Commands){ 
     56var cmd=dp.sh.Toolbar.Commands[_15]; 
     57if(cmd.check!=null&&!cmd.check(_13)){ 
     58continue; 
     59} 
     60div.innerHTML+="<a href=\"#\" onclick=\"dp.sh.Toolbar.Command('"+_15+"',this);return false;\">"+cmd.label+"</a>"; 
     61} 
     62return div; 
     63}; 
     64dp.sh.Toolbar.Command=function(_17,_18){ 
     65var n=_18; 
     66while(n!=null&&n.className.indexOf("dp-highlighter")==-1){ 
     67n=n.parentNode; 
     68} 
     69if(n!=null){ 
     70dp.sh.Toolbar.Commands[_17].func(_18,n.highlighter); 
     71} 
     72}; 
     73dp.sh.Utils.CopyStyles=function(_1a,_1b){ 
     74var _1c=_1b.getElementsByTagName("link"); 
     75for(var i=0;i<_1c.length;i++){ 
     76if(_1c[i].rel.toLowerCase()=="stylesheet"){ 
     77_1a.write("<link type=\"text/css\" rel=\"stylesheet\" href=\""+_1c[i].href+"\"></link>"); 
     78} 
     79} 
     80}; 
     81dp.sh.RegexLib={MultiLineCComments:new RegExp("/\\*[\\s\\S]*?\\*/","gm"),SingleLineCComments:new RegExp("//.*$","gm"),SingleLinePerlComments:new RegExp("#.*$","gm"),DoubleQuotedString:new RegExp("\"(?:\\.|(\\\\\\\")|[^\\\"\"])*\"","g"),SingleQuotedString:new RegExp("'(?:\\.|(\\\\\\')|[^\\''])*'","g")}; 
     82dp.sh.Match=function(_1e,_1f,css){ 
     83this.value=_1e; 
     84this.index=_1f; 
     85this.length=_1e.length; 
     86this.css=css; 
     87}; 
     88dp.sh.Highlighter=function(){ 
     89this.noGutter=false; 
     90this.addControls=true; 
     91this.collapse=false; 
     92this.tabsToSpaces=true; 
     93this.wrapColumn=80; 
     94this.showColumns=true; 
     95}; 
     96dp.sh.Highlighter.SortCallback=function(m1,m2){ 
     97if(m1.index<m2.index){ 
     98return -1; 
     99}else{ 
     100if(m1.index>m2.index){ 
     101return 1; 
     102}else{ 
     103if(m1.length<m2.length){ 
     104return -1; 
     105}else{ 
     106if(m1.length>m2.length){ 
     107return 1; 
     108} 
     109} 
     110} 
     111} 
     112return 0; 
     113}; 
     114dp.sh.Highlighter.prototype.CreateElement=function(_23){ 
     115var _24=document.createElement(_23); 
     116_24.highlighter=this; 
     117return _24; 
     118}; 
     119dp.sh.Highlighter.prototype.GetMatches=function(_25,css){ 
     120var _27=0; 
     121var _28=null; 
     122while((_28=_25.exec(this.code))!=null){ 
     123this.matches[this.matches.length]=new dp.sh.Match(_28[0],_28.index,css); 
     124} 
     125}; 
     126dp.sh.Highlighter.prototype.AddBit=function(str,css){ 
     127if(str==null||str.length==0){ 
     128return; 
     129} 
     130var _2b=this.CreateElement("SPAN"); 
     131str=str.replace(/ /g,"&nbsp;"); 
     132str=str.replace(/</g,"&lt;"); 
     133str=str.replace(/\n/gm,"&nbsp;<br>"); 
     134if(css!=null){ 
     135if((/br/gi).test(str)){ 
     136var _2c=str.split("&nbsp;<br>"); 
     137for(var i=0;i<_2c.length;i++){ 
     138_2b=this.CreateElement("SPAN"); 
     139_2b.className=css; 
     140_2b.innerHTML=_2c[i]; 
     141this.div.appendChild(_2b); 
     142if(i+1<_2c.length){ 
     143this.div.appendChild(this.CreateElement("BR")); 
     144} 
     145} 
     146}else{ 
     147_2b.className=css; 
     148_2b.innerHTML=str; 
     149this.div.appendChild(_2b); 
     150} 
     151}else{ 
     152_2b.innerHTML=str; 
     153this.div.appendChild(_2b); 
     154} 
     155}; 
     156dp.sh.Highlighter.prototype.IsInside=function(_2e){ 
     157if(_2e==null||_2e.length==0){ 
     158return false; 
     159} 
     160for(var i=0;i<this.matches.length;i++){ 
     161var c=this.matches[i]; 
     162if(c==null){ 
     163continue; 
     164} 
     165if((_2e.index>c.index)&&(_2e.index<c.index+c.length)){ 
     166return true; 
     167} 
     168} 
     169return false; 
     170}; 
     171dp.sh.Highlighter.prototype.ProcessRegexList=function(){ 
     172for(var i=0;i<this.regexList.length;i++){ 
     173this.GetMatches(this.regexList[i].regex,this.regexList[i].css); 
     174} 
     175}; 
     176dp.sh.Highlighter.prototype.ProcessSmartTabs=function(_32){ 
     177var _33=_32.split("\n"); 
     178var _34=""; 
     179var _35=4; 
     180var tab="\t"; 
     181function InsertSpaces(_37,pos,_39){ 
     182var _3a=_37.substr(0,pos); 
     183var _3b=_37.substr(pos+1,_37.length); 
     184var _3c=""; 
     185for(var i=0;i<_39;i++){ 
     186_3c+=" "; 
     187} 
     188return _3a+_3c+_3b; 
     189} 
     190function ProcessLine(_3e,_3f){ 
     191if(_3e.indexOf(tab)==-1){ 
     192return _3e; 
     193} 
     194var pos=0; 
     195while((pos=_3e.indexOf(tab))!=-1){ 
     196var _41=_3f-pos%_3f; 
     197_3e=InsertSpaces(_3e,pos,_41); 
     198} 
     199return _3e; 
     200} 
     201for(var i=0;i<_33.length;i++){ 
     202_34+=ProcessLine(_33[i],_35)+"\n"; 
     203} 
     204return _34; 
     205}; 
     206dp.sh.Highlighter.prototype.SwitchToList=function(){ 
     207var _43=this.div.innerHTML.replace(/<(br)\/?>/gi,"\n"); 
     208var _44=_43.split("\n"); 
     209if(this.addControls==true){ 
     210this.bar.appendChild(dp.sh.Toolbar.Create(this)); 
     211} 
     212if(this.showColumns){ 
     213var div=this.CreateElement("div"); 
     214var _46=this.CreateElement("div"); 
     215var _47=10; 
     216var i=1; 
     217while(i<=150){ 
     218if(i%_47==0){ 
     219div.innerHTML+=i; 
     220i+=(i+"").length; 
     221}else{ 
     222div.innerHTML+="&middot;"; 
     223i++; 
     224} 
     225} 
     226_46.className="columns"; 
     227_46.appendChild(div); 
     228this.bar.appendChild(_46); 
     229} 
     230for(var i=0,lineIndex=this.firstLine;i<_44.length-1;i++,lineIndex++){ 
     231var li=this.CreateElement("LI"); 
     232var _4b=this.CreateElement("SPAN"); 
     233li.className=(i%2==0)?"alt":""; 
     234_4b.innerHTML=_44[i]+"&nbsp;"; 
     235li.appendChild(_4b); 
     236this.ol.appendChild(li); 
     237} 
     238this.div.innerHTML=""; 
     239}; 
     240dp.sh.Highlighter.prototype.Highlight=function(_4c){ 
     241function Trim(str){ 
     242return str.replace(/^\s*(.*?)[\s\n]*$/g,"$1"); 
     243} 
     244function Chop(str){ 
     245return str.replace(/\n*$/,"").replace(/^\n*/,""); 
     246} 
     247function Unindent(str){ 
     248var _50=str.split("\n"); 
     249var _51=new Array(); 
     250var _52=new RegExp("^\\s*","g"); 
     251var min=1000; 
     252for(var i=0;i<_50.length&&min>0;i++){ 
     253if(Trim(_50[i]).length==0){ 
     254continue; 
     255} 
     256var _55=_52.exec(_50[i]); 
     257if(_55!=null&&_55.length>0){ 
     258min=Math.min(_55[0].length,min); 
     259} 
     260} 
     261if(min>0){ 
     262for(var i=0;i<_50.length;i++){ 
     263_50[i]=_50[i].substr(min); 
     264} 
     265} 
     266return _50.join("\n"); 
     267} 
     268function Copy(_57,_58,_59){ 
     269return _57.substr(_58,_59-_58); 
     270} 
     271var pos=0; 
     272if(_4c==null){ 
     273_4c=""; 
     274} 
     275this.originalCode=_4c; 
     276this.code=Chop(Unindent(_4c)); 
     277this.div=this.CreateElement("DIV"); 
     278this.bar=this.CreateElement("DIV"); 
     279this.ol=this.CreateElement("OL"); 
     280this.matches=new Array(); 
     281this.div.className="dp-highlighter"; 
     282this.div.highlighter=this; 
     283this.bar.className="bar"; 
     284this.ol.start=this.firstLine; 
     285if(this.CssClass!=null){ 
     286this.ol.className=this.CssClass; 
     287} 
     288if(this.collapse){ 
     289this.div.className+=" collapsed"; 
     290} 
     291if(this.noGutter){ 
     292this.div.className+=" nogutter"; 
     293} 
     294if(this.tabsToSpaces==true){ 
     295this.code=this.ProcessSmartTabs(this.code); 
     296} 
     297this.ProcessRegexList(); 
     298if(this.matches.length==0){ 
     299this.AddBit(this.code,null); 
     300this.SwitchToList(); 
     301this.div.appendChild(this.ol); 
     302return; 
     303} 
     304this.matches=this.matches.sort(dp.sh.Highlighter.SortCallback); 
     305for(var i=0;i<this.matches.length;i++){ 
     306if(this.IsInside(this.matches[i])){ 
     307this.matches[i]=null; 
     308} 
     309} 
     310for(var i=0;i<this.matches.length;i++){ 
     311var _5d=this.matches[i]; 
     312if(_5d==null||_5d.length==0){ 
     313continue; 
     314} 
     315this.AddBit(Copy(this.code,pos,_5d.index),null); 
     316this.AddBit(_5d.value,_5d.css); 
     317pos=_5d.index+_5d.length; 
     318} 
     319this.AddBit(this.code.substr(pos),null); 
     320this.SwitchToList(); 
     321this.div.appendChild(this.bar); 
     322this.div.appendChild(this.ol); 
     323}; 
     324dp.sh.Highlighter.prototype.GetKeywords=function(str){ 
     325return "\\b"+str.replace(/ /g,"\\b|\\b")+"\\b"; 
     326}; 
     327dp.sh.HighlightAll=function(_5f,_60,_61,_62,_63,_64){ 
     328function FindValue(){ 
     329var a=arguments; 
     330for(var i=0;i<a.length;i++){ 
     331if(a[i]==null){ 
     332continue; 
     333} 
     334if(typeof (a[i])=="string"&&a[i]!=""){ 
     335return a[i]+""; 
     336} 
     337if(typeof (a[i])=="object"&&a[i].value!=""){ 
     338return a[i].value+""; 
     339} 
     340} 
     341return null; 
     342} 
     343function IsOptionSet(_67,_68){ 
     344for(var i=0;i<_68.length;i++){ 
     345if(_68[i]==_67){ 
     346return true; 
     347} 
     348} 
     349return false; 
     350} 
     351function GetOptionValue(_6a,_6b,_6c){ 
     352var _6d=new RegExp("^"+_6a+"\\[(\\w+)\\]$","gi"); 
     353var _6e=null; 
     354for(var i=0;i<_6b.length;i++){ 
     355if((_6e=_6d.exec(_6b[i]))!=null){ 
     356return _6e[1]; 
     357} 
     358} 
     359return _6c; 
     360} 
     361function FindTagsByName(_70,_71,_72){ 
     362var _73=document.getElementsByTagName(_72); 
     363for(var i=0;i<_73.length;i++){ 
     364if(_73[i].getAttribute("name")==_71){ 
     365_70.push(_73[i]); 
     366} 
     367} 
     368} 
     369var _75=[]; 
     370var _76=null; 
     371var _77={}; 
     372var _78="innerHTML"; 
     373FindTagsByName(_75,_5f,"pre"); 
     374FindTagsByName(_75,_5f,"textarea"); 
     375if(_75.length==0){ 
     376return; 
     377} 
     378for(var _79 in dp.sh.Brushes){ 
     379var _7a=dp.sh.Brushes[_79].Aliases; 
     380if(_7a==null){ 
     381continue; 
     382} 
     383for(var i=0;i<_7a.length;i++){ 
     384_77[_7a[i]]=_79; 
     385} 
     386} 
     387for(var i=0;i<_75.length;i++){ 
     388var _7d=_75[i]; 
     389var _7e=FindValue(_7d.attributes["class"],_7d.className,_7d.attributes["language"],_7d.language); 
     390var _7f=""; 
     391if(_7e==null){ 
     392continue; 
     393} 
     394_7e=_7e.split(":"); 
     395_7f=_7e[0].toLowerCase(); 
     396if(_77[_7f]==null){ 
     397continue; 
     398} 
     399_76=new dp.sh.Brushes[_77[_7f]](); 
     400_7d.style.display="none"; 
     401_76.noGutter=(_60==null)?IsOptionSet("nogutter",_7e):!_60; 
     402_76.addControls=(_61==null)?!IsOptionSet("nocontrols",_7e):_61; 
     403_76.collapse=(_62==null)?IsOptionSet("collapse",_7e):_62; 
     404_76.showColumns=(_64==null)?IsOptionSet("showcolumns",_7e):_64; 
     405if(_76.Style){ 
     406document.write("<style>"+_76.Style+"</style>"); 
     407} 
     408_76.firstLine=(_63==null)?parseInt(GetOptionValue("firstline",_7e,1)):_63; 
     409_76.Highlight(_7d[_78]); 
     410_76.source=_7d; 
     411_7d.parentNode.insertBefore(_76.div,_7d); 
     412} 
     413}; 
     414 
  • unicoders/trunk/unicoders/media/scripts/sh/xml.js

    r12 r68  
    22{ 
    33        this.CssClass = 'dp-xml'; 
     4        this.Style =    '.dp-xml .cdata { color: #ff1493; }' + 
     5                                        '.dp-xml .tag, .dp-xml .tag-name { color: #069; font-weight: bold; }' + 
     6                                        '.dp-xml .attribute { color: red; }' + 
     7                                        '.dp-xml .attribute-value { color: blue; }'; 
    48} 
    59 
     
    2731 
    2832        // Match CDATA in the following format <![ ... [ ... ]]> 
    29         // <\!\[[\w\s]*?\[(.|\s)*?\]\]> 
    30         this.GetMatches(new RegExp('<\\!\\[[\\w\\s]*?\\[(.|\\s)*?\\]\\]>', 'gm'), 'cdata'); 
     33        // (\&lt;|<)\!\[[\w\s]*?\[(.|\s)*?\]\](\&gt;|>) 
     34        this.GetMatches(new RegExp('(\&lt;|<)\\!\\[[\\w\\s]*?\\[(.|\\s)*?\\]\\](\&gt;|>)', 'gm'), 'cdata'); 
    3135         
    3236        // Match comments 
    33         // <!--\s*.*\s*?--> 
    34         this.GetMatches(new RegExp('<!--\\s*.*\\s*?-->', 'gm'), 'comments'); 
     37        // (\&lt;|<)!--\s*.*\s*?--(\&gt;|>) 
     38        this.GetMatches(new RegExp('(\&lt;|<)!--\\s*.*\\s*?--(\&gt;|>)', 'gm'), 'comments'); 
    3539 
    3640        // Match attributes and their values 
    37         // (\w+)\s*=\s*(".*?"|\'.*?\'|\w+)* 
    38         regex = new RegExp('([\\w-\.]+)\\s*=\\s*(".*?"|\'.*?\'|\\w+)*', 'gm'); 
     41        // (:|\w+)\s*=\s*(".*?"|\'.*?\'|\w+)* 
     42        regex = new RegExp('([:\\w-\.]+)\\s*=\\s*(".*?"|\'.*?\'|\\w+)*|(\\w+)', 'gm'); // Thanks to Tomi Blinnikka of Yahoo! for fixing namespaces in attributes 
    3943        while((match = regex.exec(this.code)) != null) 
    4044        { 
     45                if(match[1] == null) 
     46                { 
     47                        continue; 
     48                } 
     49                         
    4150                push(this.matches, new dp.sh.Match(match[1], match.index, 'attribute')); 
    4251&