highlighting 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (236) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +52 -0
  3. data/app/helpers/syntax_helper.rb +2 -0
  4. data/lib/highlighting.rb +6 -0
  5. data/lib/highlighting/version.rb +3 -0
  6. data/vendor/assets/javascripts/prism-abap.js +48 -0
  7. data/vendor/assets/javascripts/prism-abap.min.js +1 -0
  8. data/vendor/assets/javascripts/prism-actionscript.js +17 -0
  9. data/vendor/assets/javascripts/prism-actionscript.min.js +1 -0
  10. data/vendor/assets/javascripts/prism-apacheconf.js +47 -0
  11. data/vendor/assets/javascripts/prism-apacheconf.min.js +1 -0
  12. data/vendor/assets/javascripts/prism-apl.js +29 -0
  13. data/vendor/assets/javascripts/prism-apl.min.js +1 -0
  14. data/vendor/assets/javascripts/prism-applescript.js +20 -0
  15. data/vendor/assets/javascripts/prism-applescript.min.js +1 -0
  16. data/vendor/assets/javascripts/prism-asciidoc.js +271 -0
  17. data/vendor/assets/javascripts/prism-asciidoc.min.js +1 -0
  18. data/vendor/assets/javascripts/prism-aspnet.js +36 -0
  19. data/vendor/assets/javascripts/prism-aspnet.min.js +1 -0
  20. data/vendor/assets/javascripts/prism-autohotkey.js +27 -0
  21. data/vendor/assets/javascripts/prism-autohotkey.min.js +1 -0
  22. data/vendor/assets/javascripts/prism-autoit.js +33 -0
  23. data/vendor/assets/javascripts/prism-autoit.min.js +1 -0
  24. data/vendor/assets/javascripts/prism-bash.js +78 -0
  25. data/vendor/assets/javascripts/prism-bash.min.js +1 -0
  26. data/vendor/assets/javascripts/prism-basic.js +14 -0
  27. data/vendor/assets/javascripts/prism-basic.min.js +1 -0
  28. data/vendor/assets/javascripts/prism-batch.js +99 -0
  29. data/vendor/assets/javascripts/prism-batch.min.js +1 -0
  30. data/vendor/assets/javascripts/prism-bison.js +39 -0
  31. data/vendor/assets/javascripts/prism-bison.min.js +1 -0
  32. data/vendor/assets/javascripts/prism-brainfuck.js +20 -0
  33. data/vendor/assets/javascripts/prism-brainfuck.min.js +1 -0
  34. data/vendor/assets/javascripts/prism-c.js +33 -0
  35. data/vendor/assets/javascripts/prism-c.min.js +1 -0
  36. data/vendor/assets/javascripts/prism-clike.js +26 -0
  37. data/vendor/assets/javascripts/prism-clike.min.js +1 -0
  38. data/vendor/assets/javascripts/prism-coffeescript.js +83 -0
  39. data/vendor/assets/javascripts/prism-coffeescript.min.js +1 -0
  40. data/vendor/assets/javascripts/prism-core.js +434 -0
  41. data/vendor/assets/javascripts/prism-core.min.js +1 -0
  42. data/vendor/assets/javascripts/prism-cpp.js +12 -0
  43. data/vendor/assets/javascripts/prism-cpp.min.js +1 -0
  44. data/vendor/assets/javascripts/prism-crystal.js +53 -0
  45. data/vendor/assets/javascripts/prism-crystal.min.js +1 -0
  46. data/vendor/assets/javascripts/prism-csharp.js +24 -0
  47. data/vendor/assets/javascripts/prism-csharp.min.js +1 -0
  48. data/vendor/assets/javascripts/prism-css-extras.js +15 -0
  49. data/vendor/assets/javascripts/prism-css-extras.min.js +1 -0
  50. data/vendor/assets/javascripts/prism-css.js +48 -0
  51. data/vendor/assets/javascripts/prism-css.min.js +1 -0
  52. data/vendor/assets/javascripts/prism-d.js +64 -0
  53. data/vendor/assets/javascripts/prism-d.min.js +1 -0
  54. data/vendor/assets/javascripts/prism-dart.js +18 -0
  55. data/vendor/assets/javascripts/prism-dart.min.js +1 -0
  56. data/vendor/assets/javascripts/prism-diff.js +20 -0
  57. data/vendor/assets/javascripts/prism-diff.min.js +1 -0
  58. data/vendor/assets/javascripts/prism-docker.js +9 -0
  59. data/vendor/assets/javascripts/prism-docker.min.js +1 -0
  60. data/vendor/assets/javascripts/prism-eiffel.js +24 -0
  61. data/vendor/assets/javascripts/prism-eiffel.min.js +1 -0
  62. data/vendor/assets/javascripts/prism-elixir.js +90 -0
  63. data/vendor/assets/javascripts/prism-elixir.min.js +1 -0
  64. data/vendor/assets/javascripts/prism-erlang.js +41 -0
  65. data/vendor/assets/javascripts/prism-erlang.min.js +1 -0
  66. data/vendor/assets/javascripts/prism-fortran.js +37 -0
  67. data/vendor/assets/javascripts/prism-fortran.min.js +1 -0
  68. data/vendor/assets/javascripts/prism-fsharp.js +33 -0
  69. data/vendor/assets/javascripts/prism-fsharp.min.js +1 -0
  70. data/vendor/assets/javascripts/prism-gherkin.js +78 -0
  71. data/vendor/assets/javascripts/prism-gherkin.min.js +1 -0
  72. data/vendor/assets/javascripts/prism-git.js +68 -0
  73. data/vendor/assets/javascripts/prism-git.min.js +1 -0
  74. data/vendor/assets/javascripts/prism-glsl.js +16 -0
  75. data/vendor/assets/javascripts/prism-glsl.min.js +1 -0
  76. data/vendor/assets/javascripts/prism-go.js +9 -0
  77. data/vendor/assets/javascripts/prism-go.min.js +1 -0
  78. data/vendor/assets/javascripts/prism-groovy.js +51 -0
  79. data/vendor/assets/javascripts/prism-groovy.min.js +1 -0
  80. data/vendor/assets/javascripts/prism-haml.js +154 -0
  81. data/vendor/assets/javascripts/prism-haml.min.js +1 -0
  82. data/vendor/assets/javascripts/prism-handlebars.js +83 -0
  83. data/vendor/assets/javascripts/prism-handlebars.min.js +1 -0
  84. data/vendor/assets/javascripts/prism-haskell.js +32 -0
  85. data/vendor/assets/javascripts/prism-haskell.min.js +1 -0
  86. data/vendor/assets/javascripts/prism-haxe.js +43 -0
  87. data/vendor/assets/javascripts/prism-haxe.min.js +1 -0
  88. data/vendor/assets/javascripts/prism-http.js +50 -0
  89. data/vendor/assets/javascripts/prism-http.min.js +1 -0
  90. data/vendor/assets/javascripts/prism-icon.js +17 -0
  91. data/vendor/assets/javascripts/prism-icon.min.js +1 -0
  92. data/vendor/assets/javascripts/prism-inform7.js +58 -0
  93. data/vendor/assets/javascripts/prism-inform7.min.js +1 -0
  94. data/vendor/assets/javascripts/prism-ini.js +11 -0
  95. data/vendor/assets/javascripts/prism-ini.min.js +1 -0
  96. data/vendor/assets/javascripts/prism-j.js +22 -0
  97. data/vendor/assets/javascripts/prism-j.min.js +1 -0
  98. data/vendor/assets/javascripts/prism-jade.js +198 -0
  99. data/vendor/assets/javascripts/prism-jade.min.js +1 -0
  100. data/vendor/assets/javascripts/prism-java.js +8 -0
  101. data/vendor/assets/javascripts/prism-java.min.js +1 -0
  102. data/vendor/assets/javascripts/prism-javascript.js +45 -0
  103. data/vendor/assets/javascripts/prism-javascript.min.js +1 -0
  104. data/vendor/assets/javascripts/prism-jsx.js +24 -0
  105. data/vendor/assets/javascripts/prism-jsx.min.js +1 -0
  106. data/vendor/assets/javascripts/prism-julia.js +12 -0
  107. data/vendor/assets/javascripts/prism-julia.min.js +1 -0
  108. data/vendor/assets/javascripts/prism-keyman.js +14 -0
  109. data/vendor/assets/javascripts/prism-keyman.min.js +1 -0
  110. data/vendor/assets/javascripts/prism-kotlin.js +68 -0
  111. data/vendor/assets/javascripts/prism-kotlin.min.js +1 -0
  112. data/vendor/assets/javascripts/prism-latex.js +61 -0
  113. data/vendor/assets/javascripts/prism-latex.min.js +1 -0
  114. data/vendor/assets/javascripts/prism-less.js +60 -0
  115. data/vendor/assets/javascripts/prism-less.min.js +1 -0
  116. data/vendor/assets/javascripts/prism-lolcode.js +54 -0
  117. data/vendor/assets/javascripts/prism-lolcode.min.js +1 -0
  118. data/vendor/assets/javascripts/prism-lua.js +17 -0
  119. data/vendor/assets/javascripts/prism-lua.min.js +1 -0
  120. data/vendor/assets/javascripts/prism-makefile.js +31 -0
  121. data/vendor/assets/javascripts/prism-makefile.min.js +1 -0
  122. data/vendor/assets/javascripts/prism-markdown.js +120 -0
  123. data/vendor/assets/javascripts/prism-markdown.min.js +1 -0
  124. data/vendor/assets/javascripts/prism-markup.js +46 -0
  125. data/vendor/assets/javascripts/prism-markup.min.js +1 -0
  126. data/vendor/assets/javascripts/prism-matlab.js +14 -0
  127. data/vendor/assets/javascripts/prism-matlab.min.js +1 -0
  128. data/vendor/assets/javascripts/prism-mel.js +39 -0
  129. data/vendor/assets/javascripts/prism-mel.min.js +1 -0
  130. data/vendor/assets/javascripts/prism-mizar.js +12 -0
  131. data/vendor/assets/javascripts/prism-mizar.min.js +1 -0
  132. data/vendor/assets/javascripts/prism-monkey.js +25 -0
  133. data/vendor/assets/javascripts/prism-monkey.min.js +1 -0
  134. data/vendor/assets/javascripts/prism-nasm.js +24 -0
  135. data/vendor/assets/javascripts/prism-nasm.min.js +1 -0
  136. data/vendor/assets/javascripts/prism-nginx.js +11 -0
  137. data/vendor/assets/javascripts/prism-nginx.min.js +1 -0
  138. data/vendor/assets/javascripts/prism-nim.js +30 -0
  139. data/vendor/assets/javascripts/prism-nim.min.js +1 -0
  140. data/vendor/assets/javascripts/prism-nix.js +39 -0
  141. data/vendor/assets/javascripts/prism-nix.min.js +1 -0
  142. data/vendor/assets/javascripts/prism-nsis.js +19 -0
  143. data/vendor/assets/javascripts/prism-nsis.min.js +1 -0
  144. data/vendor/assets/javascripts/prism-objectivec.js +5 -0
  145. data/vendor/assets/javascripts/prism-objectivec.min.js +1 -0
  146. data/vendor/assets/javascripts/prism-ocaml.js +21 -0
  147. data/vendor/assets/javascripts/prism-ocaml.min.js +1 -0
  148. data/vendor/assets/javascripts/prism-oz.js +21 -0
  149. data/vendor/assets/javascripts/prism-oz.min.js +1 -0
  150. data/vendor/assets/javascripts/prism-parigp.js +27 -0
  151. data/vendor/assets/javascripts/prism-parigp.min.js +1 -0
  152. data/vendor/assets/javascripts/prism-parser.js +66 -0
  153. data/vendor/assets/javascripts/prism-parser.min.js +1 -0
  154. data/vendor/assets/javascripts/prism-pascal.js +50 -0
  155. data/vendor/assets/javascripts/prism-pascal.min.js +1 -0
  156. data/vendor/assets/javascripts/prism-perl.js +140 -0
  157. data/vendor/assets/javascripts/prism-perl.min.js +1 -0
  158. data/vendor/assets/javascripts/prism-php-extras.js +11 -0
  159. data/vendor/assets/javascripts/prism-php-extras.min.js +1 -0
  160. data/vendor/assets/javascripts/prism-php.js +110 -0
  161. data/vendor/assets/javascripts/prism-php.min.js +1 -0
  162. data/vendor/assets/javascripts/prism-powershell.js +48 -0
  163. data/vendor/assets/javascripts/prism-powershell.min.js +1 -0
  164. data/vendor/assets/javascripts/prism-processing.js +18 -0
  165. data/vendor/assets/javascripts/prism-processing.min.js +1 -0
  166. data/vendor/assets/javascripts/prism-prolog.js +17 -0
  167. data/vendor/assets/javascripts/prism-prolog.min.js +1 -0
  168. data/vendor/assets/javascripts/prism-puppet.js +131 -0
  169. data/vendor/assets/javascripts/prism-puppet.min.js +1 -0
  170. data/vendor/assets/javascripts/prism-pure.js +77 -0
  171. data/vendor/assets/javascripts/prism-pure.min.js +1 -0
  172. data/vendor/assets/javascripts/prism-python.js +24 -0
  173. data/vendor/assets/javascripts/prism-python.min.js +1 -0
  174. data/vendor/assets/javascripts/prism-q.js +44 -0
  175. data/vendor/assets/javascripts/prism-q.min.js +1 -0
  176. data/vendor/assets/javascripts/prism-qore.js +17 -0
  177. data/vendor/assets/javascripts/prism-qore.min.js +1 -0
  178. data/vendor/assets/javascripts/prism-r.js +19 -0
  179. data/vendor/assets/javascripts/prism-r.min.js +1 -0
  180. data/vendor/assets/javascripts/prism-rest.js +205 -0
  181. data/vendor/assets/javascripts/prism-rest.min.js +1 -0
  182. data/vendor/assets/javascripts/prism-rip.js +28 -0
  183. data/vendor/assets/javascripts/prism-rip.min.js +1 -0
  184. data/vendor/assets/javascripts/prism-roboconf.js +27 -0
  185. data/vendor/assets/javascripts/prism-roboconf.min.js +1 -0
  186. data/vendor/assets/javascripts/prism-ruby.js +110 -0
  187. data/vendor/assets/javascripts/prism-ruby.min.js +1 -0
  188. data/vendor/assets/javascripts/prism-rust.js +53 -0
  189. data/vendor/assets/javascripts/prism-rust.min.js +1 -0
  190. data/vendor/assets/javascripts/prism-sas.js +31 -0
  191. data/vendor/assets/javascripts/prism-sas.min.js +1 -0
  192. data/vendor/assets/javascripts/prism-sass.js +73 -0
  193. data/vendor/assets/javascripts/prism-sass.min.js +1 -0
  194. data/vendor/assets/javascripts/prism-scala.js +9 -0
  195. data/vendor/assets/javascripts/prism-scala.min.js +1 -0
  196. data/vendor/assets/javascripts/prism-scheme.js +26 -0
  197. data/vendor/assets/javascripts/prism-scheme.min.js +1 -0
  198. data/vendor/assets/javascripts/prism-scss.js +60 -0
  199. data/vendor/assets/javascripts/prism-scss.min.js +1 -0
  200. data/vendor/assets/javascripts/prism-smalltalk.js +31 -0
  201. data/vendor/assets/javascripts/prism-smalltalk.min.js +1 -0
  202. data/vendor/assets/javascripts/prism-smarty.js +127 -0
  203. data/vendor/assets/javascripts/prism-smarty.min.js +1 -0
  204. data/vendor/assets/javascripts/prism-sql.js +17 -0
  205. data/vendor/assets/javascripts/prism-sql.min.js +1 -0
  206. data/vendor/assets/javascripts/prism-stylus.js +102 -0
  207. data/vendor/assets/javascripts/prism-stylus.min.js +1 -0
  208. data/vendor/assets/javascripts/prism-swift.js +24 -0
  209. data/vendor/assets/javascripts/prism-swift.min.js +1 -0
  210. data/vendor/assets/javascripts/prism-tcl.js +43 -0
  211. data/vendor/assets/javascripts/prism-tcl.min.js +1 -0
  212. data/vendor/assets/javascripts/prism-textile.js +254 -0
  213. data/vendor/assets/javascripts/prism-textile.min.js +1 -0
  214. data/vendor/assets/javascripts/prism-twig.js +46 -0
  215. data/vendor/assets/javascripts/prism-twig.min.js +1 -0
  216. data/vendor/assets/javascripts/prism-typescript.js +3 -0
  217. data/vendor/assets/javascripts/prism-typescript.min.js +1 -0
  218. data/vendor/assets/javascripts/prism-verilog.js +17 -0
  219. data/vendor/assets/javascripts/prism-verilog.min.js +1 -0
  220. data/vendor/assets/javascripts/prism-vhdl.js +23 -0
  221. data/vendor/assets/javascripts/prism-vhdl.min.js +1 -0
  222. data/vendor/assets/javascripts/prism-vim.js +10 -0
  223. data/vendor/assets/javascripts/prism-vim.min.js +1 -0
  224. data/vendor/assets/javascripts/prism-wiki.js +81 -0
  225. data/vendor/assets/javascripts/prism-wiki.min.js +1 -0
  226. data/vendor/assets/javascripts/prism-yaml.js +44 -0
  227. data/vendor/assets/javascripts/prism-yaml.min.js +1 -0
  228. data/vendor/assets/javascripts/prism.js +708 -0
  229. data/vendor/assets/stylesheets/prism-coy.css +235 -0
  230. data/vendor/assets/stylesheets/prism-dark.css +128 -0
  231. data/vendor/assets/stylesheets/prism-funky.css +117 -0
  232. data/vendor/assets/stylesheets/prism-okaidia.css +121 -0
  233. data/vendor/assets/stylesheets/prism-tomorrow.css +121 -0
  234. data/vendor/assets/stylesheets/prism-twilight.css +201 -0
  235. data/vendor/assets/stylesheets/prism.css +137 -0
  236. metadata +306 -0
