]> gitweb.factorcode.org Git - factor.git/blob - basis/xmode/catalog/modes/mustache.xml
basis/xmode: refactor to be deploy friendly.
[factor.git] / basis / xmode / catalog / modes / mustache.xml
1 <?xml version="1.0"?>
2 <!DOCTYPE MODE SYSTEM "xmode.dtd">
3
4 <!-- CPlex LP mode, by Kevin Hunter Kesling for jEdit 4.5+ -->
5 <!-- Note that this follows CanJS's implementation of Mustache, as at least -->
6 <!-- some of us appreciate some logic in our templates. -->
7 <!-- License: GPLv3+ -->
8
9 <MODE>
10         <RULES IGNORE_CASE="FALSE" HIGHLIGHT_DIGITS="FALSE">
11
12                 <SPAN TYPE="COMMENT1">
13                         <BEGIN>{{!</BEGIN>
14                         <END>}}</END>
15                 </SPAN>
16
17                 <SEQ TYPE="KEYWORD3">{{else}}</SEQ>
18                 <SEQ TYPE="KEYWORD2">{{.}}</SEQ>
19
20                 <SPAN TYPE="COMMENT3" MATCH_TYPE="KEYWORD4">
21                         <BEGIN>{{&gt;</BEGIN>
22                         <END>}}</END>
23                 </SPAN>
24
25                 <SPAN_REGEXP HASH_CHAR="{" MATCH_TYPE="KEYWORD3" DELEGATE='MAIN'>
26                         <BEGIN><![CDATA[\{\{#(each|if) .*?\}\}]]></BEGIN>
27                         <END>{{/$1}}</END>
28                 </SPAN_REGEXP>
29
30                 <SPAN_REGEXP HASH_CHAR="{" MATCH_TYPE="KEYWORD2" DELEGATE='MAIN'>
31                         <BEGIN><![CDATA[\{\{#([\p{Alnum}_\.]+)\}\}]]></BEGIN>
32                         <END>{{/$1}}</END>
33                 </SPAN_REGEXP>
34
35                 <SEQ_REGEXP HASH_CHAR="{" TYPE='LITERAL2'>\{\{[A-z_][A-z_.]*\}\}</SEQ_REGEXP>
36
37                 <SPAN TYPE="MARKUP" DELEGATE="javascript::MAIN">
38                         <BEGIN>&lt;%</BEGIN>
39                         <END>%&gt;</END>
40                 </SPAN>
41
42                 <SEQ TYPE="KEYWORD4">{{{</SEQ>
43                 <MARK_PREVIOUS TYPE="LITERAL4" MATCH_TYPE="KEYWORD4">}}}</MARK_PREVIOUS>
44
45                 <SEQ TYPE="KEYWORD4">{{</SEQ>
46                 <MARK_PREVIOUS TYPE="LITERAL2" MATCH_TYPE="KEYWORD4">}}</MARK_PREVIOUS>
47
48                 <IMPORT DELEGATE="html::MAIN" />
49
50         </RULES>
51 </MODE>