46 lines
979 B
JavaScript
46 lines
979 B
JavaScript
|
/*
|
||
|
Language: Dust
|
||
|
Requires: xml.js
|
||
|
Author: Michael Allen <michael.allen@benefitfocus.com>
|
||
|
Description: Matcher for dust.js templates.
|
||
|
Website: https://www.dustjs.com
|
||
|
Category: template
|
||
|
*/
|
||
|
|
||
|
/** @type LanguageFn */
|
||
|
function dust(hljs) {
|
||
|
const EXPRESSION_KEYWORDS = 'if eq ne lt lte gt gte select default math sep';
|
||
|
return {
|
||
|
name: 'Dust',
|
||
|
aliases: ['dst'],
|
||
|
case_insensitive: true,
|
||
|
subLanguage: 'xml',
|
||
|
contains: [
|
||
|
{
|
||
|
className: 'template-tag',
|
||
|
begin: /\{[#\/]/,
|
||
|
end: /\}/,
|
||
|
illegal: /;/,
|
||
|
contains: [{
|
||
|
className: 'name',
|
||
|
begin: /[a-zA-Z\.-]+/,
|
||
|
starts: {
|
||
|
endsWithParent: true,
|
||
|
relevance: 0,
|
||
|
contains: [hljs.QUOTE_STRING_MODE]
|
||
|
}
|
||
|
}]
|
||
|
},
|
||
|
{
|
||
|
className: 'template-variable',
|
||
|
begin: /\{/,
|
||
|
end: /\}/,
|
||
|
illegal: /;/,
|
||
|
keywords: EXPRESSION_KEYWORDS
|
||
|
}
|
||
|
]
|
||
|
};
|
||
|
}
|
||
|
|
||
|
module.exports = dust;
|