;(
function
()
{
typeof
(require) !=
'undefined'
? SyntaxHighlighter = require(
'shCore'
).SyntaxHighlighter :
null
;
function
Brush()
{
function
process(match, regexInfo)
{
var
constructor = SyntaxHighlighter.Match,
code = match[0],
tag =
new
XRegExp(
'(<|<)[\\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(
'(\\<|<)\\!\\[[\\w\\s]*?\\[(.|\\s)*?\\]\\](\\>|>)'
,
'gm'
), css:
'color2'
},
{ regex: SyntaxHighlighter.regexLib.xmlComments, css:
'comments'
},
{ regex:
new
XRegExp(
'(<|<)[\\s\\/\\?]*(\\w+)(?<attributes>.*?)[\\s\\/\\?]*(>|>)'
,
'sg'
), func: process }
];
};
Brush.prototype =
new
SyntaxHighlighter.Highlighter();
Brush.aliases = [
'xml'
,
'xhtml'
,
'xslt'
,
'html'
];
SyntaxHighlighter.brushes.Xml = Brush;
typeof
(exports) !=
'undefined'
? exports.Brush = Brush :
null
;
})();