| OLD | NEW |
| 1 /* TODO | 1 /* TODO |
| 2 Handle multiline code after tag | 2 Handle multiline code after tag |
| 3 %foo= some | | 3 %foo= some | |
| 4 multiline | | 4 multiline | |
| 5 code | | 5 code | |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 (function(Prism) { | 8 (function(Prism) { |
| 9 | 9 |
| 10 Prism.languages.haml = { | 10 Prism.languages.haml = { |
| 11 // Multiline stuff should appear before the rest | 11 // Multiline stuff should appear before the rest |
| 12 | 12 |
| 13 » » 'multiline-comment': [ | 13 » » 'multiline-comment': { |
| 14 » » » { | 14 » » » pattern: /((?:^|\r?\n|\r)([\t ]*))(?:\/|-#).*((?:\r?\n|\
r)\2[\t ]+.+)*/, |
| 15 » » » » pattern: /((?:^|\n)([\t ]*))\/.*(\n\2[\t ]+.+)*/
, | 15 » » » lookbehind: true, |
| 16 » » » » lookbehind: true, | 16 » » » alias: 'comment' |
| 17 » » » » alias: 'comment' | 17 » » }, |
| 18 » » » }, | |
| 19 » » » { | |
| 20 » » » » pattern: /((?:^|\n)([\t ]*))-#.*(\n\2[\t ]+.+)*/
, | |
| 21 » » » » lookbehind: true, | |
| 22 » » » » alias: 'comment' | |
| 23 » » » } | |
| 24 » » ], | |
| 25 | 18 |
| 26 'multiline-code': [ | 19 'multiline-code': [ |
| 27 { | 20 { |
| 28 » » » » pattern: /((?:^|\n)([\t ]*)(?:[~-]|[&!]?=)).*,[\
t ]*(\n\2[\t ]+.*,[\t ]*)*(\n\2[\t ]+.+)/, | 21 » » » » pattern: /((?:^|\r?\n|\r)([\t ]*)(?:[~-]|[&!]?=)
).*,[\t ]*((?:\r?\n|\r)\2[\t ]+.*,[\t ]*)*((?:\r?\n|\r)\2[\t ]+.+)/, |
| 29 lookbehind: true, | 22 lookbehind: true, |
| 30 inside: { | 23 inside: { |
| 31 rest: Prism.languages.ruby | 24 rest: Prism.languages.ruby |
| 32 } | 25 } |
| 33 }, | 26 }, |
| 34 { | 27 { |
| 35 » » » » pattern: /((?:^|\n)([\t ]*)(?:[~-]|[&!]?=)).*\|[
\t ]*(\n\2[\t ]+.*\|[\t ]*)*/, | 28 » » » » pattern: /((?:^|\r?\n|\r)([\t ]*)(?:[~-]|[&!]?=)
).*\|[\t ]*((?:\r?\n|\r)\2[\t ]+.*\|[\t ]*)*/, |
| 36 lookbehind: true, | 29 lookbehind: true, |
| 37 inside: { | 30 inside: { |
| 38 rest: Prism.languages.ruby | 31 rest: Prism.languages.ruby |
| 39 } | 32 } |
| 40 } | 33 } |
| 41 ], | 34 ], |
| 42 | 35 |
| 43 // See at the end of the file for known filters | 36 // See at the end of the file for known filters |
| 44 'filter': { | 37 'filter': { |
| 45 » » » pattern: /((?:^|\n)([\t ]*)):[\w-]+(\n(?:\2[\t ]+.+|\s*?
(?=\n)))+/, | 38 » » » pattern: /((?:^|\r?\n|\r)([\t ]*)):[\w-]+((?:\r?\n|\r)(?
:\2[\t ]+.+|\s*?(?=\r?\n|\r)))+/, |
| 46 lookbehind: true, | 39 lookbehind: true, |
| 47 inside: { | 40 inside: { |
| 48 'filter-name': { | 41 'filter-name': { |
| 49 pattern: /^:[\w-]+/, | 42 pattern: /^:[\w-]+/, |
| 50 alias: 'variable' | 43 alias: 'variable' |
| 51 } | 44 } |
| 52 } | 45 } |
| 53 }, | 46 }, |
| 54 | 47 |
| 55 'markup': { | 48 'markup': { |
| 56 » » » pattern: /((?:^|\n)[\t ]*)<.+/, | 49 » » » pattern: /((?:^|\r?\n|\r)[\t ]*)<.+/, |
| 57 lookbehind: true, | 50 lookbehind: true, |
| 58 inside: { | 51 inside: { |
| 59 rest: Prism.languages.markup | 52 rest: Prism.languages.markup |
| 60 } | 53 } |
| 61 }, | 54 }, |
| 62 'doctype': { | 55 'doctype': { |
| 63 » » » pattern: /((?:^|\n)[\t ]*)!!!(?: .+)?/, | 56 » » » pattern: /((?:^|\r?\n|\r)[\t ]*)!!!(?: .+)?/, |
| 64 lookbehind: true | 57 lookbehind: true |
| 65 }, | 58 }, |
| 66 'tag': { | 59 'tag': { |
| 67 // Allows for one nested group of braces | 60 // Allows for one nested group of braces |
| 68 » » » pattern: /((?:^|\n)[\t ]*)[%.#][\w\-#.]*[\w\-](?:\([^)]+
\)|\{(?:\{[^}]+\}|[^}])+\}|\[[^\]]+\])*[\/<>]*/, | 61 » » » pattern: /((?:^|\r?\n|\r)[\t ]*)[%.#][\w\-#.]*[\w\-](?:\
([^)]+\)|\{(?:\{[^}]+\}|[^}])+\}|\[[^\]]+\])*[\/<>]*/, |
| 69 lookbehind: true, | 62 lookbehind: true, |
| 70 inside: { | 63 inside: { |
| 71 'attributes': [ | 64 'attributes': [ |
| 72 { | 65 { |
| 73 // Lookbehind tries to prevent i
nterpolations for breaking it all | 66 // Lookbehind tries to prevent i
nterpolations for breaking it all |
| 74 // Allows for one nested group o
f braces | 67 // Allows for one nested group o
f braces |
| 75 pattern: /(^|[^#])\{(?:\{[^}]+\}
|[^}])+\}/, | 68 pattern: /(^|[^#])\{(?:\{[^}]+\}
|[^}])+\}/, |
| 76 lookbehind: true, | 69 lookbehind: true, |
| 77 inside: { | 70 inside: { |
| 78 rest: Prism.languages.ru
by | 71 rest: Prism.languages.ru
by |
| (...skipping 14 matching lines...) Expand all Loading... |
| 93 pattern: /\[[^\]]+\]/, | 86 pattern: /\[[^\]]+\]/, |
| 94 inside: { | 87 inside: { |
| 95 rest: Prism.languages.ru
by | 88 rest: Prism.languages.ru
by |
| 96 } | 89 } |
| 97 } | 90 } |
| 98 ], | 91 ], |
| 99 'punctuation': /[<>]/ | 92 'punctuation': /[<>]/ |
| 100 } | 93 } |
| 101 }, | 94 }, |
| 102 'code': { | 95 'code': { |
| 103 » » » pattern: /((?:^|\n)[\t ]*(?:[~-]|[&!]?=)).+/, | 96 » » » pattern: /((?:^|\r?\n|\r)[\t ]*(?:[~-]|[&!]?=)).+/, |
| 104 lookbehind: true, | 97 lookbehind: true, |
| 105 inside: { | 98 inside: { |
| 106 rest: Prism.languages.ruby | 99 rest: Prism.languages.ruby |
| 107 } | 100 } |
| 108 }, | 101 }, |
| 109 // Interpolations in plain text | 102 // Interpolations in plain text |
| 110 'interpolation': { | 103 'interpolation': { |
| 111 pattern: /#\{[^}]+\}/, | 104 pattern: /#\{[^}]+\}/, |
| 112 inside: { | 105 inside: { |
| 113 'delimiter': { | 106 'delimiter': { |
| 114 pattern: /^#\{|\}$/, | 107 pattern: /^#\{|\}$/, |
| 115 alias: 'punctuation' | 108 alias: 'punctuation' |
| 116 }, | 109 }, |
| 117 rest: Prism.languages.ruby | 110 rest: Prism.languages.ruby |
| 118 } | 111 } |
| 119 }, | 112 }, |
| 120 'punctuation': { | 113 'punctuation': { |
| 121 » » » pattern: /((?:^|\n)[\t ]*)[~=\-&!]/, | 114 » » » pattern: /((?:^|\r?\n|\r)[\t ]*)[~=\-&!]+/, |
| 122 lookbehind: true | 115 lookbehind: true |
| 123 } | 116 } |
| 124 }; | 117 }; |
| 125 | 118 |
| 126 » var filter_pattern = '((?:^|\\n)([\\t ]*)):{{filter_name}}(\\n(?:\\2[\\t
]+.+|\\s*?(?=\\n)))+'; | 119 » var filter_pattern = '((?:^|\\r?\\n|\\r)([\\t ]*)):{{filter_name}}((?:\\
r?\\n|\\r)(?:\\2[\\t ]+.+|\\s*?(?=\\r?\\n|\\r)))+'; |
| 127 | 120 |
| 128 // Non exhaustive list of available filters and associated languages | 121 // Non exhaustive list of available filters and associated languages |
| 129 var filters = [ | 122 var filters = [ |
| 130 'css', | 123 'css', |
| 131 {filter:'coffee',language:'coffeescript'}, | 124 {filter:'coffee',language:'coffeescript'}, |
| 132 'erb', | 125 'erb', |
| 133 'javascript', | 126 'javascript', |
| 134 'less', | 127 'less', |
| 135 'markdown', | 128 'markdown', |
| 136 'ruby', | 129 'ruby', |
| (...skipping 15 matching lines...) Expand all Loading... |
| 152 }, | 145 }, |
| 153 rest: Prism.languages[filter.language] | 146 rest: Prism.languages[filter.language] |
| 154 } | 147 } |
| 155 } | 148 } |
| 156 } | 149 } |
| 157 } | 150 } |
| 158 | 151 |
| 159 Prism.languages.insertBefore('haml', 'filter', all_filters); | 152 Prism.languages.insertBefore('haml', 'filter', all_filters); |
| 160 | 153 |
| 161 }(Prism)); | 154 }(Prism)); |
| OLD | NEW |