2
Handle multiline code after tag
10
Prism.languages.haml = {
11
// Multiline stuff should appear before the rest
13
'multiline-comment': {
14
pattern: /((?:^|\r?\n|\r)([\t ]*))(?:\/|-#).*((?:\r?\n|\r)\2[\t ]+.+)*/,
21
pattern: /((?:^|\r?\n|\r)([\t ]*)(?:[~-]|[&!]?=)).*,[\t ]*((?:\r?\n|\r)\2[\t ]+.*,[\t ]*)*((?:\r?\n|\r)\2[\t ]+.+)/,
24
rest: Prism.languages.ruby
28
pattern: /((?:^|\r?\n|\r)([\t ]*)(?:[~-]|[&!]?=)).*\|[\t ]*((?:\r?\n|\r)\2[\t ]+.*\|[\t ]*)*/,
31
rest: Prism.languages.ruby
36
// See at the end of the file for known filters
38
pattern: /((?:^|\r?\n|\r)([\t ]*)):[\w-]+((?:\r?\n|\r)(?:\2[\t ]+.+|\s*?(?=\r?\n|\r)))+/,
49
pattern: /((?:^|\r?\n|\r)[\t ]*)<.+/,
52
rest: Prism.languages.markup
56
pattern: /((?:^|\r?\n|\r)[\t ]*)!!!(?: .+)?/,
60
// Allows for one nested group of braces
61
pattern: /((?:^|\r?\n|\r)[\t ]*)[%.#][\w\-#.]*[\w\-](?:\([^)]+\)|\{(?:\{[^}]+\}|[^}])+\}|\[[^\]]+\])*[\/<>]*/,
66
// Lookbehind tries to prevent interpolations for breaking it all
67
// Allows for one nested group of braces
68
pattern: /(^|[^#])\{(?:\{[^}]+\}|[^}])+\}/,
71
rest: Prism.languages.ruby
78
pattern: /(=\s*)(?:"(?:\\?.)*?"|[^)\s]+)/,
81
'attr-name': /[\w:-]+(?=\s*!?=|\s*[,)])/,
82
'punctuation': /[=(),]/
86
pattern: /\[[^\]]+\]/,
88
rest: Prism.languages.ruby
96
pattern: /((?:^|\r?\n|\r)[\t ]*(?:[~-]|[&!]?=)).+/,
99
rest: Prism.languages.ruby
102
// Interpolations in plain text
104
pattern: /#\{[^}]+\}/,
110
rest: Prism.languages.ruby
114
pattern: /((?:^|\r?\n|\r)[\t ]*)[~=\-&!]+/,
119
var filter_pattern = '((?:^|\\r?\\n|\\r)([\\t ]*)):{{filter_name}}((?:\\r?\\n|\\r)(?:\\2[\\t ]+.+|\\s*?(?=\\r?\\n|\\r)))+';
121
// Non exhaustive list of available filters and associated languages
124
{filter:'coffee',language:'coffeescript'},
133
var all_filters = {};
134
for (var i = 0, l = filters.length; i < l; i++) {
135
var filter = filters[i];
136
filter = typeof filter === 'string' ? {filter: filter, language: filter} : filter;
137
if (Prism.languages[filter.language]) {
138
all_filters['filter-' + filter.filter] = {
139
pattern: RegExp(filter_pattern.replace('{{filter_name}}', filter.filter)),
146
rest: Prism.languages[filter.language]
152
Prism.languages.insertBefore('haml', 'filter', all_filters);
b'\\ No newline at end of file'