@observablehq/highlight.js
Version:
Syntax highlighting with language autodetection.
43 lines (40 loc) • 1.03 kB
JavaScript
/*
Language: Dust
Requires: xml.js
Author: Michael Allen <michael.allen@benefitfocus.com>
Description: Matcher for dust.js templates.
Category: template
*/
define(["./xml.js"], (...$requiredLanguages) => function(hljs) {
hljs.registerLanguage("xml", $requiredLanguages[0]);
var EXPRESSION_KEYWORDS = 'if eq ne lt lte gt gte select default math sep';
return {
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
}
]
};
}
)