Файл: error-kitty/node_modules/highlight.js/lib/languages/xml.js
Строк: 87
module.exports = function(hljs) {
var XML_IDENT_RE = '[A-Za-z0-9\._:-]+';
var PHP = {
begin: /<?(php)?(?!w)/, end: /?>/,
subLanguage: 'php', subLanguageMode: 'continuous'
};
var TAG_INTERNALS = {
endsWithParent: true,
illegal: /</,
relevance: 0,
contains: [
PHP,
{
className: 'attribute',
begin: XML_IDENT_RE,
relevance: 0
},
{
begin: '=',
relevance: 0,
contains: [
{
className: 'value',
variants: [
{begin: /"/, end: /"/},
{begin: /'/, end: /'/},
{begin: /[^s/>]+/}
]
}
]
}
]
};
return {
aliases: ['html', 'xhtml', 'rss', 'atom', 'xsl', 'plist'],
case_insensitive: true,
contains: [
{
className: 'doctype',
begin: '<!DOCTYPE', end: '>',
relevance: 10,
contains: [{begin: '\[', end: '\]'}]
},
{
className: 'comment',
begin: '<!--', end: '-->',
relevance: 10
},
{
className: 'cdata',
begin: '<\!\[CDATA\[', end: '\]\]>',
relevance: 10
},
{
className: 'tag',
/*
The lookahead pattern (?=...) ensures that 'begin' only matches
'<style' as a single word, followed by a whitespace or an
ending braket. The '$' is needed for the lexeme to be recognized
by hljs.subMode() that tests lexemes outside the stream.
*/
begin: '<style(?=\s|>|$)', end: '>',
keywords: {title: 'style'},
contains: [TAG_INTERNALS],
starts: {
end: '</style>', returnEnd: true,
subLanguage: 'css'
}
},
{
className: 'tag',
// See the comment in the <style tag about the lookahead pattern
begin: '<script(?=\s|>|$)', end: '>',
keywords: {title: 'script'},
contains: [TAG_INTERNALS],
starts: {
end: '</script>', returnEnd: true,
subLanguage: 'javascript'
}
},
{
begin: '<%', end: '%>',
subLanguage: 'vbscript'
},
PHP,
{
className: 'pi',
begin: /<?w+/, end: /?>/,
relevance: 10
},
{
className: 'tag',
begin: '</?', end: '/?>',
contains: [
{
className: 'title', begin: /[^ /><nt]+/, relevance: 0
},
TAG_INTERNALS
]
}
]
};
};