1 | hljs.registerLanguage("htmlbars",(()=>{"use strict";function e(e){
|
2 | return e?"string"==typeof e?e:e.source:null}function n(...n){
|
3 | return n.map((n=>e(n))).join("")}return a=>{const t=function(a){const t={
|
4 | "builtin-name":"action bindattr collection component concat debugger each each-in get hash if in input link-to loc log lookup mut outlet partial query-params render template textarea unbound unless view with yield"
|
5 | },s=/\[\]|\[[^\]]+\]/,i=/[^\s!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~]+/,r=((...n)=>"("+n.map((n=>e(n))).join("|")+")")(/""|"[^"]+"/,/''|'[^']+'/,s,i),l=n(n("(",/\.|\.\/|\//,")?"),r,(c=n(/(\.|\/)/,r),
|
6 | n("(",c,")*")));var c;const o=n("(",s,"|",i,")(?==)"),m={begin:l,
|
7 | lexemes:/[\w.\/]+/},d=a.inherit(m,{keywords:{literal:"true false undefined null"
|
8 | }}),g={begin:/\(/,end:/\)/},b={className:"attr",begin:o,relevance:0,starts:{
|
9 | begin:/=/,end:/=/,starts:{
|
10 | contains:[a.NUMBER_MODE,a.QUOTE_STRING_MODE,a.APOS_STRING_MODE,d,g]}}},u={
|
11 | contains:[a.NUMBER_MODE,a.QUOTE_STRING_MODE,a.APOS_STRING_MODE,{begin:/as\s+\|/,
|
12 | keywords:{keyword:"as"},end:/\|/,contains:[{begin:/\w+/}]},b,d,g],returnEnd:!0
|
13 | },h=a.inherit(m,{className:"name",keywords:t,starts:a.inherit(u,{end:/\)/})})
|
14 | ;g.contains=[h];const N=a.inherit(m,{keywords:t,className:"name",
|
15 | starts:a.inherit(u,{end:/\}\}/})}),p=a.inherit(m,{keywords:t,className:"name"
|
16 | }),E=a.inherit(m,{className:"name",keywords:t,starts:a.inherit(u,{end:/\}\}/})})
|
17 | ;return{name:"Handlebars",
|
18 | aliases:["hbs","html.hbs","html.handlebars","htmlbars"],case_insensitive:!0,
|
19 | subLanguage:"xml",contains:[{begin:/\\\{\{/,skip:!0},{begin:/\\\\(?=\{\{)/,
|
20 | skip:!0},a.COMMENT(/\{\{!--/,/--\}\}/),a.COMMENT(/\{\{!/,/\}\}/),{
|
21 | className:"template-tag",begin:/\{\{\{\{(?!\/)/,end:/\}\}\}\}/,contains:[N],
|
22 | starts:{end:/\{\{\{\{\//,returnEnd:!0,subLanguage:"xml"}},{
|
23 | className:"template-tag",begin:/\{\{\{\{\//,end:/\}\}\}\}/,contains:[p]},{
|
24 | className:"template-tag",begin:/\{\{#/,end:/\}\}/,contains:[N]},{
|
25 | className:"template-tag",begin:/\{\{(?=else\}\})/,end:/\}\}/,keywords:"else"},{
|
26 | className:"template-tag",begin:/\{\{(?=else if)/,end:/\}\}/,keywords:"else if"
|
27 | },{className:"template-tag",begin:/\{\{\//,end:/\}\}/,contains:[p]},{
|
28 | className:"template-variable",begin:/\{\{\{/,end:/\}\}\}/,contains:[E]},{
|
29 | className:"template-variable",begin:/\{\{/,end:/\}\}/,contains:[E]}]}}(a)
|
30 | ;return t.name="HTMLbars",a.getLanguage("handlebars")&&(t.disableAutodetect=!0),
|
31 | t}})()); |
\ | No newline at end of file |