@@ -0,0 +1 @@
1
+ !function(e){e.languages.haml={"multiline-comment":{pattern:/((?:^|\r?\n|\r)([\t ]*))(?:\/|-#).*((?:\r?\n|\r)\2[\t ]+.+)*/,lookbehind:!0,alias:"comment"},"multiline-code":[{pattern:/((?:^|\r?\n|\r)([\t ]*)(?:[~-]|[&!]?=)).*,[\t ]*((?:\r?\n|\r)\2[\t ]+.*,[\t ]*)*((?:\r?\n|\r)\2[\t ]+.+)/,lookbehind:!0,inside:{rest:e.languages.ruby}},{pattern:/((?:^|\r?\n|\r)([\t ]*)(?:[~-]|[&!]?=)).*\|[\t ]*((?:\r?\n|\r)\2[\t ]+.*\|[\t ]*)*/,lookbehind:!0,inside:{rest:e.languages.ruby}}],filter:{pattern:/((?:^|\r?\n|\r)([\t ]*)):[\w-]+((?:\r?\n|\r)(?:\2[\t ]+.+|\s*?(?=\r?\n|\r)))+/,lookbehind:!0,inside:{"filter-name":{pattern:/^:[\w-]+/,alias:"variable"}}},markup:{pattern:/((?:^|\r?\n|\r)[\t ]*)<.+/,lookbehind:!0,inside:{rest:e.languages.markup}},doctype:{pattern:/((?:^|\r?\n|\r)[\t ]*)!!!(?: .+)?/,lookbehind:!0},tag:{pattern:/((?:^|\r?\n|\r)[\t ]*)[%.#][\w\-#.]*[\w\-](?:\([^)]+\)|\{(?:\{[^}]+\}|[^}])+\}|\[[^\]]+\])*[\/<>]*/,lookbehind:!0,inside:{attributes:[{pattern:/(^|[^#])\{(?:\{[^}]+\}|[^}])+\}/,lookbehind:!0,inside:{rest:e.languages.ruby}},{pattern:/\([^)]+\)/,inside:{"attr-value":{pattern:/(=\s*)(?:"(?:\\?.)*?"|[^)\s]+)/,lookbehind:!0},"attr-name":/[\w:-]+(?=\s*!?=|\s*[,)])/,punctuation:/[=(),]/}},{pattern:/\[[^\]]+\]/,inside:{rest:e.languages.ruby}}],punctuation:/[<>]/}},code:{pattern:/((?:^|\r?\n|\r)[\t ]*(?:[~-]|[&!]?=)).+/,lookbehind:!0,inside:{rest:e.languages.ruby}},interpolation:{pattern:/#\{[^}]+\}/,inside:{delimiter:{pattern:/^#\{|\}$/,alias:"punctuation"},rest:e.languages.ruby}},punctuation:{pattern:/((?:^|\r?\n|\r)[\t ]*)[~=\-&!]+/,lookbehind:!0}};for(var t="((?:^|\\r?\\n|\\r)([\\t ]*)):{{filter_name}}((?:\\r?\\n|\\r)(?:\\2[\\t ]+.+|\\s*?(?=\\r?\\n|\\r)))+",r=["css",{filter:"coffee",language:"coffeescript"},"erb","javascript","less","markdown","ruby","scss","textile"],n={},a=0,i=r.length;i>a;a++){var l=r[a];l="string"==typeof l?{filter:l,language:l}:l,e.languages[l.language]&&(n["filter-"+l.filter]={pattern:RegExp(t.replace("{{filter_name}}",l.filter)),lookbehind:!0,inside:{"filter-name":{pattern:/^:[\w-]+/,alias:"variable"},rest:e.languages[l.language]}})}e.languages.insertBefore("haml","filter",n)}(Prism);
@@ -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 @@
1
+ !function(e){var a=/\{\{\{[\w\W]+?\}\}\}|\{\{[\w\W]+?\}\}/g;e.languages.handlebars=e.languages.extend("markup",{handlebars:{pattern:a,inside:{delimiter:{pattern:/^\{\{\{?|\}\}\}?$/i,alias:"punctuation"},string:/(["'])(\\?.)*?\1/,number:/\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee][+-]?\d+)?)\b/,"boolean":/\b(true|false)\b/,block:{pattern:/^(\s*~?\s*)[#\/]\S+?(?=\s*~?\s*$|\s)/i,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\w\W]+/}},punctuation:/[!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~\s]+/}}}),e.languages.insertBefore("handlebars","tag",{"handlebars-comment":{pattern:/\{\{![\w\W]*?\}\}/,alias:["handlebars","comment"]}}),e.hooks.add("before-highlight",function(e){"handlebars"===e.language&&(e.tokenStack=[],e.backupCode=e.code,e.code=e.code.replace(a,function(a){return e.tokenStack.push(a),"___HANDLEBARS"+e.tokenStack.length+"___"}))}),e.hooks.add("before-insert",function(e){"handlebars"===e.language&&(e.code=e.backupCode,delete e.backupCode)}),e.hooks.add("after-highlight",function(a){if("handlebars"===a.language){for(var n,t=0;n=a.tokenStack[t];t++)a.highlightedCode=a.highlightedCode.replace("___HANDLEBARS"+(t+1)+"___",e.highlight(n,a.grammar,"handlebars").replace(/\$/g,"$$$$"));a.element.innerHTML=a.highlightedCode}})}(Prism);
@@ -0,0 +1,32 @@
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': /"([^\\"]|\\([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+\\)*"/,
8
+ 'keyword' : /\b(case|class|data|deriving|do|else|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\b/,
9
+ 'import_statement' : {
10
+ // The imported or hidden names are not included in this import
11
+ // statement. This is because we want to highlight those exactly like
12
+ // we do for the names in the program.
13
+ 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,
14
+ inside: {
15
+ 'keyword': /\b(import|qualified|as|hiding)\b/
16
+ }
17
+ },
18
+ // These are builtin variables only. Constructors are highlighted later as a constant.
19
+ '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/,
20
+ // decimal integers and floating point numbers | octal integers | hexadecimal integers
21
+ 'number' : /\b(\d+(\.\d+)?(e[+-]?\d+)?|0o[0-7]+|0x[0-9a-f]+)\b/i,
22
+ // Most of this is needed because of the meaning of a single '.'.
23
+ // If it stands alone freely, it is the function composition.
24
+ // It may also be a separator between a module name and an identifier => no
25
+ // operator. If it comes together with other special characters it is an
26
+ // operator too.
27
+ 'operator' : /\s\.\s|[-!#$%*+=?&@|~.:<>^\\\/]*\.[-!#$%*+=?&@|~.:<>^\\\/]+|[-!#$%*+=?&@|~.:<>^\\\/]+\.[-!#$%*+=?&@|~.:<>^\\\/]*|[-!#$%*+=?&@|~:<>^\\\/]+|`([A-Z][_a-zA-Z0-9']*\.)*[_a-z][_a-zA-Z0-9']*`/,
28
+ // In Haskell, nearly everything is a variable, do not highlight these.
29
+ 'hvariable': /\b([A-Z][_a-zA-Z0-9']*\.)*[_a-z][_a-zA-Z0-9']*\b/,
30
+ 'constant': /\b([A-Z][_a-zA-Z0-9']*\.)*[A-Z][_a-zA-Z0-9']*\b/,
31
+ 'punctuation' : /[{}[\];(),.:]/
32
+ };
@@ -0,0 +1 @@
1
+ Prism.languages.haskell={comment:{pattern:/(^|[^-!#$%*+=?&@|~.:<>^\\\/])(--[^-!#$%*+=?&@|~.:<>^\\\/].*|{-[\w\W]*?-})/m,lookbehind:!0},"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]+))'/,string:/"([^\\"]|\\([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+\\)*"/,keyword:/\b(case|class|data|deriving|do|else|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\b/,import_statement:{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,inside:{keyword:/\b(import|qualified|as|hiding)\b/}},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/,number:/\b(\d+(\.\d+)?(e[+-]?\d+)?|0o[0-7]+|0x[0-9a-f]+)\b/i,operator:/\s\.\s|[-!#$%*+=?&@|~.:<>^\\\/]*\.[-!#$%*+=?&@|~.:<>^\\\/]+|[-!#$%*+=?&@|~.:<>^\\\/]+\.[-!#$%*+=?&@|~.:<>^\\\/]*|[-!#$%*+=?&@|~:<>^\\\/]+|`([A-Z][_a-zA-Z0-9']*\.)*[_a-z][_a-zA-Z0-9']*`/,hvariable:/\b([A-Z][_a-zA-Z0-9']*\.)*[_a-z][_a-zA-Z0-9']*\b/,constant:/\b([A-Z][_a-zA-Z0-9']*\.)*[A-Z][_a-zA-Z0-9']*\b/,punctuation:/[{}[\];(),.:]/};
@@ -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 @@
1
+ Prism.languages.haxe=Prism.languages.extend("clike",{string:{pattern:/(["'])(?:(?!\1)[^\\]|\\[\s\S])*\1/,inside:{interpolation:{pattern:/(^|[^\\])\$(?:\w+|\{[^}]+\})/,lookbehind:!0,inside:{interpolation:{pattern:/^\$\w*/,alias:"variable"}}}}},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/,operator:/\.{3}|\+\+?|-[->]?|[=!]=?|&&?|\|\|?|<[<=]?|>[>=]?|[*\/%~^]/}),Prism.languages.insertBefore("haxe","class-name",{regex:{pattern:/~\/(?:[^\/\\\r\n]|\\.)+\/[igmsu]*/}}),Prism.languages.insertBefore("haxe","keyword",{preprocessor:{pattern:/#\w+/,alias:"builtin"},metadata:{pattern:/@:?\w+/,alias:"symbol"},reification:{pattern:/\$(?:\w+|(?=\{))/,alias:"variable"}}),Prism.languages.haxe.string.inside.interpolation.inside.rest=Prism.util.clone(Prism.languages.haxe),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 @@
1
+ Prism.languages.http={"request-line":{pattern:/^(POST|GET|PUT|DELETE|OPTIONS|PATCH|TRACE|CONNECT)\b\shttps?:\/\/\S+\sHTTP\/[0-9.]+/m,inside:{property:/^(POST|GET|PUT|DELETE|OPTIONS|PATCH|TRACE|CONNECT)\b/,"attr-name":/:\w+/}},"response-status":{pattern:/^HTTP\/1.[01] [0-9]+.*/m,inside:{property:{pattern:/(^HTTP\/1.[01] )[0-9]+.*/i,lookbehind:!0}}},"header-name":{pattern:/^[\w-]+:(?=.)/m,alias:"keyword"}};var httpLanguages={"application/json":Prism.languages.javascript,"application/xml":Prism.languages.markup,"text/xml":Prism.languages.markup,"text/html":Prism.languages.markup};for(var contentType in httpLanguages)if(httpLanguages[contentType]){var options={};options[contentType]={pattern:new RegExp("(content-type:\\s*"+contentType+"[\\w\\W]*?)(?:\\r?\\n|\\r){2}[\\w\\W]*","i"),lookbehind:!0,inside:{rest:httpLanguages[contentType]}},Prism.languages.insertBefore("http","header-name",options)}
@@ -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 @@
1
+ Prism.languages.icon={comment:/#.*/,string:/(["'])(?:(?!\1)[^\\\r\n]|\\.|_(?:\r?\n|\r))*\1/,number:/\b(?:\d+r[a-z\d]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b|\.\d+\b/i,"builtin-keyword":{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/,alias:"variable"},directive:{pattern:/\$\w+/,alias:"builtin"},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/,"function":/(?!\d)\w+(?=\s*[({]|\s*!\s*\[)/,operator:/[+-]:(?!=)|(?:[\/?@^%&]|\+\+?|--?|==?=?|~==?=?|\*\*?|\|\|\|?|<(?:->?|<?=?)|>>?=?)(?::=)?|:(?:=:?)?|[!.\\|~]/,punctuation:/[\[\](){},;]/};
@@ -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 @@
1
+ Prism.languages.inform7={string:{pattern:/"[^"]*"/,inside:{substitution:{pattern:/\[[^\]]+\]/,inside:{delimiter:{pattern:/\[|\]/,alias:"punctuation"}}}}},comment:/\[[^\]]+\]/,title:{pattern:/^[ \t]*(?:volume|book|part(?! of)|chapter|section|table)\b.+/im,alias:"important"},number:{pattern:/(^|[^-])(?:(?:\b|-)\d+(?:\.\d+)?(?:\^\d+)?\w*|\b(?:one|two|three|four|five|six|seven|eight|nine|ten|eleven|twelve))\b(?!-)/i,lookbehind:!0},verb:{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,lookbehind:!0,alias:"operator"},keyword:{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,lookbehind:!0},property:{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,lookbehind:!0,alias:"symbol"},position:{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,lookbehind:!0,alias:"keyword"},type:{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,lookbehind:!0,alias:"variable"},punctuation:/[.,:;(){}]/},Prism.languages.inform7.string.inside.substitution.inside.rest=Prism.util.clone(Prism.languages.inform7),Prism.languages.inform7.string.inside.substitution.inside.rest.text={pattern:/\S(?:\s*\S)*/,alias:"comment"};
@@ -0,0 +1,11 @@
1
+ Prism.languages.ini= {
2
+ 'comment': /^[ \t]*;.*$/m,
3
+ 'important': /\[.*?\]/,
4
+ 'constant': /^[ \t]*[^\s=]+?(?=[ \t]*=)/m,
5
+ 'attr-value': {
6
+ pattern: /=.*/,
7
+ inside: {
8
+ 'punctuation': /^[=]/
9
+ }
10
+ }
11
+ };
@@ -0,0 +1 @@
1
+ Prism.languages.ini={comment:/^[ \t]*;.*$/m,important:/\[.*?\]/,constant:/^[ \t]*[^\s=]+?(?=[ \t]*=)/m,"attr-value":{pattern:/=.*/,inside:{punctuation:/^[=]/}}};
@@ -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 @@
1
+ Prism.languages.j={comment:/\bNB\..*/,string:/'(?:''|[^'\r\n])*'/,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)\.)/,verb:{pattern:/(?!\^:|;\.|[=!][.:])(?:\{(?:\.|::?)?|p(?:\.\.?|:)|[=!\]]|[<>+*\-%$|,#][.:]?|[\^?]\.?|[;\[]:?|[~}"i][.:]|[ACeEIjLor]\.|(?:[_\/\\qsux]|_?\d):)/,alias:"keyword"},number:/\b_?(?:(?!\d:)\d+(?:\.\d+)?(?:(?:[ejpx]|ad|ar)_?\d+(?:\.\d+)?)*(?:b_?[\da-z]+(?:\.[\da-z]+)?)?|_(?!\.))/,adverb:{pattern:/[~}]|[\/\\]\.?|[bfM]\.|t[.:]/,alias:"builtin"},operator:/[=a][.:]|_\./,conjunction:{pattern:/&(?:\.:?|:)?|[.:@][.:]?|[!D][.:]|[;dHT]\.|`:?|[\^LS]:|"/,alias:"variable"},punctuation:/[()]/};
@@ -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));