You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
117 lines
2.6 KiB
117 lines
2.6 KiB
/* |
|
Language: HAML |
|
Requires: ruby.js |
|
Author: Dan Allen <dan.j.allen@gmail.com> |
|
Website: http://haml.info |
|
Category: template |
|
*/ |
|
|
|
// TODO support filter tags like :javascript, support inline HTML |
|
function haml(hljs) { |
|
return { |
|
name: 'HAML', |
|
case_insensitive: true, |
|
contains: [ |
|
{ |
|
className: 'meta', |
|
begin: '^!!!( (5|1\\.1|Strict|Frameset|Basic|Mobile|RDFa|XML\\b.*))?$', |
|
relevance: 10 |
|
}, |
|
// FIXME these comments should be allowed to span indented lines |
|
hljs.COMMENT( |
|
'^\\s*(!=#|=#|-#|/).*$', |
|
false, |
|
{ |
|
relevance: 0 |
|
} |
|
), |
|
{ |
|
begin: '^\\s*(-|=|!=)(?!#)', |
|
starts: { |
|
end: '\\n', |
|
subLanguage: 'ruby' |
|
} |
|
}, |
|
{ |
|
className: 'tag', |
|
begin: '^\\s*%', |
|
contains: [ |
|
{ |
|
className: 'selector-tag', |
|
begin: '\\w+' |
|
}, |
|
{ |
|
className: 'selector-id', |
|
begin: '#[\\w-]+' |
|
}, |
|
{ |
|
className: 'selector-class', |
|
begin: '\\.[\\w-]+' |
|
}, |
|
{ |
|
begin: /\{\s*/, |
|
end: /\s*\}/, |
|
contains: [ |
|
{ |
|
begin: ':\\w+\\s*=>', |
|
end: ',\\s+', |
|
returnBegin: true, |
|
endsWithParent: true, |
|
contains: [ |
|
{ |
|
className: 'attr', |
|
begin: ':\\w+' |
|
}, |
|
hljs.APOS_STRING_MODE, |
|
hljs.QUOTE_STRING_MODE, |
|
{ |
|
begin: '\\w+', |
|
relevance: 0 |
|
} |
|
] |
|
} |
|
] |
|
}, |
|
{ |
|
begin: '\\(\\s*', |
|
end: '\\s*\\)', |
|
excludeEnd: true, |
|
contains: [ |
|
{ |
|
begin: '\\w+\\s*=', |
|
end: '\\s+', |
|
returnBegin: true, |
|
endsWithParent: true, |
|
contains: [ |
|
{ |
|
className: 'attr', |
|
begin: '\\w+', |
|
relevance: 0 |
|
}, |
|
hljs.APOS_STRING_MODE, |
|
hljs.QUOTE_STRING_MODE, |
|
{ |
|
begin: '\\w+', |
|
relevance: 0 |
|
} |
|
] |
|
} |
|
] |
|
} |
|
] |
|
}, |
|
{ |
|
begin: '^\\s*[=~]\\s*' |
|
}, |
|
{ |
|
begin: /#\{/, |
|
starts: { |
|
end: /\}/, |
|
subLanguage: 'ruby' |
|
} |
|
} |
|
] |
|
}; |
|
} |
|
|
|
module.exports = haml;
|
|
|