mirror of
				https://github.com/JKorf/CryptoExchange.Net
				synced 2025-10-30 09:57:43 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			87 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /*
 | |
| Language: HTMLBars
 | |
| Requires: xml.js, handlebars.js
 | |
| Author: Michael Johnston <lastobelus@gmail.com>
 | |
| Description: Matcher for HTMLBars
 | |
| Website: https://github.com/tildeio/htmlbars
 | |
| Category: template
 | |
| */
 | |
| 
 | |
| export default function(hljs) {
 | |
|   // This work isn't complete yet but this is done so that this technically
 | |
|   // breaking change becomes a part of the 10.0 release and won't force
 | |
|   // us to prematurely release 11.0 just to break this.
 | |
|   var SHOULD_INHERIT_FROM_HANDLEBARS = hljs.requireLanguage('handlebars');
 | |
|   // https://github.com/highlightjs/highlight.js/issues/2181
 | |
| 
 | |
|   var BUILT_INS = 'action collection component concat debugger each each-in else get hash if input link-to loc log mut outlet partial query-params render textarea unbound unless with yield view';
 | |
| 
 | |
|   var ATTR_ASSIGNMENT = {
 | |
|     illegal: /\}\}/,
 | |
|     begin: /[a-zA-Z0-9_]+=/,
 | |
|     returnBegin: true,
 | |
|     relevance: 0,
 | |
|     contains: [
 | |
|       {
 | |
|         className: 'attr', begin: /[a-zA-Z0-9_]+/
 | |
|       }
 | |
|     ]
 | |
|   };
 | |
| 
 | |
|   var SUB_EXPR = {
 | |
|     illegal: /\}\}/,
 | |
|     begin: /\)/, end: /\)/,
 | |
|     contains: [
 | |
|       {
 | |
|         begin: /[a-zA-Z\.\-]+/,
 | |
|         keywords: {built_in: BUILT_INS},
 | |
|         starts: {
 | |
|           endsWithParent: true, relevance: 0,
 | |
|           contains: [
 | |
|             hljs.QUOTE_STRING_MODE,
 | |
|           ]
 | |
|         }
 | |
|       }
 | |
|     ]
 | |
|   };
 | |
| 
 | |
|   var TAG_INNARDS = {
 | |
|     endsWithParent: true, relevance: 0,
 | |
|     keywords: {keyword: 'as', built_in: BUILT_INS},
 | |
|     contains: [
 | |
|       hljs.QUOTE_STRING_MODE,
 | |
|       ATTR_ASSIGNMENT,
 | |
|       hljs.NUMBER_MODE
 | |
|     ]
 | |
|   };
 | |
| 
 | |
|   return {
 | |
|     name: 'HTMLBars',
 | |
|     case_insensitive: true,
 | |
|     subLanguage: 'xml',
 | |
|     contains: [
 | |
|       hljs.COMMENT('{{!(--)?', '(--)?}}'),
 | |
|       {
 | |
|         className: 'template-tag',
 | |
|         begin: /\{\{[#\/]/, end: /\}\}/,
 | |
|         contains: [
 | |
|           {
 | |
|             className: 'name',
 | |
|             begin: /[a-zA-Z\.\-]+/,
 | |
|             keywords: {'builtin-name': BUILT_INS},
 | |
|             starts: TAG_INNARDS
 | |
|           }
 | |
|         ]
 | |
|       },
 | |
|       {
 | |
|         className: 'template-variable',
 | |
|         begin: /\{\{[a-zA-Z][a-zA-Z\-]+/, end: /\}\}/,
 | |
|         keywords: {keyword: 'as', built_in: BUILT_INS},
 | |
|         contains: [
 | |
|           hljs.QUOTE_STRING_MODE
 | |
|         ]
 | |
|       }
 | |
|     ]
 | |
|   };
 | |
| }
 |