clean import of syntaxhighlighter as of 3.0.83
[unfold.git] / third-party / syntaxhighlighter_3.0.83 / scripts / shBrushXml.js
diff --git a/third-party/syntaxhighlighter_3.0.83/scripts/shBrushXml.js b/third-party/syntaxhighlighter_3.0.83/scripts/shBrushXml.js
new file mode 100644 (file)
index 0000000..69d9fd0
--- /dev/null
@@ -0,0 +1,69 @@
+/**
+ * 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;
+})();