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;
 |