Update to 8.0
This commit is contained in:
@@ -2,97 +2,106 @@
|
||||
Language: CSS
|
||||
*/
|
||||
|
||||
hljs.LANGUAGES['css'] = function(hljs) {
|
||||
function(hljs) {
|
||||
var IDENT_RE = '[a-zA-Z-][a-zA-Z0-9_-]*';
|
||||
var FUNCTION = {
|
||||
className: 'function',
|
||||
begin: hljs.IDENT_RE + '\\(', end: '\\)',
|
||||
contains: [hljs.NUMBER_MODE, hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE]
|
||||
begin: IDENT_RE + '\\(',
|
||||
returnBegin: true,
|
||||
excludeEnd: true,
|
||||
end: '\\('
|
||||
};
|
||||
return {
|
||||
case_insensitive: true,
|
||||
defaultMode: {
|
||||
illegal: '[=/|\']',
|
||||
contains: [
|
||||
hljs.C_BLOCK_COMMENT_MODE,
|
||||
{
|
||||
className: 'id', begin: '\\#[A-Za-z0-9_-]+'
|
||||
},
|
||||
{
|
||||
className: 'class', begin: '\\.[A-Za-z0-9_-]+',
|
||||
relevance: 0
|
||||
},
|
||||
{
|
||||
className: 'attr_selector',
|
||||
begin: '\\[', end: '\\]',
|
||||
illegal: '$'
|
||||
},
|
||||
{
|
||||
className: 'pseudo',
|
||||
begin: ':(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\\"\\\']+'
|
||||
},
|
||||
{
|
||||
className: 'at_rule',
|
||||
begin: '@(font-face|page)',
|
||||
lexems: '[a-z-]+',
|
||||
keywords: 'font-face page'
|
||||
},
|
||||
{
|
||||
className: 'at_rule',
|
||||
begin: '@', end: '[{;]', // at_rule eating first "{" is a good thing
|
||||
// because it doesn’t let it to be parsed as
|
||||
// a rule set but instead drops parser into
|
||||
// the defaultMode which is how it should be.
|
||||
excludeEnd: true,
|
||||
keywords: 'import page media charset',
|
||||
contains: [
|
||||
FUNCTION,
|
||||
hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE,
|
||||
hljs.NUMBER_MODE
|
||||
]
|
||||
},
|
||||
{
|
||||
className: 'tag', begin: hljs.IDENT_RE,
|
||||
relevance: 0
|
||||
},
|
||||
{
|
||||
className: 'rules',
|
||||
begin: '{', end: '}',
|
||||
illegal: '[^\\s]',
|
||||
relevance: 0,
|
||||
contains: [
|
||||
hljs.C_BLOCK_COMMENT_MODE,
|
||||
{
|
||||
className: 'rule',
|
||||
begin: '[^\\s]', returnBegin: true, end: ';', endsWithParent: true,
|
||||
contains: [
|
||||
{
|
||||
className: 'attribute',
|
||||
begin: '[A-Z\\_\\.\\-]+', end: ':',
|
||||
excludeEnd: true,
|
||||
illegal: '[^\\s]',
|
||||
starts: {
|
||||
className: 'value',
|
||||
endsWithParent: true, excludeEnd: true,
|
||||
contains: [
|
||||
FUNCTION,
|
||||
hljs.NUMBER_MODE,
|
||||
hljs.QUOTE_STRING_MODE,
|
||||
hljs.APOS_STRING_MODE,
|
||||
hljs.C_BLOCK_COMMENT_MODE,
|
||||
{
|
||||
className: 'hexcolor', begin: '\\#[0-9A-F]+'
|
||||
},
|
||||
{
|
||||
className: 'important', begin: '!important'
|
||||
}
|
||||
]
|
||||
}
|
||||
illegal: '[=/|\']',
|
||||
contains: [
|
||||
hljs.C_BLOCK_COMMENT_MODE,
|
||||
{
|
||||
className: 'id', begin: '\\#[A-Za-z0-9_-]+'
|
||||
},
|
||||
{
|
||||
className: 'class', begin: '\\.[A-Za-z0-9_-]+',
|
||||
relevance: 0
|
||||
},
|
||||
{
|
||||
className: 'attr_selector',
|
||||
begin: '\\[', end: '\\]',
|
||||
illegal: '$'
|
||||
},
|
||||
{
|
||||
className: 'pseudo',
|
||||
begin: ':(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\\"\\\']+'
|
||||
},
|
||||
{
|
||||
className: 'at_rule',
|
||||
begin: '@(font-face|page)',
|
||||
lexemes: '[a-z-]+',
|
||||
keywords: 'font-face page'
|
||||
},
|
||||
{
|
||||
className: 'at_rule',
|
||||
begin: '@', end: '[{;]', // at_rule eating first "{" is a good thing
|
||||
// because it doesn’t let it to be parsed as
|
||||
// a rule set but instead drops parser into
|
||||
// the default mode which is how it should be.
|
||||
contains: [
|
||||
{
|
||||
className: 'keyword',
|
||||
begin: /\S+/
|
||||
},
|
||||
{
|
||||
begin: /\s/, endsWithParent: true, excludeEnd: true,
|
||||
relevance: 0,
|
||||
contains: [
|
||||
FUNCTION,
|
||||
hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE,
|
||||
hljs.CSS_NUMBER_MODE
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
className: 'tag', begin: IDENT_RE,
|
||||
relevance: 0
|
||||
},
|
||||
{
|
||||
className: 'rules',
|
||||
begin: '{', end: '}',
|
||||
illegal: '[^\\s]',
|
||||
relevance: 0,
|
||||
contains: [
|
||||
hljs.C_BLOCK_COMMENT_MODE,
|
||||
{
|
||||
className: 'rule',
|
||||
begin: '[^\\s]', returnBegin: true, end: ';', endsWithParent: true,
|
||||
contains: [
|
||||
{
|
||||
className: 'attribute',
|
||||
begin: '[A-Z\\_\\.\\-]+', end: ':',
|
||||
excludeEnd: true,
|
||||
illegal: '[^\\s]',
|
||||
starts: {
|
||||
className: 'value',
|
||||
endsWithParent: true, excludeEnd: true,
|
||||
contains: [
|
||||
FUNCTION,
|
||||
hljs.CSS_NUMBER_MODE,
|
||||
hljs.QUOTE_STRING_MODE,
|
||||
hljs.APOS_STRING_MODE,
|
||||
hljs.C_BLOCK_COMMENT_MODE,
|
||||
{
|
||||
className: 'hexcolor', begin: '#[0-9A-Fa-f]+'
|
||||
},
|
||||
{
|
||||
className: 'important', begin: '!important'
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
};
|
||||
}(hljs);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user