topical media & game development

talk show tell print

mobile-graphic-easel-tutorials-shared-SyntaxHighlighter-shBrushXml.js / js



  
SyntaxHighlighter http://alexgorbatchev.com/SyntaxHighlighter SyntaxHighlighter is donationware. If you are using it, please donate. http://alexgorbatchev.com/SyntaxHighlighter/donate.html @version 3.0.83 (July 02 2010) @copyright Copyright (C) 2004-2010 Alex Gorbatchev. @license Dual licensed under the MIT and GPL licenses.

  
  ;(function()
  {
          // CommonJS
          typeof(require) != 'undefined' ? SyntaxHighlighter = require('shCore').SyntaxHighlighter : null;
  
          function Brush()
          {
                  function process(match, regexInfo)
                  {
                          var constructor = SyntaxHighlighter.Match,
                                  code = match[0],
                                  tag = new XRegExp('(&lt;|<)[\\s\\/\\?]*(?<name>[:\\w-\\.]+)', 'xg').exec(code),
                                  result = []
                                  ;
                  
                          if (match.attributes != null) 
                          {
                                  var attributes,
                                          regex = new XRegExp('(?<name> [\\w:\\-\\.]+)' +
                                                                                  '\\s*=\\s*' +
                                                                                  '(?<value> ".*?"|\'.*?\'|\\w+)',
                                                                                  'xg');
  
                                  while ((attributes = regex.exec(code)) != null) 
                                  {
                                          result.push(new constructor(attributes.name, match.index + attributes.index, 'color1'));
                                          result.push(new constructor(attributes.value, match.index + attributes.index + attributes[0].indexOf(attributes.value), 'string'));
                                  }
                          }
  
                          if (tag != null)
                                  result.push(
                                          new constructor(tag.name, match.index + tag[0].indexOf(tag.name), 'keyword')
                                  );
  
                          return result;
                  }
          
                  this.regexList = [
                          { regex: new XRegExp('(\\&lt;|<)\\!\\[[\\w\\s]*?\\[(.|\\s)*?\\]\\](\\&gt;|>)', 'gm'),                        css: 'color2' },        // <![ ... [ ... ]]>
                          { regex: SyntaxHighlighter.regexLib.xmlComments,                                                                                                css: 'comments' },        // <!-- ... -->
                          { regex: new XRegExp('(&lt;|<)[\\s\\/\\?]*(\\w+)(?<attributes>.*?)[\\s\\/\\?]*(&gt;|>)', 'sg'), func: process }
                  ];
          };
  
          Brush.prototype        = new SyntaxHighlighter.Highlighter();
          Brush.aliases        = ['xml', 'xhtml', 'xslt', 'html'];
  
          SyntaxHighlighter.brushes.Xml = Brush;
  
          // CommonJS
          typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
  })();
  


(C) Æliens 04/09/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.