prism-rails 1.5.0 → 1.5.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/prism-rails/version.rb +1 -1
- data/vendor/assets/javascripts/prism-abap.js +48 -0
- data/vendor/assets/javascripts/prism-actionscript.js +17 -0
- data/vendor/assets/javascripts/prism-apacheconf.js +47 -0
- data/vendor/assets/javascripts/prism-apl.js +29 -0
- data/vendor/assets/javascripts/prism-applescript.js +20 -0
- data/vendor/assets/javascripts/prism-asciidoc.js +271 -0
- data/vendor/assets/javascripts/prism-aspnet.js +36 -0
- data/vendor/assets/javascripts/prism-autohotkey.js +27 -0
- data/vendor/assets/javascripts/prism-autoit.js +33 -0
- data/vendor/assets/javascripts/prism-bash.js +80 -0
- data/vendor/assets/javascripts/prism-basic.js +14 -0
- data/vendor/assets/javascripts/prism-batch.js +99 -0
- data/vendor/assets/javascripts/prism-bison.js +39 -0
- data/vendor/assets/javascripts/prism-brainfuck.js +20 -0
- data/vendor/assets/javascripts/prism-bro.js +50 -0
- data/vendor/assets/javascripts/prism-c.js +33 -0
- data/vendor/assets/javascripts/prism-clike.js +29 -0
- data/vendor/assets/javascripts/prism-coffeescript.js +91 -0
- data/vendor/assets/javascripts/prism-cpp.js +12 -0
- data/vendor/assets/javascripts/prism-crystal.js +53 -0
- data/vendor/assets/javascripts/prism-csharp.js +32 -0
- data/vendor/assets/javascripts/prism-css-extras.js +15 -0
- data/vendor/assets/javascripts/prism-css.js +48 -0
- data/vendor/assets/javascripts/prism-d.js +64 -0
- data/vendor/assets/javascripts/prism-dart.js +18 -0
- data/vendor/assets/javascripts/prism-diff.js +20 -0
- data/vendor/assets/javascripts/prism-docker.js +9 -0
- data/vendor/assets/javascripts/prism-eiffel.js +24 -0
- data/vendor/assets/javascripts/prism-elixir.js +90 -0
- data/vendor/assets/javascripts/prism-erlang.js +41 -0
- data/vendor/assets/javascripts/prism-fortran.js +37 -0
- data/vendor/assets/javascripts/prism-fsharp.js +33 -0
- data/vendor/assets/javascripts/prism-gherkin.js +78 -0
- data/vendor/assets/javascripts/prism-git.js +68 -0
- data/vendor/assets/javascripts/prism-glsl.js +16 -0
- data/vendor/assets/javascripts/prism-go.js +9 -0
- data/vendor/assets/javascripts/prism-groovy.js +65 -0
- data/vendor/assets/javascripts/prism-haml.js +154 -0
- data/vendor/assets/javascripts/prism-handlebars.js +83 -0
- data/vendor/assets/javascripts/prism-haskell.js +35 -0
- data/vendor/assets/javascripts/prism-haxe.js +43 -0
- data/vendor/assets/javascripts/prism-http.js +50 -0
- data/vendor/assets/javascripts/prism-icon.js +17 -0
- data/vendor/assets/javascripts/prism-inform7.js +58 -0
- data/vendor/assets/javascripts/prism-ini.js +11 -0
- data/vendor/assets/javascripts/prism-j.js +22 -0
- data/vendor/assets/javascripts/prism-jade.js +198 -0
- data/vendor/assets/javascripts/prism-java.js +16 -0
- data/vendor/assets/javascripts/prism-javascript.js +47 -0
- data/vendor/assets/javascripts/prism-json.js +11 -0
- data/vendor/assets/javascripts/prism-jsx.js +27 -0
- data/vendor/assets/javascripts/prism-julia.js +12 -0
- data/vendor/assets/javascripts/prism-keyman.js +14 -0
- data/vendor/assets/javascripts/prism-kotlin.js +62 -0
- data/vendor/assets/javascripts/prism-latex.js +61 -0
- data/vendor/assets/javascripts/prism-less.js +60 -0
- data/vendor/assets/javascripts/prism-lolcode.js +54 -0
- data/vendor/assets/javascripts/prism-lua.js +20 -0
- data/vendor/assets/javascripts/prism-makefile.js +31 -0
- data/vendor/assets/javascripts/prism-markdown.js +120 -0
- data/vendor/assets/javascripts/prism-markup.js +46 -0
- data/vendor/assets/javascripts/prism-matlab.js +14 -0
- data/vendor/assets/javascripts/prism-mel.js +39 -0
- data/vendor/assets/javascripts/prism-mizar.js +12 -0
- data/vendor/assets/javascripts/prism-monkey.js +25 -0
- data/vendor/assets/javascripts/prism-nasm.js +24 -0
- data/vendor/assets/javascripts/prism-nginx.js +11 -0
- data/vendor/assets/javascripts/prism-nim.js +30 -0
- data/vendor/assets/javascripts/prism-nix.js +39 -0
- data/vendor/assets/javascripts/prism-normalize-whitespace.js +3 -1
- data/vendor/assets/javascripts/prism-nsis.js +19 -0
- data/vendor/assets/javascripts/prism-objectivec.js +5 -0
- data/vendor/assets/javascripts/prism-ocaml.js +21 -0
- data/vendor/assets/javascripts/prism-oz.js +21 -0
- data/vendor/assets/javascripts/prism-parigp.js +27 -0
- data/vendor/assets/javascripts/prism-parser.js +66 -0
- data/vendor/assets/javascripts/prism-pascal.js +50 -0
- data/vendor/assets/javascripts/prism-perl.js +140 -0
- data/vendor/assets/javascripts/prism-php-extras.js +11 -0
- data/vendor/assets/javascripts/prism-php.js +110 -0
- data/vendor/assets/javascripts/prism-powershell.js +52 -0
- data/vendor/assets/javascripts/prism-processing.js +18 -0
- data/vendor/assets/javascripts/prism-prolog.js +17 -0
- data/vendor/assets/javascripts/prism-protobuf.js +8 -0
- data/vendor/assets/javascripts/prism-puppet.js +131 -0
- data/vendor/assets/javascripts/prism-pure.js +77 -0
- data/vendor/assets/javascripts/prism-python.js +27 -0
- data/vendor/assets/javascripts/prism-q.js +44 -0
- data/vendor/assets/javascripts/prism-qore.js +17 -0
- data/vendor/assets/javascripts/prism-r.js +19 -0
- data/vendor/assets/javascripts/prism-rest.js +205 -0
- data/vendor/assets/javascripts/prism-rip.js +28 -0
- data/vendor/assets/javascripts/prism-roboconf.js +27 -0
- data/vendor/assets/javascripts/prism-ruby.js +110 -0
- data/vendor/assets/javascripts/prism-rust.js +53 -0
- data/vendor/assets/javascripts/prism-sas.js +31 -0
- data/vendor/assets/javascripts/prism-sass.js +73 -0
- data/vendor/assets/javascripts/prism-scala.js +18 -0
- data/vendor/assets/javascripts/prism-scheme.js +26 -0
- data/vendor/assets/javascripts/prism-scss.js +60 -0
- data/vendor/assets/javascripts/prism-smalltalk.js +31 -0
- data/vendor/assets/javascripts/prism-smarty.js +127 -0
- data/vendor/assets/javascripts/prism-sql.js +17 -0
- data/vendor/assets/javascripts/prism-stylus.js +102 -0
- data/vendor/assets/javascripts/prism-swift.js +25 -0
- data/vendor/assets/javascripts/prism-tcl.js +43 -0
- data/vendor/assets/javascripts/prism-textile.js +254 -0
- data/vendor/assets/javascripts/prism-twig.js +46 -0
- data/vendor/assets/javascripts/prism-typescript.js +3 -0
- data/vendor/assets/javascripts/prism-verilog.js +17 -0
- data/vendor/assets/javascripts/prism-vhdl.js +23 -0
- data/vendor/assets/javascripts/prism-vim.js +10 -0
- data/vendor/assets/javascripts/prism-wiki.js +81 -0
- data/vendor/assets/javascripts/prism-yaml.js +44 -0
- data/vendor/assets/javascripts/prism.js +37 -308
- data/vendor/assets/stylesheets/prism-vs.css +139 -0
- metadata +120 -163
- data/vendor/assets/javascripts/prism-abap.min.js +0 -1
- data/vendor/assets/javascripts/prism-actionscript.min.js +0 -1
- data/vendor/assets/javascripts/prism-apacheconf.min.js +0 -1
- data/vendor/assets/javascripts/prism-apl.min.js +0 -1
- data/vendor/assets/javascripts/prism-applescript.min.js +0 -1
- data/vendor/assets/javascripts/prism-asciidoc.min.js +0 -1
- data/vendor/assets/javascripts/prism-aspnet.min.js +0 -1
- data/vendor/assets/javascripts/prism-autohotkey.min.js +0 -1
- data/vendor/assets/javascripts/prism-autoit.min.js +0 -1
- data/vendor/assets/javascripts/prism-bash.min.js +0 -1
- data/vendor/assets/javascripts/prism-basic.min.js +0 -1
- data/vendor/assets/javascripts/prism-batch.min.js +0 -1
- data/vendor/assets/javascripts/prism-bison.min.js +0 -1
- data/vendor/assets/javascripts/prism-brainfuck.min.js +0 -1
- data/vendor/assets/javascripts/prism-bro.min.js +0 -1
- data/vendor/assets/javascripts/prism-c.min.js +0 -1
- data/vendor/assets/javascripts/prism-clike.min.js +0 -1
- data/vendor/assets/javascripts/prism-coffeescript.min.js +0 -1
- data/vendor/assets/javascripts/prism-core.min.js +0 -1
- data/vendor/assets/javascripts/prism-cpp.min.js +0 -1
- data/vendor/assets/javascripts/prism-crystal.min.js +0 -1
- data/vendor/assets/javascripts/prism-csharp.min.js +0 -1
- data/vendor/assets/javascripts/prism-css-extras.min.js +0 -1
- data/vendor/assets/javascripts/prism-css.min.js +0 -1
- data/vendor/assets/javascripts/prism-d.min.js +0 -1
- data/vendor/assets/javascripts/prism-dart.min.js +0 -1
- data/vendor/assets/javascripts/prism-diff.min.js +0 -1
- data/vendor/assets/javascripts/prism-docker.min.js +0 -1
- data/vendor/assets/javascripts/prism-eiffel.min.js +0 -1
- data/vendor/assets/javascripts/prism-elixir.min.js +0 -1
- data/vendor/assets/javascripts/prism-erlang.min.js +0 -1
- data/vendor/assets/javascripts/prism-fortran.min.js +0 -1
- data/vendor/assets/javascripts/prism-fsharp.min.js +0 -1
- data/vendor/assets/javascripts/prism-gherkin.min.js +0 -1
- data/vendor/assets/javascripts/prism-git.min.js +0 -1
- data/vendor/assets/javascripts/prism-glsl.min.js +0 -1
- data/vendor/assets/javascripts/prism-go.min.js +0 -1
- data/vendor/assets/javascripts/prism-groovy.min.js +0 -1
- data/vendor/assets/javascripts/prism-haml.min.js +0 -1
- data/vendor/assets/javascripts/prism-handlebars.min.js +0 -1
- data/vendor/assets/javascripts/prism-haskell.min.js +0 -1
- data/vendor/assets/javascripts/prism-haxe.min.js +0 -1
- data/vendor/assets/javascripts/prism-http.min.js +0 -1
- data/vendor/assets/javascripts/prism-icon.min.js +0 -1
- data/vendor/assets/javascripts/prism-inform7.min.js +0 -1
- data/vendor/assets/javascripts/prism-ini.min.js +0 -1
- data/vendor/assets/javascripts/prism-j.min.js +0 -1
- data/vendor/assets/javascripts/prism-jade.min.js +0 -1
- data/vendor/assets/javascripts/prism-java.min.js +0 -1
- data/vendor/assets/javascripts/prism-javascript.min.js +0 -1
- data/vendor/assets/javascripts/prism-json.min.js +0 -1
- data/vendor/assets/javascripts/prism-jsx.min.js +0 -1
- data/vendor/assets/javascripts/prism-julia.min.js +0 -1
- data/vendor/assets/javascripts/prism-keyman.min.js +0 -1
- data/vendor/assets/javascripts/prism-kotlin.min.js +0 -1
- data/vendor/assets/javascripts/prism-latex.min.js +0 -1
- data/vendor/assets/javascripts/prism-less.min.js +0 -1
- data/vendor/assets/javascripts/prism-lolcode.min.js +0 -1
- data/vendor/assets/javascripts/prism-lua.min.js +0 -1
- data/vendor/assets/javascripts/prism-makefile.min.js +0 -1
- data/vendor/assets/javascripts/prism-markdown.min.js +0 -1
- data/vendor/assets/javascripts/prism-markup.min.js +0 -1
- data/vendor/assets/javascripts/prism-matlab.min.js +0 -1
- data/vendor/assets/javascripts/prism-mel.min.js +0 -1
- data/vendor/assets/javascripts/prism-mizar.min.js +0 -1
- data/vendor/assets/javascripts/prism-monkey.min.js +0 -1
- data/vendor/assets/javascripts/prism-nasm.min.js +0 -1
- data/vendor/assets/javascripts/prism-nginx.min.js +0 -1
- data/vendor/assets/javascripts/prism-nim.min.js +0 -1
- data/vendor/assets/javascripts/prism-nix.min.js +0 -1
- data/vendor/assets/javascripts/prism-nsis.min.js +0 -1
- data/vendor/assets/javascripts/prism-objectivec.min.js +0 -1
- data/vendor/assets/javascripts/prism-ocaml.min.js +0 -1
- data/vendor/assets/javascripts/prism-oz.min.js +0 -1
- data/vendor/assets/javascripts/prism-parigp.min.js +0 -1
- data/vendor/assets/javascripts/prism-parser.min.js +0 -1
- data/vendor/assets/javascripts/prism-pascal.min.js +0 -1
- data/vendor/assets/javascripts/prism-perl.min.js +0 -1
- data/vendor/assets/javascripts/prism-php-extras.min.js +0 -1
- data/vendor/assets/javascripts/prism-php.min.js +0 -1
- data/vendor/assets/javascripts/prism-powershell.min.js +0 -1
- data/vendor/assets/javascripts/prism-processing.min.js +0 -1
- data/vendor/assets/javascripts/prism-prolog.min.js +0 -1
- data/vendor/assets/javascripts/prism-protobuf.min.js +0 -1
- data/vendor/assets/javascripts/prism-puppet.min.js +0 -1
- data/vendor/assets/javascripts/prism-pure.min.js +0 -1
- data/vendor/assets/javascripts/prism-python.min.js +0 -1
- data/vendor/assets/javascripts/prism-q.min.js +0 -1
- data/vendor/assets/javascripts/prism-qore.min.js +0 -1
- data/vendor/assets/javascripts/prism-r.min.js +0 -1
- data/vendor/assets/javascripts/prism-rest.min.js +0 -1
- data/vendor/assets/javascripts/prism-rip.min.js +0 -1
- data/vendor/assets/javascripts/prism-roboconf.min.js +0 -1
- data/vendor/assets/javascripts/prism-ruby.min.js +0 -1
- data/vendor/assets/javascripts/prism-rust.min.js +0 -1
- data/vendor/assets/javascripts/prism-sas.min.js +0 -1
- data/vendor/assets/javascripts/prism-sass.min.js +0 -1
- data/vendor/assets/javascripts/prism-scala.min.js +0 -1
- data/vendor/assets/javascripts/prism-scheme.min.js +0 -1
- data/vendor/assets/javascripts/prism-scss.min.js +0 -1
- data/vendor/assets/javascripts/prism-smalltalk.min.js +0 -1
- data/vendor/assets/javascripts/prism-smarty.min.js +0 -1
- data/vendor/assets/javascripts/prism-sql.min.js +0 -1
- data/vendor/assets/javascripts/prism-stylus.min.js +0 -1
- data/vendor/assets/javascripts/prism-swift.min.js +0 -1
- data/vendor/assets/javascripts/prism-tcl.min.js +0 -1
- data/vendor/assets/javascripts/prism-textile.min.js +0 -1
- data/vendor/assets/javascripts/prism-twig.min.js +0 -1
- data/vendor/assets/javascripts/prism-typescript.min.js +0 -1
- data/vendor/assets/javascripts/prism-verilog.min.js +0 -1
- data/vendor/assets/javascripts/prism-vhdl.min.js +0 -1
- data/vendor/assets/javascripts/prism-vim.min.js +0 -1
- data/vendor/assets/javascripts/prism-wiki.min.js +0 -1
- data/vendor/assets/javascripts/prism-yaml.min.js +0 -1
@@ -0,0 +1,83 @@
|
|
1
|
+
(function(Prism) {
|
2
|
+
|
3
|
+
var handlebars_pattern = /\{\{\{[\w\W]+?\}\}\}|\{\{[\w\W]+?\}\}/g;
|
4
|
+
|
5
|
+
Prism.languages.handlebars = Prism.languages.extend('markup', {
|
6
|
+
'handlebars': {
|
7
|
+
pattern: handlebars_pattern,
|
8
|
+
inside: {
|
9
|
+
'delimiter': {
|
10
|
+
pattern: /^\{\{\{?|\}\}\}?$/i,
|
11
|
+
alias: 'punctuation'
|
12
|
+
},
|
13
|
+
'string': /(["'])(\\?.)*?\1/,
|
14
|
+
'number': /\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee][+-]?\d+)?)\b/,
|
15
|
+
'boolean': /\b(true|false)\b/,
|
16
|
+
'block': {
|
17
|
+
pattern: /^(\s*~?\s*)[#\/]\S+?(?=\s*~?\s*$|\s)/i,
|
18
|
+
lookbehind: true,
|
19
|
+
alias: 'keyword'
|
20
|
+
},
|
21
|
+
'brackets': {
|
22
|
+
pattern: /\[[^\]]+\]/,
|
23
|
+
inside: {
|
24
|
+
punctuation: /\[|\]/,
|
25
|
+
variable: /[\w\W]+/
|
26
|
+
}
|
27
|
+
},
|
28
|
+
'punctuation': /[!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~]/,
|
29
|
+
'variable': /[^!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~\s]+/
|
30
|
+
}
|
31
|
+
}
|
32
|
+
});
|
33
|
+
|
34
|
+
// Comments are inserted at top so that they can
|
35
|
+
// surround markup
|
36
|
+
Prism.languages.insertBefore('handlebars', 'tag', {
|
37
|
+
'handlebars-comment': {
|
38
|
+
pattern: /\{\{![\w\W]*?\}\}/,
|
39
|
+
alias: ['handlebars','comment']
|
40
|
+
}
|
41
|
+
});
|
42
|
+
|
43
|
+
// Tokenize all inline Handlebars expressions that are wrapped in {{ }} or {{{ }}}
|
44
|
+
// This allows for easy Handlebars + markup highlighting
|
45
|
+
Prism.hooks.add('before-highlight', function(env) {
|
46
|
+
if (env.language !== 'handlebars') {
|
47
|
+
return;
|
48
|
+
}
|
49
|
+
|
50
|
+
env.tokenStack = [];
|
51
|
+
|
52
|
+
env.backupCode = env.code;
|
53
|
+
env.code = env.code.replace(handlebars_pattern, function(match) {
|
54
|
+
env.tokenStack.push(match);
|
55
|
+
|
56
|
+
return '___HANDLEBARS' + env.tokenStack.length + '___';
|
57
|
+
});
|
58
|
+
});
|
59
|
+
|
60
|
+
// Restore env.code for other plugins (e.g. line-numbers)
|
61
|
+
Prism.hooks.add('before-insert', function(env) {
|
62
|
+
if (env.language === 'handlebars') {
|
63
|
+
env.code = env.backupCode;
|
64
|
+
delete env.backupCode;
|
65
|
+
}
|
66
|
+
});
|
67
|
+
|
68
|
+
// Re-insert the tokens after highlighting
|
69
|
+
// and highlight them with defined grammar
|
70
|
+
Prism.hooks.add('after-highlight', function(env) {
|
71
|
+
if (env.language !== 'handlebars') {
|
72
|
+
return;
|
73
|
+
}
|
74
|
+
|
75
|
+
for (var i = 0, t; t = env.tokenStack[i]; i++) {
|
76
|
+
// The replace prevents $$, $&, $`, $', $n, $nn from being interpreted as special patterns
|
77
|
+
env.highlightedCode = env.highlightedCode.replace('___HANDLEBARS' + (i + 1) + '___', Prism.highlight(t, env.grammar, 'handlebars').replace(/\$/g, '$$$$'));
|
78
|
+
}
|
79
|
+
|
80
|
+
env.element.innerHTML = env.highlightedCode;
|
81
|
+
});
|
82
|
+
|
83
|
+
}(Prism));
|
@@ -0,0 +1,35 @@
|
|
1
|
+
Prism.languages.haskell= {
|
2
|
+
'comment': {
|
3
|
+
pattern: /(^|[^-!#$%*+=?&@|~.:<>^\\\/])(--[^-!#$%*+=?&@|~.:<>^\\\/].*|{-[\w\W]*?-})/m,
|
4
|
+
lookbehind: true
|
5
|
+
},
|
6
|
+
'char': /'([^\\']|\\([abfnrtv\\"'&]|\^[A-Z@[\]\^_]|NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|\d+|o[0-7]+|x[0-9a-fA-F]+))'/,
|
7
|
+
'string': {
|
8
|
+
pattern: /"([^\\"]|\\([abfnrtv\\"'&]|\^[A-Z@[\]\^_]|NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|\d+|o[0-7]+|x[0-9a-fA-F]+)|\\\s+\\)*"/,
|
9
|
+
greedy: true
|
10
|
+
},
|
11
|
+
'keyword' : /\b(case|class|data|deriving|do|else|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\b/,
|
12
|
+
'import_statement' : {
|
13
|
+
// The imported or hidden names are not included in this import
|
14
|
+
// statement. This is because we want to highlight those exactly like
|
15
|
+
// we do for the names in the program.
|
16
|
+
pattern: /(\r?\n|\r|^)\s*import\s+(qualified\s+)?([A-Z][_a-zA-Z0-9']*)(\.[A-Z][_a-zA-Z0-9']*)*(\s+as\s+([A-Z][_a-zA-Z0-9']*)(\.[A-Z][_a-zA-Z0-9']*)*)?(\s+hiding\b)?/m,
|
17
|
+
inside: {
|
18
|
+
'keyword': /\b(import|qualified|as|hiding)\b/
|
19
|
+
}
|
20
|
+
},
|
21
|
+
// These are builtin variables only. Constructors are highlighted later as a constant.
|
22
|
+
'builtin': /\b(abs|acos|acosh|all|and|any|appendFile|approxRational|asTypeOf|asin|asinh|atan|atan2|atanh|basicIORun|break|catch|ceiling|chr|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|denominator|digitToInt|div|divMod|drop|dropWhile|either|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromDouble|fromEnum|fromInt|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|group|head|id|inRange|index|init|intToDigit|interact|ioError|isAlpha|isAlphaNum|isAscii|isControl|isDenormalized|isDigit|isHexDigit|isIEEE|isInfinite|isLower|isNaN|isNegativeZero|isOctDigit|isPrint|isSpace|isUpper|iterate|last|lcm|length|lex|lexDigits|lexLitChar|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|numerator|odd|or|ord|otherwise|pack|pi|pred|primExitWith|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|range|rangeSize|read|readDec|readFile|readFloat|readHex|readIO|readInt|readList|readLitChar|readLn|readOct|readParen|readSigned|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showInt|showList|showLitChar|showParen|showSigned|showString|shows|showsPrec|significand|signum|sin|sinh|snd|sort|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|threadToIOResult|toEnum|toInt|toInteger|toLower|toRational|toUpper|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)\b/,
|
23
|
+
// decimal integers and floating point numbers | octal integers | hexadecimal integers
|
24
|
+
'number' : /\b(\d+(\.\d+)?(e[+-]?\d+)?|0o[0-7]+|0x[0-9a-f]+)\b/i,
|
25
|
+
// Most of this is needed because of the meaning of a single '.'.
|
26
|
+
// If it stands alone freely, it is the function composition.
|
27
|
+
// It may also be a separator between a module name and an identifier => no
|
28
|
+
// operator. If it comes together with other special characters it is an
|
29
|
+
// operator too.
|
30
|
+
'operator' : /\s\.\s|[-!#$%*+=?&@|~.:<>^\\\/]*\.[-!#$%*+=?&@|~.:<>^\\\/]+|[-!#$%*+=?&@|~.:<>^\\\/]+\.[-!#$%*+=?&@|~.:<>^\\\/]*|[-!#$%*+=?&@|~:<>^\\\/]+|`([A-Z][_a-zA-Z0-9']*\.)*[_a-z][_a-zA-Z0-9']*`/,
|
31
|
+
// In Haskell, nearly everything is a variable, do not highlight these.
|
32
|
+
'hvariable': /\b([A-Z][_a-zA-Z0-9']*\.)*[_a-z][_a-zA-Z0-9']*\b/,
|
33
|
+
'constant': /\b([A-Z][_a-zA-Z0-9']*\.)*[A-Z][_a-zA-Z0-9']*\b/,
|
34
|
+
'punctuation' : /[{}[\];(),.:]/
|
35
|
+
};
|
@@ -0,0 +1,43 @@
|
|
1
|
+
Prism.languages.haxe = Prism.languages.extend('clike', {
|
2
|
+
// Strings can be multi-line
|
3
|
+
'string': {
|
4
|
+
pattern: /(["'])(?:(?!\1)[^\\]|\\[\s\S])*\1/,
|
5
|
+
inside: {
|
6
|
+
'interpolation': {
|
7
|
+
pattern: /(^|[^\\])\$(?:\w+|\{[^}]+\})/,
|
8
|
+
lookbehind: true,
|
9
|
+
inside: {
|
10
|
+
'interpolation': {
|
11
|
+
pattern: /^\$\w*/,
|
12
|
+
alias: 'variable'
|
13
|
+
}
|
14
|
+
// See rest below
|
15
|
+
}
|
16
|
+
}
|
17
|
+
}
|
18
|
+
},
|
19
|
+
// The final look-ahead prevents highlighting of keywords if expressions such as "haxe.macro.Expr"
|
20
|
+
'keyword': /\bthis\b|\b(?:abstract|as|break|case|cast|catch|class|continue|default|do|dynamic|else|enum|extends|extern|from|for|function|if|implements|import|in|inline|interface|macro|new|null|override|public|private|return|static|super|switch|throw|to|try|typedef|using|var|while)(?!\.)\b/,
|
21
|
+
'operator': /\.{3}|\+\+?|-[->]?|[=!]=?|&&?|\|\|?|<[<=]?|>[>=]?|[*\/%~^]/
|
22
|
+
});
|
23
|
+
Prism.languages.insertBefore('haxe', 'class-name', {
|
24
|
+
'regex': {
|
25
|
+
pattern: /~\/(?:[^\/\\\r\n]|\\.)+\/[igmsu]*/
|
26
|
+
}
|
27
|
+
});
|
28
|
+
Prism.languages.insertBefore('haxe', 'keyword', {
|
29
|
+
'preprocessor': {
|
30
|
+
pattern: /#\w+/,
|
31
|
+
alias: 'builtin'
|
32
|
+
},
|
33
|
+
'metadata': {
|
34
|
+
pattern: /@:?\w+/,
|
35
|
+
alias: 'symbol'
|
36
|
+
},
|
37
|
+
'reification': {
|
38
|
+
pattern: /\$(?:\w+|(?=\{))/,
|
39
|
+
alias: 'variable'
|
40
|
+
}
|
41
|
+
});
|
42
|
+
Prism.languages.haxe['string'].inside['interpolation'].inside.rest = Prism.util.clone(Prism.languages.haxe);
|
43
|
+
delete Prism.languages.haxe['class-name'];
|
@@ -0,0 +1,50 @@
|
|
1
|
+
Prism.languages.http = {
|
2
|
+
'request-line': {
|
3
|
+
pattern: /^(POST|GET|PUT|DELETE|OPTIONS|PATCH|TRACE|CONNECT)\b\shttps?:\/\/\S+\sHTTP\/[0-9.]+/m,
|
4
|
+
inside: {
|
5
|
+
// HTTP Verb
|
6
|
+
property: /^(POST|GET|PUT|DELETE|OPTIONS|PATCH|TRACE|CONNECT)\b/,
|
7
|
+
// Path or query argument
|
8
|
+
'attr-name': /:\w+/
|
9
|
+
}
|
10
|
+
},
|
11
|
+
'response-status': {
|
12
|
+
pattern: /^HTTP\/1.[01] [0-9]+.*/m,
|
13
|
+
inside: {
|
14
|
+
// Status, e.g. 200 OK
|
15
|
+
property: {
|
16
|
+
pattern: /(^HTTP\/1.[01] )[0-9]+.*/i,
|
17
|
+
lookbehind: true
|
18
|
+
}
|
19
|
+
}
|
20
|
+
},
|
21
|
+
// HTTP header name
|
22
|
+
'header-name': {
|
23
|
+
pattern: /^[\w-]+:(?=.)/m,
|
24
|
+
alias: 'keyword'
|
25
|
+
}
|
26
|
+
};
|
27
|
+
|
28
|
+
// Create a mapping of Content-Type headers to language definitions
|
29
|
+
var httpLanguages = {
|
30
|
+
'application/json': Prism.languages.javascript,
|
31
|
+
'application/xml': Prism.languages.markup,
|
32
|
+
'text/xml': Prism.languages.markup,
|
33
|
+
'text/html': Prism.languages.markup
|
34
|
+
};
|
35
|
+
|
36
|
+
// Insert each content type parser that has its associated language
|
37
|
+
// currently loaded.
|
38
|
+
for (var contentType in httpLanguages) {
|
39
|
+
if (httpLanguages[contentType]) {
|
40
|
+
var options = {};
|
41
|
+
options[contentType] = {
|
42
|
+
pattern: new RegExp('(content-type:\\s*' + contentType + '[\\w\\W]*?)(?:\\r?\\n|\\r){2}[\\w\\W]*', 'i'),
|
43
|
+
lookbehind: true,
|
44
|
+
inside: {
|
45
|
+
rest: httpLanguages[contentType]
|
46
|
+
}
|
47
|
+
};
|
48
|
+
Prism.languages.insertBefore('http', 'header-name', options);
|
49
|
+
}
|
50
|
+
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
Prism.languages.icon = {
|
2
|
+
'comment': /#.*/,
|
3
|
+
'string': /(["'])(?:(?!\1)[^\\\r\n]|\\.|_(?:\r?\n|\r))*\1/,
|
4
|
+
'number': /\b(?:\d+r[a-z\d]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b|\.\d+\b/i,
|
5
|
+
'builtin-keyword': {
|
6
|
+
pattern: /&(?:allocated|ascii|clock|collections|cset|current|date|dateline|digits|dump|e|error(?:number|text|value)?|errout|fail|features|file|host|input|lcase|letters|level|line|main|null|output|phi|pi|pos|progname|random|regions|source|storage|subject|time|trace|ucase|version)\b/,
|
7
|
+
alias: 'variable'
|
8
|
+
},
|
9
|
+
'directive': {
|
10
|
+
pattern: /\$\w+/,
|
11
|
+
alias: 'builtin'
|
12
|
+
},
|
13
|
+
'keyword': /\b(?:break|by|case|create|default|do|else|end|every|fail|global|if|initial|invocable|link|local|next|not|of|procedure|record|repeat|return|static|suspend|then|to|until|while)\b/,
|
14
|
+
'function': /(?!\d)\w+(?=\s*[({]|\s*!\s*\[)/,
|
15
|
+
'operator': /[+-]:(?!=)|(?:[\/?@^%&]|\+\+?|--?|==?=?|~==?=?|\*\*?|\|\|\|?|<(?:->?|<?=?)|>>?=?)(?::=)?|:(?:=:?)?|[!.\\|~]/,
|
16
|
+
'punctuation': /[\[\](){},;]/
|
17
|
+
};
|
@@ -0,0 +1,58 @@
|
|
1
|
+
Prism.languages.inform7 = {
|
2
|
+
'string': {
|
3
|
+
pattern: /"[^"]*"/,
|
4
|
+
inside: {
|
5
|
+
'substitution': {
|
6
|
+
pattern: /\[[^\]]+\]/,
|
7
|
+
inside: {
|
8
|
+
'delimiter': {
|
9
|
+
pattern:/\[|\]/,
|
10
|
+
alias: 'punctuation'
|
11
|
+
}
|
12
|
+
// See rest below
|
13
|
+
}
|
14
|
+
}
|
15
|
+
}
|
16
|
+
},
|
17
|
+
'comment': /\[[^\]]+\]/,
|
18
|
+
'title': {
|
19
|
+
pattern: /^[ \t]*(?:volume|book|part(?! of)|chapter|section|table)\b.+/im,
|
20
|
+
alias: 'important'
|
21
|
+
},
|
22
|
+
'number': {
|
23
|
+
pattern: /(^|[^-])(?:(?:\b|-)\d+(?:\.\d+)?(?:\^\d+)?\w*|\b(?:one|two|three|four|five|six|seven|eight|nine|ten|eleven|twelve))\b(?!-)/i,
|
24
|
+
lookbehind: true
|
25
|
+
},
|
26
|
+
'verb': {
|
27
|
+
pattern: /(^|[^-])\b(?:applying to|are|attacking|answering|asking|be(?:ing)?|burning|buying|called|carries|carry(?! out)|carrying|climbing|closing|conceal(?:s|ing)?|consulting|contain(?:s|ing)?|cutting|drinking|dropping|eating|enclos(?:es?|ing)|entering|examining|exiting|getting|giving|going|ha(?:ve|s|ving)|hold(?:s|ing)?|impl(?:y|ies)|incorporat(?:es?|ing)|inserting|is|jumping|kissing|listening|locking|looking|mean(?:s|ing)?|opening|provid(?:es?|ing)|pulling|pushing|putting|relat(?:es?|ing)|removing|searching|see(?:s|ing)?|setting|showing|singing|sleeping|smelling|squeezing|switching|support(?:s|ing)?|swearing|taking|tasting|telling|thinking|throwing|touching|turning|tying|unlock(?:s|ing)?|var(?:y|ies|ying)|waiting|waking|waving|wear(?:s|ing)?)\b(?!-)/i,
|
28
|
+
lookbehind: true,
|
29
|
+
alias: 'operator'
|
30
|
+
},
|
31
|
+
'keyword': {
|
32
|
+
pattern: /(^|[^-])\b(?:after|before|carry out|check|continue the action|definition(?= *:)|do nothing|else|end (?:if|unless|the story)|every turn|if|include|instead(?: of)?|let|move|no|now|otherwise|repeat|report|resume the story|rule for|running through|say(?:ing)?|stop the action|test|try(?:ing)?|understand|unless|use|when|while|yes)\b(?!-)/i,
|
33
|
+
lookbehind: true
|
34
|
+
},
|
35
|
+
'property': {
|
36
|
+
pattern: /(^|[^-])\b(?:adjacent(?! to)|carried|closed|concealed|contained|dark|described|edible|empty|enclosed|enterable|even|female|fixed in place|full|handled|held|improper-named|incorporated|inedible|invisible|lighted|lit|lock(?:able|ed)|male|marked for listing|mentioned|negative|neuter|non-(?:empty|full|recurring)|odd|opaque|open(?:able)?|plural-named|portable|positive|privately-named|proper-named|provided|publically-named|pushable between rooms|recurring|related|rubbing|scenery|seen|singular-named|supported|swinging|switch(?:able|ed(?: on| off)?)|touch(?:able|ed)|transparent|unconcealed|undescribed|unlit|unlocked|unmarked for listing|unmentioned|unopenable|untouchable|unvisited|variable|visible|visited|wearable|worn)\b(?!-)/i,
|
37
|
+
lookbehind: true,
|
38
|
+
alias: 'symbol'
|
39
|
+
},
|
40
|
+
'position': {
|
41
|
+
pattern: /(^|[^-])\b(?:above|adjacent to|back side of|below|between|down|east|everywhere|front side|here|in|inside(?: from)?|north(?:east|west)?|nowhere|on(?: top of)?|other side|outside(?: from)?|parts? of|regionally in|south(?:east|west)?|through|up|west|within)\b(?!-)/i,
|
42
|
+
lookbehind: true,
|
43
|
+
alias: 'keyword'
|
44
|
+
},
|
45
|
+
'type': {
|
46
|
+
pattern: /(^|[^-])\b(?:actions?|activit(?:y|ies)|actors?|animals?|backdrops?|containers?|devices?|directions?|doors?|holders?|kinds?|lists?|m[ae]n|nobody|nothing|nouns?|numbers?|objects?|people|persons?|player(?:'s holdall)?|regions?|relations?|rooms?|rule(?:book)?s?|scenes?|someone|something|supporters?|tables?|texts?|things?|time|vehicles?|wom[ae]n)\b(?!-)/i,
|
47
|
+
lookbehind: true,
|
48
|
+
alias: 'variable'
|
49
|
+
},
|
50
|
+
'punctuation': /[.,:;(){}]/
|
51
|
+
};
|
52
|
+
|
53
|
+
Prism.languages.inform7['string'].inside['substitution'].inside.rest = Prism.util.clone(Prism.languages.inform7);
|
54
|
+
// We don't want the remaining text in the substitution to be highlighted as the string.
|
55
|
+
Prism.languages.inform7['string'].inside['substitution'].inside.rest.text = {
|
56
|
+
pattern: /\S(?:\s*\S)*/,
|
57
|
+
alias: 'comment'
|
58
|
+
};
|
@@ -0,0 +1,22 @@
|
|
1
|
+
Prism.languages.j = {
|
2
|
+
'comment': /\bNB\..*/,
|
3
|
+
'string': /'(?:''|[^'\r\n])*'/,
|
4
|
+
'keyword': /\b(?:(?:adverb|conjunction|CR|def|define|dyad|LF|monad|noun|verb)\b|(?:assert|break|case|catch[dt]?|continue|do|else|elseif|end|fcase|for|for_\w+|goto_\w+|if|label_\w+|return|select|throw|try|while|whilst)\.)/,
|
5
|
+
'verb': {
|
6
|
+
// Negative look-ahead prevents bad highlighting
|
7
|
+
// of ^: ;. =. =: !. !:
|
8
|
+
pattern: /(?!\^:|;\.|[=!][.:])(?:\{(?:\.|::?)?|p(?:\.\.?|:)|[=!\]]|[<>+*\-%$|,#][.:]?|[\^?]\.?|[;\[]:?|[~}"i][.:]|[ACeEIjLor]\.|(?:[_\/\\qsux]|_?\d):)/,
|
9
|
+
alias: 'keyword'
|
10
|
+
},
|
11
|
+
'number': /\b_?(?:(?!\d:)\d+(?:\.\d+)?(?:(?:[ejpx]|ad|ar)_?\d+(?:\.\d+)?)*(?:b_?[\da-z]+(?:\.[\da-z]+)?)?|_(?!\.))/,
|
12
|
+
'adverb': {
|
13
|
+
pattern: /[~}]|[\/\\]\.?|[bfM]\.|t[.:]/,
|
14
|
+
alias: 'builtin'
|
15
|
+
},
|
16
|
+
'operator': /[=a][.:]|_\./,
|
17
|
+
'conjunction': {
|
18
|
+
pattern: /&(?:\.:?|:)?|[.:@][.:]?|[!D][.:]|[;dHT]\.|`:?|[\^LS]:|"/,
|
19
|
+
alias: 'variable'
|
20
|
+
},
|
21
|
+
'punctuation': /[()]/
|
22
|
+
};
|
@@ -0,0 +1,198 @@
|
|
1
|
+
(function(Prism) {
|
2
|
+
// TODO:
|
3
|
+
// - Add CSS highlighting inside <style> tags
|
4
|
+
// - Add support for multi-line code blocks
|
5
|
+
// - Add support for interpolation #{} and !{}
|
6
|
+
// - Add support for tag interpolation #[]
|
7
|
+
// - Add explicit support for plain text using |
|
8
|
+
// - Add support for markup embedded in plain text
|
9
|
+
|
10
|
+
Prism.languages.jade = {
|
11
|
+
|
12
|
+
// Multiline stuff should appear before the rest
|
13
|
+
|
14
|
+
// This handles both single-line and multi-line comments
|
15
|
+
'comment': {
|
16
|
+
pattern: /(^([\t ]*))\/\/.*((?:\r?\n|\r)\2[\t ]+.+)*/m,
|
17
|
+
lookbehind: true
|
18
|
+
},
|
19
|
+
|
20
|
+
// All the tag-related part is in lookbehind
|
21
|
+
// so that it can be highlighted by the "tag" pattern
|
22
|
+
'multiline-script': {
|
23
|
+
pattern: /(^([\t ]*)script\b.*\.[\t ]*)((?:\r?\n|\r(?!\n))(?:\2[\t ]+.+|\s*?(?=\r?\n|\r)))+/m,
|
24
|
+
lookbehind: true,
|
25
|
+
inside: {
|
26
|
+
rest: Prism.languages.javascript
|
27
|
+
}
|
28
|
+
},
|
29
|
+
|
30
|
+
// See at the end of the file for known filters
|
31
|
+
'filter': {
|
32
|
+
pattern: /(^([\t ]*)):.+((?:\r?\n|\r(?!\n))(?:\2[\t ]+.+|\s*?(?=\r?\n|\r)))+/m,
|
33
|
+
lookbehind: true,
|
34
|
+
inside: {
|
35
|
+
'filter-name': {
|
36
|
+
pattern: /^:[\w-]+/,
|
37
|
+
alias: 'variable'
|
38
|
+
}
|
39
|
+
}
|
40
|
+
},
|
41
|
+
|
42
|
+
'multiline-plain-text': {
|
43
|
+
pattern: /(^([\t ]*)[\w\-#.]+\.[\t ]*)((?:\r?\n|\r(?!\n))(?:\2[\t ]+.+|\s*?(?=\r?\n|\r)))+/m,
|
44
|
+
lookbehind: true
|
45
|
+
},
|
46
|
+
'markup': {
|
47
|
+
pattern: /(^[\t ]*)<.+/m,
|
48
|
+
lookbehind: true,
|
49
|
+
inside: {
|
50
|
+
rest: Prism.languages.markup
|
51
|
+
}
|
52
|
+
},
|
53
|
+
'doctype': {
|
54
|
+
pattern: /((?:^|\n)[\t ]*)doctype(?: .+)?/,
|
55
|
+
lookbehind: true
|
56
|
+
},
|
57
|
+
|
58
|
+
// This handle all conditional and loop keywords
|
59
|
+
'flow-control': {
|
60
|
+
pattern: /(^[\t ]*)(?:if|unless|else|case|when|default|each|while)\b(?: .+)?/m,
|
61
|
+
lookbehind: true,
|
62
|
+
inside: {
|
63
|
+
'each': {
|
64
|
+
pattern: /^each .+? in\b/,
|
65
|
+
inside: {
|
66
|
+
'keyword': /\b(?:each|in)\b/,
|
67
|
+
'punctuation': /,/
|
68
|
+
}
|
69
|
+
},
|
70
|
+
'branch': {
|
71
|
+
pattern: /^(?:if|unless|else|case|when|default|while)\b/,
|
72
|
+
alias: 'keyword'
|
73
|
+
},
|
74
|
+
rest: Prism.languages.javascript
|
75
|
+
}
|
76
|
+
},
|
77
|
+
'keyword': {
|
78
|
+
pattern: /(^[\t ]*)(?:block|extends|include|append|prepend)\b.+/m,
|
79
|
+
lookbehind: true
|
80
|
+
},
|
81
|
+
'mixin': [
|
82
|
+
// Declaration
|
83
|
+
{
|
84
|
+
pattern: /(^[\t ]*)mixin .+/m,
|
85
|
+
lookbehind: true,
|
86
|
+
inside: {
|
87
|
+
'keyword': /^mixin/,
|
88
|
+
'function': /\w+(?=\s*\(|\s*$)/,
|
89
|
+
'punctuation': /[(),.]/
|
90
|
+
}
|
91
|
+
},
|
92
|
+
// Usage
|
93
|
+
{
|
94
|
+
pattern: /(^[\t ]*)\+.+/m,
|
95
|
+
lookbehind: true,
|
96
|
+
inside: {
|
97
|
+
'name': {
|
98
|
+
pattern: /^\+\w+/,
|
99
|
+
alias: 'function'
|
100
|
+
},
|
101
|
+
'rest': Prism.languages.javascript
|
102
|
+
}
|
103
|
+
}
|
104
|
+
],
|
105
|
+
'script': {
|
106
|
+
pattern: /(^[\t ]*script(?:(?:&[^(]+)?\([^)]+\))*[\t ]+).+/m,
|
107
|
+
lookbehind: true,
|
108
|
+
inside: {
|
109
|
+
rest: Prism.languages.javascript
|
110
|
+
}
|
111
|
+
},
|
112
|
+
|
113
|
+
'plain-text': {
|
114
|
+
pattern: /(^[\t ]*(?!-)[\w\-#.]*[\w\-](?:(?:&[^(]+)?\([^)]+\))*\/?[\t ]+).+/m,
|
115
|
+
lookbehind: true
|
116
|
+
},
|
117
|
+
'tag': {
|
118
|
+
pattern: /(^[\t ]*)(?!-)[\w\-#.]*[\w\-](?:(?:&[^(]+)?\([^)]+\))*\/?:?/m,
|
119
|
+
lookbehind: true,
|
120
|
+
inside: {
|
121
|
+
'attributes': [
|
122
|
+
{
|
123
|
+
pattern: /&[^(]+\([^)]+\)/,
|
124
|
+
inside: {
|
125
|
+
rest: Prism.languages.javascript
|
126
|
+
}
|
127
|
+
},
|
128
|
+
{
|
129
|
+
pattern: /\([^)]+\)/,
|
130
|
+
inside: {
|
131
|
+
'attr-value': {
|
132
|
+
pattern: /(=\s*)(?:\{[^}]*\}|[^,)\r\n]+)/,
|
133
|
+
lookbehind: true,
|
134
|
+
inside: {
|
135
|
+
rest: Prism.languages.javascript
|
136
|
+
}
|
137
|
+
},
|
138
|
+
'attr-name': /[\w-]+(?=\s*!?=|\s*[,)])/,
|
139
|
+
'punctuation': /[!=(),]+/
|
140
|
+
}
|
141
|
+
}
|
142
|
+
],
|
143
|
+
'punctuation': /:/
|
144
|
+
}
|
145
|
+
},
|
146
|
+
'code': [
|
147
|
+
{
|
148
|
+
pattern: /(^[\t ]*(?:-|!?=)).+/m,
|
149
|
+
lookbehind: true,
|
150
|
+
inside: {
|
151
|
+
rest: Prism.languages.javascript
|
152
|
+
}
|
153
|
+
}
|
154
|
+
],
|
155
|
+
'punctuation': /[.\-!=|]+/
|
156
|
+
};
|
157
|
+
|
158
|
+
var filter_pattern = '(^([\\t ]*)):{{filter_name}}((?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ]+.+|\\s*?(?=\\r?\\n|\\r)))+';
|
159
|
+
|
160
|
+
// Non exhaustive list of available filters and associated languages
|
161
|
+
var filters = [
|
162
|
+
{filter:'atpl',language:'twig'},
|
163
|
+
{filter:'coffee',language:'coffeescript'},
|
164
|
+
'ejs',
|
165
|
+
'handlebars',
|
166
|
+
'hogan',
|
167
|
+
'less',
|
168
|
+
'livescript',
|
169
|
+
'markdown',
|
170
|
+
'mustache',
|
171
|
+
'plates',
|
172
|
+
{filter:'sass',language:'scss'},
|
173
|
+
'stylus',
|
174
|
+
'swig'
|
175
|
+
|
176
|
+
];
|
177
|
+
var all_filters = {};
|
178
|
+
for (var i = 0, l = filters.length; i < l; i++) {
|
179
|
+
var filter = filters[i];
|
180
|
+
filter = typeof filter === 'string' ? {filter: filter, language: filter} : filter;
|
181
|
+
if (Prism.languages[filter.language]) {
|
182
|
+
all_filters['filter-' + filter.filter] = {
|
183
|
+
pattern: RegExp(filter_pattern.replace('{{filter_name}}', filter.filter), 'm'),
|
184
|
+
lookbehind: true,
|
185
|
+
inside: {
|
186
|
+
'filter-name': {
|
187
|
+
pattern: /^:[\w-]+/,
|
188
|
+
alias: 'variable'
|
189
|
+
},
|
190
|
+
rest: Prism.languages[filter.language]
|
191
|
+
}
|
192
|
+
}
|
193
|
+
}
|
194
|
+
}
|
195
|
+
|
196
|
+
Prism.languages.insertBefore('jade', 'filter', all_filters);
|
197
|
+
|
198
|
+
}(Prism));
|