haml_coffee_assets 1.11.1 → 1.12.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +1 -1
- data/lib/haml_coffee_assets/action_view/template_handler.rb +1 -1
- data/lib/haml_coffee_assets/configuration.rb +1 -1
- data/lib/haml_coffee_assets/rails/engine.rb +1 -1
- data/lib/haml_coffee_assets/version.rb +1 -1
- data/lib/js/haml_coffee_assets.js +3 -1
- data/lib/js/hamlcoffee.js +638 -301
- data/vendor/assets/javascripts/hamlcoffee.js.coffee.erb +2 -2
- data/vendor/assets/javascripts/hamlcoffee_amd.js.coffee.erb +2 -2
- metadata +15 -25
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 93f2ccc92329ca9b444dfee07f4e9a41dbd4ae6c
|
4
|
+
data.tar.gz: 801901d64e1274b52947117848a341821f715994
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 85cc9b88742800121bacf533bf23c3db55705300c53949af219045ab9ece3f682bd5619d6e009e47dd61ac64107173ca06dc09fe57c8706c9250b4b7c86079ad
|
7
|
+
data.tar.gz: 18445a4f5229d2ec3bc7827701d7d860da37526d01f7670a3e5b81c9b960d6cc7c3284f95014183120344b37b03415e997f464ce078319d86bca3e5cc0309fae
|
data/README.md
CHANGED
@@ -5,7 +5,7 @@ pipeline, so you can use them as JavaScript templates in your JavaScript heavy R
|
|
5
5
|
of templates is also possible, allowing you to share the same template files for Rails and JavaScript templates. It also
|
6
6
|
works as a pure [Sprockets](https://github.com/sstephenson/sprockets) engine without Rails.
|
7
7
|
|
8
|
-
Tested on MRI Ruby 1.
|
8
|
+
Tested on MRI Ruby 1.9.2, 1.9.3, 2.0.0 and the latest version of JRuby.
|
9
9
|
|
10
10
|
## Features
|
11
11
|
|
@@ -25,7 +25,7 @@ module HamlCoffeeAssets
|
|
25
25
|
self.escapeAttributes = true
|
26
26
|
self.cleanValue = true
|
27
27
|
self.placement = 'global'
|
28
|
-
self.dependencies = { :
|
28
|
+
self.dependencies = { hc: 'hamlcoffee_amd' }
|
29
29
|
self.customHtmlEscape = 'window.HAML.escape'
|
30
30
|
self.customCleanValue = 'window.HAML.cleanValue'
|
31
31
|
self.customPreserve = 'window.HAML.preserve'
|
@@ -14,7 +14,7 @@ module HamlCoffeeAssets
|
|
14
14
|
|
15
15
|
# Initialize Haml Coffee Assets after Sprockets
|
16
16
|
#
|
17
|
-
initializer 'sprockets.hamlcoffeeassets', :
|
17
|
+
initializer 'sprockets.hamlcoffeeassets', group: :all, after: 'sprockets.environment' do |app|
|
18
18
|
require 'haml_coffee_assets/action_view/template_handler'
|
19
19
|
|
20
20
|
# No server side template support with AMD
|
@@ -41,6 +41,8 @@ var HamlCoffeeAssets = (function(){
|
|
41
41
|
context, extendScope) {
|
42
42
|
|
43
43
|
var compiler = new Compiler({
|
44
|
+
name: name,
|
45
|
+
namespace: namespace,
|
44
46
|
format: format,
|
45
47
|
uglify: uglify,
|
46
48
|
basename: basename,
|
@@ -67,7 +69,7 @@ var HamlCoffeeAssets = (function(){
|
|
67
69
|
var template;
|
68
70
|
|
69
71
|
if (jst) {
|
70
|
-
template = CoffeeScript.compile(compiler.render(
|
72
|
+
template = CoffeeScript.compile(compiler.render());
|
71
73
|
|
72
74
|
} else {
|
73
75
|
var hamlc = CoffeeScript.compile(compiler.precompile(), { bare: true });
|
data/lib/js/hamlcoffee.js
CHANGED
@@ -4,13 +4,15 @@ var require = function (file, cwd) {
|
|
4
4
|
if (!mod) throw new Error(
|
5
5
|
'Failed to resolve module ' + file + ', tried ' + resolved
|
6
6
|
);
|
7
|
-
var
|
7
|
+
var cached = require.cache[resolved];
|
8
|
+
var res = cached? cached.exports : mod();
|
8
9
|
return res;
|
9
|
-
}
|
10
|
+
};
|
10
11
|
|
11
12
|
require.paths = [];
|
12
13
|
require.modules = {};
|
13
|
-
require.
|
14
|
+
require.cache = {};
|
15
|
+
require.extensions = [".js",".coffee",".json"];
|
14
16
|
|
15
17
|
require._core = {
|
16
18
|
'assert': true,
|
@@ -41,6 +43,7 @@ require.resolve = (function () {
|
|
41
43
|
throw new Error("Cannot find module '" + x + "'");
|
42
44
|
|
43
45
|
function loadAsFileSync (x) {
|
46
|
+
x = path.normalize(x);
|
44
47
|
if (require.modules[x]) {
|
45
48
|
return x;
|
46
49
|
}
|
@@ -53,7 +56,7 @@ require.resolve = (function () {
|
|
53
56
|
|
54
57
|
function loadAsDirectorySync (x) {
|
55
58
|
x = x.replace(/\/+$/, '');
|
56
|
-
var pkgfile = x + '/package.json';
|
59
|
+
var pkgfile = path.normalize(x + '/package.json');
|
57
60
|
if (require.modules[pkgfile]) {
|
58
61
|
var pkg = require.modules[pkgfile]();
|
59
62
|
var b = pkg.browserify;
|
@@ -118,7 +121,7 @@ require.alias = function (from, to) {
|
|
118
121
|
|
119
122
|
var keys = (Object.keys || function (obj) {
|
120
123
|
var res = [];
|
121
|
-
for (var key in obj) res.push(key)
|
124
|
+
for (var key in obj) res.push(key);
|
122
125
|
return res;
|
123
126
|
})(require.modules);
|
124
127
|
|
@@ -134,77 +137,66 @@ require.alias = function (from, to) {
|
|
134
137
|
}
|
135
138
|
};
|
136
139
|
|
137
|
-
|
138
|
-
var
|
139
|
-
|
140
|
-
|
141
|
-
;
|
142
|
-
|
143
|
-
var require_ = function (file) {
|
144
|
-
return require(file, dirname)
|
145
|
-
};
|
146
|
-
require_.resolve = function (name) {
|
147
|
-
return require.resolve(name, dirname);
|
148
|
-
};
|
149
|
-
require_.modules = require.modules;
|
150
|
-
require_.define = require.define;
|
151
|
-
var module_ = { exports : {} };
|
140
|
+
(function () {
|
141
|
+
var process = {};
|
142
|
+
var global = typeof window !== 'undefined' ? window : {};
|
143
|
+
var definedProcess = false;
|
152
144
|
|
153
|
-
require.
|
154
|
-
require.modules
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
filename
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
if (typeof process === 'undefined') process = {};
|
145
|
+
require.define = function (filename, fn) {
|
146
|
+
if (!definedProcess && require.modules.__browserify_process) {
|
147
|
+
process = require.modules.__browserify_process();
|
148
|
+
definedProcess = true;
|
149
|
+
}
|
150
|
+
|
151
|
+
var dirname = require._core[filename]
|
152
|
+
? ''
|
153
|
+
: require.modules.path().dirname(filename)
|
154
|
+
;
|
155
|
+
|
156
|
+
var require_ = function (file) {
|
157
|
+
var requiredModule = require(file, dirname);
|
158
|
+
var cached = require.cache[require.resolve(file, dirname)];
|
169
159
|
|
170
|
-
if (
|
171
|
-
|
172
|
-
var canPost = typeof window !== 'undefined'
|
173
|
-
&& window.postMessage && window.addEventListener
|
174
|
-
;
|
175
|
-
|
176
|
-
if (canPost) {
|
177
|
-
window.addEventListener('message', function (ev) {
|
178
|
-
if (ev.source === window && ev.data === 'browserify-tick') {
|
179
|
-
ev.stopPropagation();
|
180
|
-
if (queue.length > 0) {
|
181
|
-
var fn = queue.shift();
|
182
|
-
fn();
|
183
|
-
}
|
160
|
+
if (cached && cached.parent === null) {
|
161
|
+
cached.parent = module_;
|
184
162
|
}
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
163
|
+
|
164
|
+
return requiredModule;
|
165
|
+
};
|
166
|
+
require_.resolve = function (name) {
|
167
|
+
return require.resolve(name, dirname);
|
168
|
+
};
|
169
|
+
require_.modules = require.modules;
|
170
|
+
require_.define = require.define;
|
171
|
+
require_.cache = require.cache;
|
172
|
+
var module_ = {
|
173
|
+
id : filename,
|
174
|
+
filename: filename,
|
175
|
+
exports : {},
|
176
|
+
loaded : false,
|
177
|
+
parent: null
|
178
|
+
};
|
179
|
+
|
180
|
+
require.modules[filename] = function () {
|
181
|
+
require.cache[filename] = module_;
|
182
|
+
fn.call(
|
183
|
+
module_.exports,
|
184
|
+
require_,
|
185
|
+
module_,
|
186
|
+
module_.exports,
|
187
|
+
dirname,
|
188
|
+
filename,
|
189
|
+
process,
|
190
|
+
global
|
191
|
+
);
|
192
|
+
module_.loaded = true;
|
193
|
+
return module_.exports;
|
194
|
+
};
|
194
195
|
};
|
195
196
|
})();
|
196
197
|
|
197
|
-
if (!process.title) process.title = 'browser';
|
198
198
|
|
199
|
-
|
200
|
-
if (name === 'evals') return require('vm')
|
201
|
-
else throw new Error('No such module')
|
202
|
-
};
|
203
|
-
|
204
|
-
if (!process.cwd) process.cwd = function () { return '.' };
|
205
|
-
|
206
|
-
require.define("path", function (require, module, exports, __dirname, __filename) {
|
207
|
-
function filter (xs, fn) {
|
199
|
+
require.define("path",function(require,module,exports,__dirname,__filename,process,global){function filter (xs, fn) {
|
208
200
|
var res = [];
|
209
201
|
for (var i = 0; i < xs.length; i++) {
|
210
202
|
if (fn(xs[i], i, xs)) res.push(xs[i]);
|
@@ -339,11 +331,109 @@ exports.extname = function(path) {
|
|
339
331
|
return splitPathRe.exec(path)[3] || '';
|
340
332
|
};
|
341
333
|
|
334
|
+
exports.relative = function(from, to) {
|
335
|
+
from = exports.resolve(from).substr(1);
|
336
|
+
to = exports.resolve(to).substr(1);
|
337
|
+
|
338
|
+
function trim(arr) {
|
339
|
+
var start = 0;
|
340
|
+
for (; start < arr.length; start++) {
|
341
|
+
if (arr[start] !== '') break;
|
342
|
+
}
|
343
|
+
|
344
|
+
var end = arr.length - 1;
|
345
|
+
for (; end >= 0; end--) {
|
346
|
+
if (arr[end] !== '') break;
|
347
|
+
}
|
348
|
+
|
349
|
+
if (start > end) return [];
|
350
|
+
return arr.slice(start, end - start + 1);
|
351
|
+
}
|
352
|
+
|
353
|
+
var fromParts = trim(from.split('/'));
|
354
|
+
var toParts = trim(to.split('/'));
|
355
|
+
|
356
|
+
var length = Math.min(fromParts.length, toParts.length);
|
357
|
+
var samePartsLength = length;
|
358
|
+
for (var i = 0; i < length; i++) {
|
359
|
+
if (fromParts[i] !== toParts[i]) {
|
360
|
+
samePartsLength = i;
|
361
|
+
break;
|
362
|
+
}
|
363
|
+
}
|
364
|
+
|
365
|
+
var outputParts = [];
|
366
|
+
for (var i = samePartsLength; i < fromParts.length; i++) {
|
367
|
+
outputParts.push('..');
|
368
|
+
}
|
369
|
+
|
370
|
+
outputParts = outputParts.concat(toParts.slice(samePartsLength));
|
371
|
+
|
372
|
+
return outputParts.join('/');
|
373
|
+
};
|
374
|
+
|
375
|
+
});
|
376
|
+
|
377
|
+
require.define("__browserify_process",function(require,module,exports,__dirname,__filename,process,global){var process = module.exports = {};
|
378
|
+
|
379
|
+
process.nextTick = (function () {
|
380
|
+
var canSetImmediate = typeof window !== 'undefined'
|
381
|
+
&& window.setImmediate;
|
382
|
+
var canPost = typeof window !== 'undefined'
|
383
|
+
&& window.postMessage && window.addEventListener
|
384
|
+
;
|
385
|
+
|
386
|
+
if (canSetImmediate) {
|
387
|
+
return function (f) { return window.setImmediate(f) };
|
388
|
+
}
|
389
|
+
|
390
|
+
if (canPost) {
|
391
|
+
var queue = [];
|
392
|
+
window.addEventListener('message', function (ev) {
|
393
|
+
if (ev.source === window && ev.data === 'browserify-tick') {
|
394
|
+
ev.stopPropagation();
|
395
|
+
if (queue.length > 0) {
|
396
|
+
var fn = queue.shift();
|
397
|
+
fn();
|
398
|
+
}
|
399
|
+
}
|
400
|
+
}, true);
|
401
|
+
|
402
|
+
return function nextTick(fn) {
|
403
|
+
queue.push(fn);
|
404
|
+
window.postMessage('browserify-tick', '*');
|
405
|
+
};
|
406
|
+
}
|
407
|
+
|
408
|
+
return function nextTick(fn) {
|
409
|
+
setTimeout(fn, 0);
|
410
|
+
};
|
411
|
+
})();
|
412
|
+
|
413
|
+
process.title = 'browser';
|
414
|
+
process.browser = true;
|
415
|
+
process.env = {};
|
416
|
+
process.argv = [];
|
417
|
+
|
418
|
+
process.binding = function (name) {
|
419
|
+
if (name === 'evals') return (require)('vm')
|
420
|
+
else throw new Error('No such module. (Possibly not yet loaded)')
|
421
|
+
};
|
422
|
+
|
423
|
+
(function () {
|
424
|
+
var cwd = '/';
|
425
|
+
var path;
|
426
|
+
process.cwd = function () { return cwd };
|
427
|
+
process.chdir = function (dir) {
|
428
|
+
if (!path) path = require('path');
|
429
|
+
cwd = path.resolve(dir, cwd);
|
430
|
+
};
|
431
|
+
})();
|
432
|
+
|
342
433
|
});
|
343
434
|
|
344
|
-
require.define("/haml-coffee.coffee",
|
345
|
-
|
346
|
-
var Code, Comment, Filter, Haml, HamlCoffee, Node, Text, indent, whitespace;
|
435
|
+
require.define("/haml-coffee.coffee",function(require,module,exports,__dirname,__filename,process,global){(function() {
|
436
|
+
var Code, Comment, Directive, Filter, Haml, HamlCoffee, Node, Text, indent, whitespace;
|
347
437
|
|
348
438
|
Node = require('./nodes/node');
|
349
439
|
|
@@ -357,43 +447,50 @@ require.define("/haml-coffee.coffee", function (require, module, exports, __dirn
|
|
357
447
|
|
358
448
|
Filter = require('./nodes/filter');
|
359
449
|
|
450
|
+
Directive = require('./nodes/directive');
|
451
|
+
|
360
452
|
whitespace = require('./util/text').whitespace;
|
361
453
|
|
362
454
|
indent = require('./util/text').indent;
|
363
455
|
|
364
456
|
module.exports = HamlCoffee = (function() {
|
365
|
-
|
366
|
-
HamlCoffee.VERSION = '1.9.1';
|
457
|
+
HamlCoffee.VERSION = '1.11.0';
|
367
458
|
|
368
459
|
function HamlCoffee(options) {
|
369
|
-
var _base, _base10, _base11, _base2, _base3, _base4, _base5, _base6, _base7, _base8, _base9, _ref, _ref10, _ref11, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9;
|
460
|
+
var segment, segments, _base, _base1, _base10, _base11, _base12, _base13, _base2, _base3, _base4, _base5, _base6, _base7, _base8, _base9, _i, _len, _ref, _ref1, _ref10, _ref11, _ref12, _ref13, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9;
|
461
|
+
|
370
462
|
this.options = options != null ? options : {};
|
371
463
|
if ((_ref = (_base = this.options).placement) == null) {
|
372
464
|
_base.placement = 'global';
|
373
465
|
}
|
374
|
-
if ((
|
375
|
-
|
466
|
+
if ((_ref1 = (_base1 = this.options).dependencies) == null) {
|
467
|
+
_base1.dependencies = {
|
376
468
|
hc: 'hamlcoffee'
|
377
469
|
};
|
378
470
|
}
|
379
|
-
if ((
|
380
|
-
|
471
|
+
if ((_ref2 = (_base2 = this.options).escapeHtml) == null) {
|
472
|
+
_base2.escapeHtml = true;
|
381
473
|
}
|
382
|
-
if ((
|
383
|
-
|
474
|
+
if ((_ref3 = (_base3 = this.options).escapeAttributes) == null) {
|
475
|
+
_base3.escapeAttributes = true;
|
384
476
|
}
|
385
|
-
if ((
|
386
|
-
|
477
|
+
if ((_ref4 = (_base4 = this.options).cleanValue) == null) {
|
478
|
+
_base4.cleanValue = true;
|
387
479
|
}
|
388
|
-
if ((
|
389
|
-
|
390
|
-
_base7.basename = false;
|
480
|
+
if ((_ref5 = (_base5 = this.options).uglify) == null) {
|
481
|
+
_base5.uglify = false;
|
391
482
|
}
|
392
|
-
if ((
|
393
|
-
|
483
|
+
if ((_ref6 = (_base6 = this.options).basename) == null) {
|
484
|
+
_base6.basename = false;
|
394
485
|
}
|
395
|
-
if ((
|
396
|
-
|
486
|
+
if ((_ref7 = (_base7 = this.options).extendScope) == null) {
|
487
|
+
_base7.extendScope = false;
|
488
|
+
}
|
489
|
+
if ((_ref8 = (_base8 = this.options).format) == null) {
|
490
|
+
_base8.format = 'html5';
|
491
|
+
}
|
492
|
+
if ((_ref9 = (_base9 = this.options).hyphenateDataAttrs) == null) {
|
493
|
+
_base9.hyphenateDataAttrs = true;
|
397
494
|
}
|
398
495
|
if ((_ref10 = (_base10 = this.options).preserveTags) == null) {
|
399
496
|
_base10.preserveTags = 'pre,textarea';
|
@@ -401,6 +498,27 @@ require.define("/haml-coffee.coffee", function (require, module, exports, __dirn
|
|
401
498
|
if ((_ref11 = (_base11 = this.options).selfCloseTags) == null) {
|
402
499
|
_base11.selfCloseTags = 'meta,img,link,br,hr,input,area,param,col,base';
|
403
500
|
}
|
501
|
+
if (this.options.placement === 'global') {
|
502
|
+
if ((_ref12 = (_base12 = this.options).name) == null) {
|
503
|
+
_base12.name = 'test';
|
504
|
+
}
|
505
|
+
if ((_ref13 = (_base13 = this.options).namespace) == null) {
|
506
|
+
_base13.namespace = 'window.HAML';
|
507
|
+
}
|
508
|
+
segments = ("" + this.options.namespace + "." + this.options.name).replace(/(\s|-)+/g, '_').split(/\./);
|
509
|
+
this.options.name = this.options.basename ? segments.pop().split(/\/|\\/).pop() : segments.pop();
|
510
|
+
this.options.namespace = segments.shift();
|
511
|
+
this.intro = '';
|
512
|
+
if (segments.length !== 0) {
|
513
|
+
for (_i = 0, _len = segments.length; _i < _len; _i++) {
|
514
|
+
segment = segments[_i];
|
515
|
+
this.options.namespace += "." + segment;
|
516
|
+
this.intro += "" + this.options.namespace + " ?= {}\n";
|
517
|
+
}
|
518
|
+
} else {
|
519
|
+
this.intro += "" + this.options.namespace + " ?= {}\n";
|
520
|
+
}
|
521
|
+
}
|
404
522
|
}
|
405
523
|
|
406
524
|
HamlCoffee.prototype.indentChanged = function() {
|
@@ -452,16 +570,19 @@ require.define("/haml-coffee.coffee", function (require, module, exports, __dirn
|
|
452
570
|
};
|
453
571
|
|
454
572
|
HamlCoffee.prototype.popParent = function() {
|
455
|
-
var i, _ref, _results;
|
573
|
+
var i, _i, _ref, _results;
|
574
|
+
|
456
575
|
_results = [];
|
457
|
-
for (i = 0, _ref = this.delta - 1; 0 <= _ref ?
|
576
|
+
for (i = _i = 0, _ref = this.delta - 1; 0 <= _ref ? _i <= _ref : _i >= _ref; i = 0 <= _ref ? ++_i : --_i) {
|
458
577
|
_results.push(this.parentNode = this.stack.pop());
|
459
578
|
}
|
460
579
|
return _results;
|
461
580
|
};
|
462
581
|
|
463
582
|
HamlCoffee.prototype.getNodeOptions = function(override) {
|
464
|
-
if (override == null)
|
583
|
+
if (override == null) {
|
584
|
+
override = {};
|
585
|
+
}
|
465
586
|
return {
|
466
587
|
parentNode: override.parentNode || this.parentNode,
|
467
588
|
blockLevel: override.blockLevel || this.currentBlockLevel,
|
@@ -470,15 +591,22 @@ require.define("/haml-coffee.coffee", function (require, module, exports, __dirn
|
|
470
591
|
escapeAttributes: override.escapeAttributes || this.options.escapeAttributes,
|
471
592
|
cleanValue: override.cleanValue || this.options.cleanValue,
|
472
593
|
format: override.format || this.options.format,
|
594
|
+
hyphenateDataAttrs: override.hyphenateDataAttrs || this.options.format,
|
473
595
|
preserveTags: override.preserveTags || this.options.preserveTags,
|
474
596
|
selfCloseTags: override.selfCloseTags || this.options.selfCloseTags,
|
475
|
-
uglify: override.uglify || this.options.uglify
|
597
|
+
uglify: override.uglify || this.options.uglify,
|
598
|
+
placement: override.placement || this.options.placement,
|
599
|
+
namespace: override.namespace || this.options.namespace,
|
600
|
+
name: override.name || this.options.name
|
476
601
|
};
|
477
602
|
};
|
478
603
|
|
479
604
|
HamlCoffee.prototype.nodeFactory = function(expression) {
|
480
605
|
var node, options, _ref;
|
481
|
-
|
606
|
+
|
607
|
+
if (expression == null) {
|
608
|
+
expression = '';
|
609
|
+
}
|
482
610
|
options = this.getNodeOptions();
|
483
611
|
if (expression.match(/^:(escaped|preserve|css|javascript|plain|cdata|coffeescript)/)) {
|
484
612
|
node = new Filter(expression, options);
|
@@ -488,16 +616,23 @@ require.define("/haml-coffee.coffee", function (require, module, exports, __dirn
|
|
488
616
|
node = new Code(expression, options);
|
489
617
|
} else if (expression.match(/^(%|#[^{]|\.|\!)(.*)/)) {
|
490
618
|
node = new Haml(expression, options);
|
619
|
+
} else if (expression.match(/^\+(.*)/)) {
|
620
|
+
node = new Directive(expression, options);
|
491
621
|
} else {
|
492
622
|
node = new Text(expression, options);
|
493
623
|
}
|
494
|
-
if ((_ref = options.parentNode) != null)
|
624
|
+
if ((_ref = options.parentNode) != null) {
|
625
|
+
_ref.addChild(node);
|
626
|
+
}
|
495
627
|
return node;
|
496
628
|
};
|
497
629
|
|
498
630
|
HamlCoffee.prototype.parse = function(source) {
|
499
631
|
var attributes, expression, line, lines, result, text, ws, _ref;
|
500
|
-
|
632
|
+
|
633
|
+
if (source == null) {
|
634
|
+
source = '';
|
635
|
+
}
|
501
636
|
this.lineNumber = this.previousIndent = this.tabSize = this.currentBlockLevel = this.previousBlockLevel = 0;
|
502
637
|
this.currentCodeBlockLevel = this.previousCodeBlockLevel = 0;
|
503
638
|
this.node = null;
|
@@ -531,7 +666,9 @@ require.define("/haml-coffee.coffee", function (require, module, exports, __dirn
|
|
531
666
|
result = line.match(/^(\s*)(.*)/);
|
532
667
|
ws = result[1];
|
533
668
|
expression = result[2];
|
534
|
-
if (/^\s*$/.test(line))
|
669
|
+
if (/^\s*$/.test(line)) {
|
670
|
+
continue;
|
671
|
+
}
|
535
672
|
while (/^[%.#].*[{(]/.test(expression) && !/^(\s*)[-=&!~.%#</]/.test(lines[0]) && /([-\w]+[\w:-]*\w?)\s*=|('\w+[\w:-]*\w?')\s*=|("\w+[\w:-]*\w?")\s*=|(\w+[\w:-]*\w?):|('[-\w]+[\w:-]*\w?'):|("[-\w]+[\w:-]*\w?"):|:(\w+[\w:-]*\w?)\s*=>|:?'([-\w]+[\w:-]*\w?)'\s*=>|:?"([-\w]+[\w:-]*\w?)"\s*=>/.test(lines[0])) {
|
536
673
|
attributes = lines.shift();
|
537
674
|
expression = expression.replace(/(\s)+\|\s*$/, '');
|
@@ -563,6 +700,7 @@ require.define("/haml-coffee.coffee", function (require, module, exports, __dirn
|
|
563
700
|
|
564
701
|
HamlCoffee.prototype.evaluate = function(node) {
|
565
702
|
var child, _i, _len, _ref;
|
703
|
+
|
566
704
|
_ref = node.children;
|
567
705
|
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
568
706
|
child = _ref[_i];
|
@@ -571,18 +709,26 @@ require.define("/haml-coffee.coffee", function (require, module, exports, __dirn
|
|
571
709
|
return node.evaluate();
|
572
710
|
};
|
573
711
|
|
574
|
-
HamlCoffee.prototype.render = function(
|
575
|
-
if (namespace == null) namespace = 'window.HAML';
|
712
|
+
HamlCoffee.prototype.render = function() {
|
576
713
|
switch (this.options.placement) {
|
577
714
|
case 'amd':
|
578
715
|
return this.renderAmd();
|
716
|
+
case 'standalone':
|
717
|
+
return this.renderStandalone();
|
579
718
|
default:
|
580
|
-
return this.renderGlobal(
|
719
|
+
return this.renderGlobal();
|
581
720
|
}
|
582
721
|
};
|
583
722
|
|
723
|
+
HamlCoffee.prototype.renderStandalone = function() {
|
724
|
+
var template;
|
725
|
+
|
726
|
+
return template = "return (context) ->\n (->\n" + (indent(this.precompile(), 2)) + "\n ).call(context)";
|
727
|
+
};
|
728
|
+
|
584
729
|
HamlCoffee.prototype.renderAmd = function() {
|
585
|
-
var m, module, modules, param, params, template, _ref,
|
730
|
+
var m, module, modules, param, params, template, _ref, _ref1;
|
731
|
+
|
586
732
|
if (/^hamlcoffee/.test(this.options.dependencies['hc'])) {
|
587
733
|
this.options.customHtmlEscape = 'hc.escape';
|
588
734
|
this.options.customCleanValue = 'hc.cleanValue';
|
@@ -602,15 +748,16 @@ require.define("/haml-coffee.coffee", function (require, module, exports, __dirn
|
|
602
748
|
params.push(param);
|
603
749
|
}
|
604
750
|
template = indent(this.precompile(), 4);
|
605
|
-
|
606
|
-
for (param in
|
607
|
-
module =
|
751
|
+
_ref1 = this.findDependencies(template);
|
752
|
+
for (param in _ref1) {
|
753
|
+
module = _ref1[param];
|
608
754
|
modules.push(module);
|
609
755
|
params.push(param);
|
610
756
|
}
|
611
757
|
if (modules.length !== 0) {
|
612
758
|
modules = (function() {
|
613
759
|
var _i, _len, _results;
|
760
|
+
|
614
761
|
_results = [];
|
615
762
|
for (_i = 0, _len = modules.length; _i < _len; _i++) {
|
616
763
|
m = modules[_i];
|
@@ -625,30 +772,18 @@ require.define("/haml-coffee.coffee", function (require, module, exports, __dirn
|
|
625
772
|
return "define " + modules + " ->\n (context) ->\n render = ->\n \n" + template + "\n render.call(context)";
|
626
773
|
};
|
627
774
|
|
628
|
-
HamlCoffee.prototype.renderGlobal = function(
|
629
|
-
var
|
630
|
-
|
631
|
-
template =
|
632
|
-
segments = ("" + namespace + "." + templateName).replace(/(\s|-)+/g, '_').split(/\./);
|
633
|
-
templateName = this.options.basename ? segments.pop().split(/\/|\\/).pop() : segments.pop();
|
634
|
-
namespace = segments.shift();
|
635
|
-
if (segments.length !== 0) {
|
636
|
-
for (_i = 0, _len = segments.length; _i < _len; _i++) {
|
637
|
-
segment = segments[_i];
|
638
|
-
namespace += "." + segment;
|
639
|
-
template += "" + namespace + " ?= {}\n";
|
640
|
-
}
|
641
|
-
} else {
|
642
|
-
template += "" + namespace + " ?= {}\n";
|
643
|
-
}
|
775
|
+
HamlCoffee.prototype.renderGlobal = function() {
|
776
|
+
var template;
|
777
|
+
|
778
|
+
template = this.intro;
|
644
779
|
if (this.options.extendScope) {
|
645
|
-
template += "" + namespace + "['" +
|
780
|
+
template += "" + this.options.namespace + "['" + this.options.name + "'] = (context) -> ( ->\n";
|
646
781
|
template += " `with (context || {}) {`\n";
|
647
782
|
template += "" + (indent(this.precompile(), 1));
|
648
783
|
template += "`}`\n";
|
649
784
|
template += ").call(context)";
|
650
785
|
} else {
|
651
|
-
template += "" + namespace + "['" +
|
786
|
+
template += "" + this.options.namespace + "['" + this.options.name + "'] = (context) -> ( ->\n";
|
652
787
|
template += "" + (indent(this.precompile(), 1));
|
653
788
|
template += ").call(context)";
|
654
789
|
}
|
@@ -657,6 +792,7 @@ require.define("/haml-coffee.coffee", function (require, module, exports, __dirn
|
|
657
792
|
|
658
793
|
HamlCoffee.prototype.precompile = function() {
|
659
794
|
var code, fn;
|
795
|
+
|
660
796
|
fn = '';
|
661
797
|
code = this.createCode();
|
662
798
|
if (code.indexOf('$e') !== -1) {
|
@@ -725,7 +861,8 @@ require.define("/haml-coffee.coffee", function (require, module, exports, __dirn
|
|
725
861
|
};
|
726
862
|
|
727
863
|
HamlCoffee.prototype.createCode = function() {
|
728
|
-
var child, code, line, processors, _i, _j, _len,
|
864
|
+
var child, code, line, processors, _i, _j, _len, _len1, _ref, _ref1;
|
865
|
+
|
729
866
|
code = [];
|
730
867
|
this.lines = [];
|
731
868
|
_ref = this.root.children;
|
@@ -735,9 +872,9 @@ require.define("/haml-coffee.coffee", function (require, module, exports, __dirn
|
|
735
872
|
}
|
736
873
|
this.lines = this.combineText(this.lines);
|
737
874
|
this.blockLevel = 0;
|
738
|
-
|
739
|
-
for (_j = 0,
|
740
|
-
line =
|
875
|
+
_ref1 = this.lines;
|
876
|
+
for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {
|
877
|
+
line = _ref1[_j];
|
741
878
|
if (line !== null) {
|
742
879
|
switch (line.type) {
|
743
880
|
case 'text':
|
@@ -753,10 +890,18 @@ require.define("/haml-coffee.coffee", function (require, module, exports, __dirn
|
|
753
890
|
break;
|
754
891
|
case 'insert':
|
755
892
|
processors = '';
|
756
|
-
if (line.findAndPreserve)
|
757
|
-
|
758
|
-
|
759
|
-
if (
|
893
|
+
if (line.findAndPreserve) {
|
894
|
+
processors += '$fp ';
|
895
|
+
}
|
896
|
+
if (line.preserve) {
|
897
|
+
processors += '$p ';
|
898
|
+
}
|
899
|
+
if (line.escape) {
|
900
|
+
processors += '$e ';
|
901
|
+
}
|
902
|
+
if (this.options.cleanValue) {
|
903
|
+
processors += '$c ';
|
904
|
+
}
|
760
905
|
code.push("" + (whitespace(line.cw)) + (this.getBuffer(this.blockLevel)) + ".push \"" + (whitespace(line.hw)) + "\" + " + processors + line.code);
|
761
906
|
if (line.block === 'start') {
|
762
907
|
this.blockLevel += 1;
|
@@ -778,6 +923,7 @@ require.define("/haml-coffee.coffee", function (require, module, exports, __dirn
|
|
778
923
|
|
779
924
|
HamlCoffee.prototype.combineText = function(lines) {
|
780
925
|
var combined, line, nextLine;
|
926
|
+
|
781
927
|
combined = [];
|
782
928
|
while ((line = lines.shift()) !== void 0) {
|
783
929
|
if (line.type === 'text') {
|
@@ -821,6 +967,7 @@ require.define("/haml-coffee.coffee", function (require, module, exports, __dirn
|
|
821
967
|
|
822
968
|
HamlCoffee.prototype.findDependencies = function(code) {
|
823
969
|
var dependencies, match, module, name, requireRegexp;
|
970
|
+
|
824
971
|
requireRegexp = /require(?:\s+|\()(['"])(.+?)(\1)\)?/gm;
|
825
972
|
dependencies = {};
|
826
973
|
while (match = requireRegexp.exec(code)) {
|
@@ -839,21 +986,21 @@ require.define("/haml-coffee.coffee", function (require, module, exports, __dirn
|
|
839
986
|
|
840
987
|
});
|
841
988
|
|
842
|
-
require.define("/nodes/node.coffee",
|
843
|
-
(function() {
|
989
|
+
require.define("/nodes/node.coffee",function(require,module,exports,__dirname,__filename,process,global){(function() {
|
844
990
|
var Node, escapeHTML;
|
845
991
|
|
846
992
|
escapeHTML = require('../util/text').escapeHTML;
|
847
993
|
|
848
994
|
module.exports = Node = (function() {
|
849
|
-
|
850
995
|
Node.CLEAR_WHITESPACE_LEFT = '\u0091';
|
851
996
|
|
852
997
|
Node.CLEAR_WHITESPACE_RIGHT = '\u0092';
|
853
998
|
|
854
999
|
function Node(expression, options) {
|
855
1000
|
this.expression = expression != null ? expression : '';
|
856
|
-
if (options == null)
|
1001
|
+
if (options == null) {
|
1002
|
+
options = {};
|
1003
|
+
}
|
857
1004
|
this.parentNode = options.parentNode;
|
858
1005
|
this.children = [];
|
859
1006
|
this.opener = this.closer = null;
|
@@ -868,10 +1015,14 @@ require.define("/nodes/node.coffee", function (require, module, exports, __dirna
|
|
868
1015
|
this.escapeAttributes = options.escapeAttributes;
|
869
1016
|
this.cleanValue = options.cleanValue;
|
870
1017
|
this.format = options.format;
|
1018
|
+
this.hyphenateDataAttrs = options.hyphenateDataAttrs;
|
871
1019
|
this.selfCloseTags = options.selfCloseTags.split(',');
|
872
1020
|
this.uglify = options.uglify;
|
873
1021
|
this.codeBlockLevel = options.codeBlockLevel;
|
874
1022
|
this.blockLevel = options.blockLevel;
|
1023
|
+
this.placement = options.placement;
|
1024
|
+
this.namespace = options.namespace;
|
1025
|
+
this.name = options.name;
|
875
1026
|
}
|
876
1027
|
|
877
1028
|
Node.prototype.addChild = function(child) {
|
@@ -900,7 +1051,9 @@ require.define("/nodes/node.coffee", function (require, module, exports, __dirna
|
|
900
1051
|
};
|
901
1052
|
|
902
1053
|
Node.prototype.isPreserved = function() {
|
903
|
-
if (this.preserve)
|
1054
|
+
if (this.preserve) {
|
1055
|
+
return true;
|
1056
|
+
}
|
904
1057
|
if (this.parentNode) {
|
905
1058
|
return this.parentNode.isPreserved();
|
906
1059
|
} else {
|
@@ -909,7 +1062,9 @@ require.define("/nodes/node.coffee", function (require, module, exports, __dirna
|
|
909
1062
|
};
|
910
1063
|
|
911
1064
|
Node.prototype.isCommented = function() {
|
912
|
-
if (this.constructor.name === 'Comment')
|
1065
|
+
if (this.constructor.name === 'Comment') {
|
1066
|
+
return true;
|
1067
|
+
}
|
913
1068
|
if (this.parentNode) {
|
914
1069
|
return this.parentNode.isCommented();
|
915
1070
|
} else {
|
@@ -918,7 +1073,9 @@ require.define("/nodes/node.coffee", function (require, module, exports, __dirna
|
|
918
1073
|
};
|
919
1074
|
|
920
1075
|
Node.prototype.markText = function(text, escape) {
|
921
|
-
if (escape == null)
|
1076
|
+
if (escape == null) {
|
1077
|
+
escape = false;
|
1078
|
+
}
|
922
1079
|
return {
|
923
1080
|
type: 'text',
|
924
1081
|
cw: this.codeBlockLevel,
|
@@ -936,9 +1093,15 @@ require.define("/nodes/node.coffee", function (require, module, exports, __dirna
|
|
936
1093
|
};
|
937
1094
|
|
938
1095
|
Node.prototype.markInsertingCode = function(code, escape, preserve, findAndPreserve) {
|
939
|
-
if (escape == null)
|
940
|
-
|
941
|
-
|
1096
|
+
if (escape == null) {
|
1097
|
+
escape = false;
|
1098
|
+
}
|
1099
|
+
if (preserve == null) {
|
1100
|
+
preserve = false;
|
1101
|
+
}
|
1102
|
+
if (findAndPreserve == null) {
|
1103
|
+
findAndPreserve = false;
|
1104
|
+
}
|
942
1105
|
return {
|
943
1106
|
type: 'insert',
|
944
1107
|
cw: this.codeBlockLevel,
|
@@ -953,9 +1116,12 @@ require.define("/nodes/node.coffee", function (require, module, exports, __dirna
|
|
953
1116
|
Node.prototype.evaluate = function() {};
|
954
1117
|
|
955
1118
|
Node.prototype.render = function() {
|
956
|
-
var child, output, rendered, tag, _i, _j, _k, _l, _len, _len2, _len3, _len4,
|
1119
|
+
var child, output, rendered, tag, _i, _j, _k, _l, _len, _len1, _len2, _len3, _len4, _m, _ref, _ref1, _ref2, _ref3, _ref4;
|
1120
|
+
|
957
1121
|
output = [];
|
958
|
-
if (this.silent)
|
1122
|
+
if (this.silent) {
|
1123
|
+
return output;
|
1124
|
+
}
|
959
1125
|
if (this.children.length === 0) {
|
960
1126
|
if (this.opener && this.closer) {
|
961
1127
|
tag = this.getOpener();
|
@@ -976,9 +1142,9 @@ require.define("/nodes/node.coffee", function (require, module, exports, __dirna
|
|
976
1142
|
_ref = this.children;
|
977
1143
|
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
978
1144
|
child = _ref[_i];
|
979
|
-
|
980
|
-
for (_j = 0,
|
981
|
-
rendered =
|
1145
|
+
_ref1 = child.render();
|
1146
|
+
for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {
|
1147
|
+
rendered = _ref1[_j];
|
982
1148
|
rendered.hw = this.blockLevel;
|
983
1149
|
output.push(rendered);
|
984
1150
|
}
|
@@ -986,24 +1152,24 @@ require.define("/nodes/node.coffee", function (require, module, exports, __dirna
|
|
986
1152
|
output.push(this.getCloser());
|
987
1153
|
} else {
|
988
1154
|
output.push(this.getOpener());
|
989
|
-
|
990
|
-
for (_k = 0,
|
991
|
-
child =
|
1155
|
+
_ref2 = this.children;
|
1156
|
+
for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) {
|
1157
|
+
child = _ref2[_k];
|
992
1158
|
output = output.concat(child.render());
|
993
1159
|
}
|
994
1160
|
output.push(this.getCloser());
|
995
1161
|
}
|
996
1162
|
} else if (this.opener) {
|
997
1163
|
output.push(this.getOpener());
|
998
|
-
|
999
|
-
for (_l = 0,
|
1000
|
-
child =
|
1164
|
+
_ref3 = this.children;
|
1165
|
+
for (_l = 0, _len3 = _ref3.length; _l < _len3; _l++) {
|
1166
|
+
child = _ref3[_l];
|
1001
1167
|
output = output.concat(child.render());
|
1002
1168
|
}
|
1003
1169
|
} else {
|
1004
|
-
|
1005
|
-
for (_m = 0,
|
1006
|
-
child =
|
1170
|
+
_ref4 = this.children;
|
1171
|
+
for (_m = 0, _len4 = _ref4.length; _m < _len4; _m++) {
|
1172
|
+
child = _ref4[_m];
|
1007
1173
|
output.push(this.markText(child.render().text));
|
1008
1174
|
}
|
1009
1175
|
}
|
@@ -1019,11 +1185,11 @@ require.define("/nodes/node.coffee", function (require, module, exports, __dirna
|
|
1019
1185
|
|
1020
1186
|
});
|
1021
1187
|
|
1022
|
-
require.define("/util/text.coffee",
|
1023
|
-
|
1188
|
+
require.define("/util/text.coffee",function(require,module,exports,__dirname,__filename,process,global){(function() {
|
1024
1189
|
module.exports = {
|
1025
1190
|
whitespace: function(n) {
|
1026
1191
|
var a;
|
1192
|
+
|
1027
1193
|
n = n * 2;
|
1028
1194
|
a = [];
|
1029
1195
|
while (a.length < n) {
|
@@ -1032,15 +1198,21 @@ require.define("/util/text.coffee", function (require, module, exports, __dirnam
|
|
1032
1198
|
return a.join('');
|
1033
1199
|
},
|
1034
1200
|
escapeQuotes: function(text) {
|
1035
|
-
if (!text)
|
1201
|
+
if (!text) {
|
1202
|
+
return '';
|
1203
|
+
}
|
1036
1204
|
return text.replace(/"/g, '\\"').replace(/\\\\\"/g, '\\"');
|
1037
1205
|
},
|
1038
1206
|
unescapeQuotes: function(text) {
|
1039
|
-
if (!text)
|
1207
|
+
if (!text) {
|
1208
|
+
return '';
|
1209
|
+
}
|
1040
1210
|
return text.replace(/\\"/g, '"');
|
1041
1211
|
},
|
1042
1212
|
escapeHTML: function(text) {
|
1043
|
-
if (!text)
|
1213
|
+
if (!text) {
|
1214
|
+
return '';
|
1215
|
+
}
|
1044
1216
|
return text.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/\"/g, '"');
|
1045
1217
|
},
|
1046
1218
|
preserve: function(code) {
|
@@ -1055,23 +1227,25 @@ require.define("/util/text.coffee", function (require, module, exports, __dirnam
|
|
1055
1227
|
}
|
1056
1228
|
};
|
1057
1229
|
|
1230
|
+
}).call(this);
|
1231
|
+
|
1058
1232
|
});
|
1059
1233
|
|
1060
|
-
require.define("/nodes/text.coffee",
|
1061
|
-
|
1062
|
-
|
1063
|
-
|
1234
|
+
require.define("/nodes/text.coffee",function(require,module,exports,__dirname,__filename,process,global){(function() {
|
1235
|
+
var Node, Text, escapeQuotes, _ref,
|
1236
|
+
__hasProp = {}.hasOwnProperty,
|
1237
|
+
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
|
1064
1238
|
|
1065
1239
|
Node = require('./node');
|
1066
1240
|
|
1067
1241
|
escapeQuotes = require('../util/text').escapeQuotes;
|
1068
1242
|
|
1069
|
-
module.exports = Text = (function() {
|
1070
|
-
|
1071
|
-
__extends(Text, Node);
|
1243
|
+
module.exports = Text = (function(_super) {
|
1244
|
+
__extends(Text, _super);
|
1072
1245
|
|
1073
1246
|
function Text() {
|
1074
|
-
Text.__super__.constructor.apply(this, arguments);
|
1247
|
+
_ref = Text.__super__.constructor.apply(this, arguments);
|
1248
|
+
return _ref;
|
1075
1249
|
}
|
1076
1250
|
|
1077
1251
|
Text.prototype.evaluate = function() {
|
@@ -1080,31 +1254,32 @@ require.define("/nodes/text.coffee", function (require, module, exports, __dirna
|
|
1080
1254
|
|
1081
1255
|
return Text;
|
1082
1256
|
|
1083
|
-
})();
|
1257
|
+
})(Node);
|
1084
1258
|
|
1085
1259
|
}).call(this);
|
1086
1260
|
|
1087
1261
|
});
|
1088
1262
|
|
1089
|
-
require.define("/nodes/haml.coffee",
|
1090
|
-
|
1091
|
-
|
1092
|
-
|
1263
|
+
require.define("/nodes/haml.coffee",function(require,module,exports,__dirname,__filename,process,global){(function() {
|
1264
|
+
var Haml, Node, escapeQuotes, _ref,
|
1265
|
+
__hasProp = {}.hasOwnProperty,
|
1266
|
+
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
|
1093
1267
|
|
1094
1268
|
Node = require('./node');
|
1095
1269
|
|
1096
1270
|
escapeQuotes = require('../util/text').escapeQuotes;
|
1097
1271
|
|
1098
|
-
module.exports = Haml = (function() {
|
1099
|
-
|
1100
|
-
__extends(Haml, Node);
|
1272
|
+
module.exports = Haml = (function(_super) {
|
1273
|
+
__extends(Haml, _super);
|
1101
1274
|
|
1102
1275
|
function Haml() {
|
1103
|
-
Haml.__super__.constructor.apply(this, arguments);
|
1276
|
+
_ref = Haml.__super__.constructor.apply(this, arguments);
|
1277
|
+
return _ref;
|
1104
1278
|
}
|
1105
1279
|
|
1106
1280
|
Haml.prototype.evaluate = function() {
|
1107
1281
|
var assignment, code, identifier, match, prefix, tokens;
|
1282
|
+
|
1108
1283
|
tokens = this.parseExpression(this.expression);
|
1109
1284
|
if (tokens.doctype) {
|
1110
1285
|
return this.opener = this.markText("" + (escapeQuotes(this.buildDocType(tokens.doctype))));
|
@@ -1164,10 +1339,13 @@ require.define("/nodes/haml.coffee", function (require, module, exports, __dirna
|
|
1164
1339
|
};
|
1165
1340
|
|
1166
1341
|
Haml.prototype.parseExpression = function(exp) {
|
1167
|
-
var attributes, classes, id, key, tag, value,
|
1342
|
+
var attributes, classes, id, key, tag, value, _ref1, _ref2;
|
1343
|
+
|
1168
1344
|
tag = this.parseTag(exp);
|
1169
|
-
if (this.preserveTags.indexOf(tag.tag) !== -1)
|
1170
|
-
|
1345
|
+
if (this.preserveTags.indexOf(tag.tag) !== -1) {
|
1346
|
+
this.preserve = true;
|
1347
|
+
}
|
1348
|
+
id = this.interpolateCodeAttribute((_ref1 = tag.ids) != null ? _ref1.pop() : void 0, true);
|
1171
1349
|
classes = tag.classes;
|
1172
1350
|
attributes = {};
|
1173
1351
|
if (tag.attributes) {
|
@@ -1201,9 +1379,10 @@ require.define("/nodes/haml.coffee", function (require, module, exports, __dirna
|
|
1201
1379
|
};
|
1202
1380
|
|
1203
1381
|
Haml.prototype.parseTag = function(exp) {
|
1204
|
-
var assignment, attr, attributes, ch, classes, doctype, end, haml, htmlAttributes, id, ids, key, klass, level, pos, reference, rest, rubyAttributes, start, tag, text, val, whitespace, _i, _j, _len,
|
1382
|
+
var assignment, attr, attributes, ch, classes, doctype, end, error, haml, htmlAttributes, id, ids, key, klass, level, pos, reference, rest, rubyAttributes, start, tag, text, val, whitespace, _i, _j, _k, _len, _len1, _ref1, _ref2, _ref3, _ref4, _ref5;
|
1383
|
+
|
1205
1384
|
try {
|
1206
|
-
doctype = (
|
1385
|
+
doctype = (_ref1 = exp.match(/^(\!{3}.*)/)) != null ? _ref1[1] : void 0;
|
1207
1386
|
if (doctype) {
|
1208
1387
|
return {
|
1209
1388
|
doctype: doctype
|
@@ -1230,9 +1409,11 @@ require.define("/nodes/haml.coffee", function (require, module, exports, __dirna
|
|
1230
1409
|
}
|
1231
1410
|
})();
|
1232
1411
|
level = 0;
|
1233
|
-
for (pos = 0, _ref3 = rest.length; 0 <= _ref3 ?
|
1412
|
+
for (pos = _j = 0, _ref3 = rest.length; 0 <= _ref3 ? _j <= _ref3 : _j >= _ref3; pos = 0 <= _ref3 ? ++_j : --_j) {
|
1234
1413
|
ch = rest[pos];
|
1235
|
-
if (ch === start)
|
1414
|
+
if (ch === start) {
|
1415
|
+
level += 1;
|
1416
|
+
}
|
1236
1417
|
if (ch === end) {
|
1237
1418
|
if (level === 1) {
|
1238
1419
|
break;
|
@@ -1265,8 +1446,8 @@ require.define("/nodes/haml.coffee", function (require, module, exports, __dirna
|
|
1265
1446
|
}
|
1266
1447
|
attributes = {};
|
1267
1448
|
_ref4 = [this.parseAttributes(htmlAttributes), this.parseAttributes(rubyAttributes)];
|
1268
|
-
for (
|
1269
|
-
attr = _ref4[
|
1449
|
+
for (_k = 0, _len1 = _ref4.length; _k < _len1; _k++) {
|
1450
|
+
attr = _ref4[_k];
|
1270
1451
|
for (key in attr) {
|
1271
1452
|
val = attr[key];
|
1272
1453
|
attributes[key] = val;
|
@@ -1275,13 +1456,17 @@ require.define("/nodes/haml.coffee", function (require, module, exports, __dirna
|
|
1275
1456
|
if (whitespace = (_ref5 = assignment.match(/^[<>]{0,2}/)) != null ? _ref5[0] : void 0) {
|
1276
1457
|
assignment = assignment.substring(whitespace.length);
|
1277
1458
|
}
|
1278
|
-
if (assignment[0] === ' ')
|
1459
|
+
if (assignment[0] === ' ') {
|
1460
|
+
assignment = assignment.substring(1);
|
1461
|
+
}
|
1279
1462
|
if (assignment && !assignment.match(/^(=|!=|&=|~)/)) {
|
1280
1463
|
text = assignment.replace(/^ /, '');
|
1281
1464
|
assignment = void 0;
|
1282
1465
|
}
|
1283
1466
|
if (whitespace) {
|
1284
|
-
if (whitespace.indexOf('>') !== -1)
|
1467
|
+
if (whitespace.indexOf('>') !== -1) {
|
1468
|
+
this.wsRemoval.around = true;
|
1469
|
+
}
|
1285
1470
|
if (whitespace.indexOf('<') !== -1) {
|
1286
1471
|
this.wsRemoval.inside = true;
|
1287
1472
|
this.preserve = true;
|
@@ -1293,19 +1478,21 @@ require.define("/nodes/haml.coffee", function (require, module, exports, __dirna
|
|
1293
1478
|
return {
|
1294
1479
|
tag: tag ? tag[1] : 'div',
|
1295
1480
|
ids: ids ? (function() {
|
1296
|
-
var
|
1481
|
+
var _l, _len2, _results;
|
1482
|
+
|
1297
1483
|
_results = [];
|
1298
|
-
for (
|
1299
|
-
id = ids[
|
1484
|
+
for (_l = 0, _len2 = ids.length; _l < _len2; _l++) {
|
1485
|
+
id = ids[_l];
|
1300
1486
|
_results.push("'" + (id.substr(1)) + "'");
|
1301
1487
|
}
|
1302
1488
|
return _results;
|
1303
1489
|
})() : void 0,
|
1304
1490
|
classes: classes ? (function() {
|
1305
|
-
var
|
1491
|
+
var _l, _len2, _results;
|
1492
|
+
|
1306
1493
|
_results = [];
|
1307
|
-
for (
|
1308
|
-
klass = classes[
|
1494
|
+
for (_l = 0, _len2 = classes.length; _l < _len2; _l++) {
|
1495
|
+
klass = classes[_l];
|
1309
1496
|
_results.push("'" + (klass.substr(1)) + "'");
|
1310
1497
|
}
|
1311
1498
|
return _results;
|
@@ -1315,15 +1502,19 @@ require.define("/nodes/haml.coffee", function (require, module, exports, __dirna
|
|
1315
1502
|
reference: reference,
|
1316
1503
|
text: text
|
1317
1504
|
};
|
1318
|
-
} catch (
|
1319
|
-
|
1505
|
+
} catch (_error) {
|
1506
|
+
error = _error;
|
1507
|
+
throw new Error("Unable to parse tag from " + exp + ": " + error);
|
1320
1508
|
}
|
1321
1509
|
};
|
1322
1510
|
|
1323
1511
|
Haml.prototype.parseAttributes = function(exp) {
|
1324
|
-
var attributes, ch, endPos, hasDataAttribute, inDataAttribute, key, keyValue, keys, level, marker, markers, pairs, pos, quoted, start, startPos, type, value, _i, _len,
|
1512
|
+
var attr, attributes, ch, endPos, hasDataAttribute, inDataAttribute, key, keyValue, keys, level, marker, markers, pairs, pos, quote, quoted, start, startPos, type, value, _i, _j, _k, _len, _len1, _ref1, _ref2, _ref3, _ref4, _ref5;
|
1513
|
+
|
1325
1514
|
attributes = {};
|
1326
|
-
if (exp === void 0)
|
1515
|
+
if (exp === void 0) {
|
1516
|
+
return attributes;
|
1517
|
+
}
|
1327
1518
|
type = exp.substring(0, 1);
|
1328
1519
|
exp = exp.replace(/(=|:|=>)\s*('([^\\']|\\\\|\\')*'|"([^\\"]|\\\\|\\")*")/g, function(match, type, value) {
|
1329
1520
|
return type + (value != null ? value.replace(/(:|=|=>)/g, '\u0090$1') : void 0);
|
@@ -1338,11 +1529,13 @@ require.define("/nodes/haml.coffee", function (require, module, exports, __dirna
|
|
1338
1529
|
startPos = 0;
|
1339
1530
|
endPos = exp.length;
|
1340
1531
|
}
|
1341
|
-
for (pos = startPos; startPos <= endPos ?
|
1532
|
+
for (pos = _i = startPos; startPos <= endPos ? _i < endPos : _i > endPos; pos = startPos <= endPos ? ++_i : --_i) {
|
1342
1533
|
ch = exp[pos];
|
1343
1534
|
if (ch === '(') {
|
1344
1535
|
level += 1;
|
1345
|
-
if (level === 1)
|
1536
|
+
if (level === 1) {
|
1537
|
+
start = pos;
|
1538
|
+
}
|
1346
1539
|
}
|
1347
1540
|
if (ch === ')') {
|
1348
1541
|
if (level === 1) {
|
@@ -1357,9 +1550,9 @@ require.define("/nodes/haml.coffee", function (require, module, exports, __dirna
|
|
1357
1550
|
}
|
1358
1551
|
}
|
1359
1552
|
}
|
1360
|
-
|
1361
|
-
for (
|
1362
|
-
marker =
|
1553
|
+
_ref1 = markers.reverse();
|
1554
|
+
for (_j = 0, _len = _ref1.length; _j < _len; _j++) {
|
1555
|
+
marker = _ref1[_j];
|
1363
1556
|
exp = exp.substring(0, marker.start) + exp.substring(marker.start, marker.end).replace(/(:|=|=>)/g, '\u0090$1') + exp.substring(marker.end);
|
1364
1557
|
}
|
1365
1558
|
switch (type) {
|
@@ -1374,43 +1567,71 @@ require.define("/nodes/haml.coffee", function (require, module, exports, __dirna
|
|
1374
1567
|
hasDataAttribute = false;
|
1375
1568
|
while (pairs.length) {
|
1376
1569
|
keyValue = pairs.splice(0, 2);
|
1377
|
-
|
1378
|
-
|
1379
|
-
|
1380
|
-
|
1381
|
-
|
1382
|
-
|
1383
|
-
|
1384
|
-
|
1385
|
-
|
1386
|
-
|
1570
|
+
if (keyValue.length === 1) {
|
1571
|
+
attr = keyValue[0].replace(/^[\s({]+|[\s)}]+$/g, '');
|
1572
|
+
attributes[attr] = 'true';
|
1573
|
+
} else {
|
1574
|
+
key = (_ref2 = keyValue[0]) != null ? _ref2.replace(/^\s+|\s+$/g, '').replace(/^:/, '') : void 0;
|
1575
|
+
if (quoted = key.match(/^("|')(.*)\1$/)) {
|
1576
|
+
key = quoted[2];
|
1577
|
+
}
|
1578
|
+
value = (_ref3 = keyValue[1]) != null ? _ref3.replace(/^\s+|[\s,]+$/g, '').replace(/\u0090/g, '') : void 0;
|
1579
|
+
if (key === 'data' && !value) {
|
1580
|
+
inDataAttribute = true;
|
1581
|
+
hasDataAttribute = true;
|
1582
|
+
} else if (key && value) {
|
1583
|
+
if (inDataAttribute) {
|
1584
|
+
key = this.hyphenateDataAttrs ? "data-" + (key.replace('_', '-')) : "data-" + key;
|
1585
|
+
if (/}\s*$/.test(value)) {
|
1586
|
+
inDataAttribute = false;
|
1587
|
+
}
|
1588
|
+
}
|
1589
|
+
}
|
1590
|
+
switch (type) {
|
1591
|
+
case '(':
|
1592
|
+
value = value.replace(/^\s+|[\s)]+$/g, '');
|
1593
|
+
quote = (_ref4 = /^(['"])/.exec(value)) != null ? _ref4[1] : void 0;
|
1594
|
+
pos = value.lastIndexOf(quote);
|
1595
|
+
if (pos > 1) {
|
1596
|
+
_ref5 = value.substring(pos + 1).split(' ');
|
1597
|
+
for (_k = 0, _len1 = _ref5.length; _k < _len1; _k++) {
|
1598
|
+
attr = _ref5[_k];
|
1599
|
+
if (attr) {
|
1600
|
+
attributes[attr] = 'true';
|
1601
|
+
}
|
1602
|
+
}
|
1603
|
+
value = value.substring(0, pos + 1);
|
1604
|
+
}
|
1605
|
+
attributes[key] = value;
|
1606
|
+
break;
|
1607
|
+
case '{':
|
1608
|
+
attributes[key] = value.replace(/^\s+|[\s}]+$/g, '');
|
1387
1609
|
}
|
1388
1610
|
}
|
1389
|
-
switch (type) {
|
1390
|
-
case '(':
|
1391
|
-
attributes[key] = value.replace(/^\s+|[\s)]+$/g, '');
|
1392
|
-
break;
|
1393
|
-
case '{':
|
1394
|
-
attributes[key] = value.replace(/^\s+|[\s}]+$/g, '');
|
1395
|
-
}
|
1396
1611
|
}
|
1397
|
-
if (hasDataAttribute)
|
1612
|
+
if (hasDataAttribute) {
|
1613
|
+
delete attributes['data'];
|
1614
|
+
}
|
1398
1615
|
return attributes;
|
1399
1616
|
};
|
1400
1617
|
|
1401
1618
|
Haml.prototype.buildHtmlTagPrefix = function(tokens) {
|
1402
|
-
var classList, classes, hasDynamicClass, key, klass, name, tagParts, value, _i, _len,
|
1619
|
+
var classList, classes, hasDynamicClass, key, klass, name, tagParts, value, _i, _len, _ref1;
|
1620
|
+
|
1403
1621
|
tagParts = ["<" + tokens.tag];
|
1404
1622
|
if (tokens.classes) {
|
1405
1623
|
hasDynamicClass = false;
|
1406
1624
|
classList = (function() {
|
1407
|
-
var _i, _len,
|
1408
|
-
|
1625
|
+
var _i, _len, _ref1, _results;
|
1626
|
+
|
1627
|
+
_ref1 = tokens.classes;
|
1409
1628
|
_results = [];
|
1410
|
-
for (_i = 0, _len =
|
1411
|
-
name =
|
1629
|
+
for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
|
1630
|
+
name = _ref1[_i];
|
1412
1631
|
name = this.interpolateCodeAttribute(name, true);
|
1413
|
-
if (name.indexOf('#{') !== -1)
|
1632
|
+
if (name.indexOf('#{') !== -1) {
|
1633
|
+
hasDynamicClass = true;
|
1634
|
+
}
|
1414
1635
|
_results.push(name);
|
1415
1636
|
}
|
1416
1637
|
return _results;
|
@@ -1427,7 +1648,9 @@ require.define("/nodes/haml.coffee", function (require, module, exports, __dirna
|
|
1427
1648
|
}
|
1428
1649
|
tagParts.push("class='" + classes + "'");
|
1429
1650
|
}
|
1430
|
-
if (tokens.id)
|
1651
|
+
if (tokens.id) {
|
1652
|
+
tagParts.push("id='" + tokens.id + "'");
|
1653
|
+
}
|
1431
1654
|
if (tokens.reference) {
|
1432
1655
|
if (tokens.attributes) {
|
1433
1656
|
delete tokens.attributes['class'];
|
@@ -1436,9 +1659,9 @@ require.define("/nodes/haml.coffee", function (require, module, exports, __dirna
|
|
1436
1659
|
tagParts.push("\#{$r(" + tokens.reference + ")}");
|
1437
1660
|
}
|
1438
1661
|
if (tokens.attributes) {
|
1439
|
-
|
1440
|
-
for (key in
|
1441
|
-
value =
|
1662
|
+
_ref1 = tokens.attributes;
|
1663
|
+
for (key in _ref1) {
|
1664
|
+
value = _ref1[key];
|
1442
1665
|
if (value === 'true' || value === 'false') {
|
1443
1666
|
if (value === 'true') {
|
1444
1667
|
if (this.format === 'html5') {
|
@@ -1457,8 +1680,13 @@ require.define("/nodes/haml.coffee", function (require, module, exports, __dirna
|
|
1457
1680
|
|
1458
1681
|
Haml.prototype.interpolateCodeAttribute = function(text, unwrap) {
|
1459
1682
|
var quoted;
|
1460
|
-
|
1461
|
-
if (
|
1683
|
+
|
1684
|
+
if (unwrap == null) {
|
1685
|
+
unwrap = false;
|
1686
|
+
}
|
1687
|
+
if (!text) {
|
1688
|
+
return;
|
1689
|
+
}
|
1462
1690
|
if (!text.match(/^("|').*\1$/)) {
|
1463
1691
|
if (this.escapeAttributes) {
|
1464
1692
|
if (this.cleanValue) {
|
@@ -1474,21 +1702,33 @@ require.define("/nodes/haml.coffee", function (require, module, exports, __dirna
|
|
1474
1702
|
}
|
1475
1703
|
}
|
1476
1704
|
}
|
1477
|
-
if (unwrap)
|
1705
|
+
if (unwrap) {
|
1706
|
+
if (quoted = text.match(/^("|')(.*)\1$/)) {
|
1707
|
+
text = quoted[2];
|
1708
|
+
}
|
1709
|
+
}
|
1478
1710
|
return text;
|
1479
1711
|
};
|
1480
1712
|
|
1481
1713
|
Haml.prototype.quoteAndEscapeAttributeValue = function(value, code) {
|
1482
1714
|
var escaped, hasDoubleQuotes, hasInterpolation, hasSingleQuotes, quoted, result, token, tokens;
|
1483
|
-
|
1484
|
-
if (
|
1485
|
-
|
1715
|
+
|
1716
|
+
if (code == null) {
|
1717
|
+
code = false;
|
1718
|
+
}
|
1719
|
+
if (!value) {
|
1720
|
+
return;
|
1721
|
+
}
|
1722
|
+
if (quoted = value.match(/^("|')(.*)\1$/)) {
|
1723
|
+
value = quoted[2];
|
1724
|
+
}
|
1486
1725
|
tokens = this.splitInterpolations(value);
|
1487
1726
|
hasSingleQuotes = false;
|
1488
1727
|
hasDoubleQuotes = false;
|
1489
1728
|
hasInterpolation = false;
|
1490
1729
|
tokens = (function() {
|
1491
1730
|
var _i, _len, _results;
|
1731
|
+
|
1492
1732
|
_results = [];
|
1493
1733
|
for (_i = 0, _len = tokens.length; _i < _len; _i++) {
|
1494
1734
|
token = tokens[_i];
|
@@ -1501,13 +1741,19 @@ require.define("/nodes/haml.coffee", function (require, module, exports, __dirna
|
|
1501
1741
|
token = '#{ $e(' + token.slice(2, -1) + ') }';
|
1502
1742
|
}
|
1503
1743
|
} else {
|
1504
|
-
if (this.cleanValue)
|
1744
|
+
if (this.cleanValue) {
|
1745
|
+
token = '#{ $c(' + token.slice(2, -1) + ') }';
|
1746
|
+
}
|
1505
1747
|
}
|
1506
1748
|
}
|
1507
1749
|
hasInterpolation = true;
|
1508
1750
|
} else {
|
1509
|
-
if (!hasSingleQuotes)
|
1510
|
-
|
1751
|
+
if (!hasSingleQuotes) {
|
1752
|
+
hasSingleQuotes = token.indexOf("'") !== -1;
|
1753
|
+
}
|
1754
|
+
if (!hasDoubleQuotes) {
|
1755
|
+
hasDoubleQuotes = token.indexOf('"') !== -1;
|
1756
|
+
}
|
1511
1757
|
}
|
1512
1758
|
_results.push(token);
|
1513
1759
|
}
|
@@ -1529,6 +1775,7 @@ require.define("/nodes/haml.coffee", function (require, module, exports, __dirna
|
|
1529
1775
|
if (hasDoubleQuotes && !hasSingleQuotes) {
|
1530
1776
|
escaped = (function() {
|
1531
1777
|
var _i, _len, _results;
|
1778
|
+
|
1532
1779
|
_results = [];
|
1533
1780
|
for (_i = 0, _len = tokens.length; _i < _len; _i++) {
|
1534
1781
|
token = tokens[_i];
|
@@ -1541,6 +1788,7 @@ require.define("/nodes/haml.coffee", function (require, module, exports, __dirna
|
|
1541
1788
|
if (hasSingleQuotes && hasDoubleQuotes) {
|
1542
1789
|
escaped = (function() {
|
1543
1790
|
var _i, _len, _results;
|
1791
|
+
|
1544
1792
|
_results = [];
|
1545
1793
|
for (_i = 0, _len = tokens.length; _i < _len; _i++) {
|
1546
1794
|
token = tokens[_i];
|
@@ -1555,14 +1803,17 @@ require.define("/nodes/haml.coffee", function (require, module, exports, __dirna
|
|
1555
1803
|
};
|
1556
1804
|
|
1557
1805
|
Haml.prototype.splitInterpolations = function(value) {
|
1558
|
-
var ch, ch2, level, pos, start, tokens,
|
1806
|
+
var ch, ch2, level, pos, start, tokens, _i, _ref1;
|
1807
|
+
|
1559
1808
|
level = 0;
|
1560
1809
|
start = 0;
|
1561
1810
|
tokens = [];
|
1562
|
-
for (pos = 0,
|
1811
|
+
for (pos = _i = 0, _ref1 = value.length; 0 <= _ref1 ? _i < _ref1 : _i > _ref1; pos = 0 <= _ref1 ? ++_i : --_i) {
|
1563
1812
|
ch = value[pos];
|
1564
|
-
ch2 = value.slice(pos, (pos + 1) + 1 || 9e9);
|
1565
|
-
if (ch === '{')
|
1813
|
+
ch2 = value.slice(pos, +(pos + 1) + 1 || 9e9);
|
1814
|
+
if (ch === '{') {
|
1815
|
+
level += 1;
|
1816
|
+
}
|
1566
1817
|
if (ch2 === '#{' && level === 0) {
|
1567
1818
|
tokens.push(value.slice(start, pos));
|
1568
1819
|
start = pos;
|
@@ -1570,7 +1821,7 @@ require.define("/nodes/haml.coffee", function (require, module, exports, __dirna
|
|
1570
1821
|
if (ch === '}') {
|
1571
1822
|
level -= 1;
|
1572
1823
|
if (level === 0) {
|
1573
|
-
tokens.push(value.slice(start, pos + 1 || 9e9));
|
1824
|
+
tokens.push(value.slice(start, +pos + 1 || 9e9));
|
1574
1825
|
start = pos + 1;
|
1575
1826
|
}
|
1576
1827
|
}
|
@@ -1614,29 +1865,30 @@ require.define("/nodes/haml.coffee", function (require, module, exports, __dirna
|
|
1614
1865
|
|
1615
1866
|
return Haml;
|
1616
1867
|
|
1617
|
-
})();
|
1868
|
+
})(Node);
|
1618
1869
|
|
1619
1870
|
}).call(this);
|
1620
1871
|
|
1621
1872
|
});
|
1622
1873
|
|
1623
|
-
require.define("/nodes/code.coffee",
|
1624
|
-
|
1625
|
-
|
1626
|
-
|
1874
|
+
require.define("/nodes/code.coffee",function(require,module,exports,__dirname,__filename,process,global){(function() {
|
1875
|
+
var Code, Node, _ref,
|
1876
|
+
__hasProp = {}.hasOwnProperty,
|
1877
|
+
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
|
1627
1878
|
|
1628
1879
|
Node = require('./node');
|
1629
1880
|
|
1630
|
-
module.exports = Code = (function() {
|
1631
|
-
|
1632
|
-
__extends(Code, Node);
|
1881
|
+
module.exports = Code = (function(_super) {
|
1882
|
+
__extends(Code, _super);
|
1633
1883
|
|
1634
1884
|
function Code() {
|
1635
|
-
Code.__super__.constructor.apply(this, arguments);
|
1885
|
+
_ref = Code.__super__.constructor.apply(this, arguments);
|
1886
|
+
return _ref;
|
1636
1887
|
}
|
1637
1888
|
|
1638
1889
|
Code.prototype.evaluate = function() {
|
1639
1890
|
var code, codeBlock, escape, identifier;
|
1891
|
+
|
1640
1892
|
codeBlock = this.expression.match(/(-|!=|\&=|=|~)\s?(.*)?/);
|
1641
1893
|
identifier = codeBlock[1];
|
1642
1894
|
code = codeBlock[2];
|
@@ -1666,32 +1918,33 @@ require.define("/nodes/code.coffee", function (require, module, exports, __dirna
|
|
1666
1918
|
|
1667
1919
|
return Code;
|
1668
1920
|
|
1669
|
-
})();
|
1921
|
+
})(Node);
|
1670
1922
|
|
1671
1923
|
}).call(this);
|
1672
1924
|
|
1673
1925
|
});
|
1674
1926
|
|
1675
|
-
require.define("/nodes/comment.coffee",
|
1676
|
-
|
1677
|
-
|
1678
|
-
|
1927
|
+
require.define("/nodes/comment.coffee",function(require,module,exports,__dirname,__filename,process,global){(function() {
|
1928
|
+
var Comment, Node, escapeQuotes, _ref,
|
1929
|
+
__hasProp = {}.hasOwnProperty,
|
1930
|
+
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
|
1679
1931
|
|
1680
1932
|
Node = require('./node');
|
1681
1933
|
|
1682
1934
|
escapeQuotes = require('../util/text').escapeQuotes;
|
1683
1935
|
|
1684
|
-
module.exports = Comment = (function() {
|
1685
|
-
|
1686
|
-
__extends(Comment, Node);
|
1936
|
+
module.exports = Comment = (function(_super) {
|
1937
|
+
__extends(Comment, _super);
|
1687
1938
|
|
1688
1939
|
function Comment() {
|
1689
|
-
Comment.__super__.constructor.apply(this, arguments);
|
1940
|
+
_ref = Comment.__super__.constructor.apply(this, arguments);
|
1941
|
+
return _ref;
|
1690
1942
|
}
|
1691
1943
|
|
1692
1944
|
Comment.prototype.evaluate = function() {
|
1693
|
-
var comment, expression, identifier,
|
1694
|
-
|
1945
|
+
var comment, expression, identifier, _ref1;
|
1946
|
+
|
1947
|
+
_ref1 = this.expression.match(/(-#|\/\[|\/)\s?(.*)?/), expression = _ref1[0], identifier = _ref1[1], comment = _ref1[2];
|
1695
1948
|
switch (identifier) {
|
1696
1949
|
case '-#':
|
1697
1950
|
this.silent = true;
|
@@ -1712,16 +1965,16 @@ require.define("/nodes/comment.coffee", function (require, module, exports, __di
|
|
1712
1965
|
|
1713
1966
|
return Comment;
|
1714
1967
|
|
1715
|
-
})();
|
1968
|
+
})(Node);
|
1716
1969
|
|
1717
1970
|
}).call(this);
|
1718
1971
|
|
1719
1972
|
});
|
1720
1973
|
|
1721
|
-
require.define("/nodes/filter.coffee",
|
1722
|
-
|
1723
|
-
|
1724
|
-
|
1974
|
+
require.define("/nodes/filter.coffee",function(require,module,exports,__dirname,__filename,process,global){(function() {
|
1975
|
+
var Filter, Node, unescapeQuotes, whitespace, _ref,
|
1976
|
+
__hasProp = {}.hasOwnProperty,
|
1977
|
+
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
|
1725
1978
|
|
1726
1979
|
Node = require('./node');
|
1727
1980
|
|
@@ -1729,34 +1982,36 @@ require.define("/nodes/filter.coffee", function (require, module, exports, __dir
|
|
1729
1982
|
|
1730
1983
|
unescapeQuotes = require('../util/text').unescapeQuotes;
|
1731
1984
|
|
1732
|
-
module.exports = Filter = (function() {
|
1733
|
-
|
1734
|
-
__extends(Filter, Node);
|
1985
|
+
module.exports = Filter = (function(_super) {
|
1986
|
+
__extends(Filter, _super);
|
1735
1987
|
|
1736
1988
|
function Filter() {
|
1737
|
-
Filter.__super__.constructor.apply(this, arguments);
|
1989
|
+
_ref = Filter.__super__.constructor.apply(this, arguments);
|
1990
|
+
return _ref;
|
1738
1991
|
}
|
1739
1992
|
|
1740
1993
|
Filter.prototype.evaluate = function() {
|
1741
|
-
var
|
1742
|
-
|
1994
|
+
var _ref1;
|
1995
|
+
|
1996
|
+
return this.filter = (_ref1 = this.expression.match(/:(escaped|preserve|css|javascript|coffeescript|plain|cdata|coffeescript)(.*)?/)) != null ? _ref1[1] : void 0;
|
1743
1997
|
};
|
1744
1998
|
|
1745
1999
|
Filter.prototype.render = function() {
|
1746
|
-
var child, indent, output, preserve, _i, _j, _len,
|
2000
|
+
var child, indent, output, preserve, _i, _j, _len, _len1, _ref1, _ref2;
|
2001
|
+
|
1747
2002
|
output = [];
|
1748
2003
|
switch (this.filter) {
|
1749
2004
|
case 'escaped':
|
1750
|
-
|
1751
|
-
for (_i = 0, _len =
|
1752
|
-
child =
|
2005
|
+
_ref1 = this.children;
|
2006
|
+
for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
|
2007
|
+
child = _ref1[_i];
|
1753
2008
|
output.push(this.markText(child.render()[0].text, true));
|
1754
2009
|
}
|
1755
2010
|
break;
|
1756
2011
|
case 'preserve':
|
1757
2012
|
preserve = '';
|
1758
2013
|
_ref2 = this.children;
|
1759
|
-
for (_j = 0,
|
2014
|
+
for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) {
|
1760
2015
|
child = _ref2[_j];
|
1761
2016
|
preserve += "" + (child.render()[0].text) + "
";
|
1762
2017
|
}
|
@@ -1777,7 +2032,9 @@ require.define("/nodes/filter.coffee", function (require, module, exports, __dir
|
|
1777
2032
|
}
|
1778
2033
|
indent = this.format === 'xhtml' ? 2 : 1;
|
1779
2034
|
this.renderFilterContent(indent, output);
|
1780
|
-
if (this.format === 'xhtml')
|
2035
|
+
if (this.format === 'xhtml') {
|
2036
|
+
output.push(this.markText(' /*]]>*/'));
|
2037
|
+
}
|
1781
2038
|
output.push(this.markText('</style>'));
|
1782
2039
|
break;
|
1783
2040
|
case 'javascript':
|
@@ -1786,10 +2043,14 @@ require.define("/nodes/filter.coffee", function (require, module, exports, __dir
|
|
1786
2043
|
} else {
|
1787
2044
|
output.push(this.markText('<script type=\'text/javascript\'>'));
|
1788
2045
|
}
|
1789
|
-
if (this.format === 'xhtml')
|
2046
|
+
if (this.format === 'xhtml') {
|
2047
|
+
output.push(this.markText(' //<![CDATA['));
|
2048
|
+
}
|
1790
2049
|
indent = this.format === 'xhtml' ? 2 : 1;
|
1791
2050
|
this.renderFilterContent(indent, output);
|
1792
|
-
if (this.format === 'xhtml')
|
2051
|
+
if (this.format === 'xhtml') {
|
2052
|
+
output.push(this.markText(' //]]>'));
|
2053
|
+
}
|
1793
2054
|
output.push(this.markText('</script>'));
|
1794
2055
|
break;
|
1795
2056
|
case 'cdata':
|
@@ -1804,24 +2065,27 @@ require.define("/nodes/filter.coffee", function (require, module, exports, __dir
|
|
1804
2065
|
};
|
1805
2066
|
|
1806
2067
|
Filter.prototype.renderFilterContent = function(indent, output, type) {
|
1807
|
-
var child, content, e, empty, line, _i, _j, _len,
|
1808
|
-
|
2068
|
+
var child, content, e, empty, line, _i, _j, _k, _len, _len1, _ref1, _results;
|
2069
|
+
|
2070
|
+
if (type == null) {
|
2071
|
+
type = 'text';
|
2072
|
+
}
|
1809
2073
|
content = [];
|
1810
2074
|
empty = 0;
|
1811
|
-
|
1812
|
-
for (_i = 0, _len =
|
1813
|
-
child =
|
2075
|
+
_ref1 = this.children;
|
2076
|
+
for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
|
2077
|
+
child = _ref1[_i];
|
1814
2078
|
content.push(child.render()[0].text);
|
1815
2079
|
}
|
1816
2080
|
_results = [];
|
1817
|
-
for (_j = 0,
|
2081
|
+
for (_j = 0, _len1 = content.length; _j < _len1; _j++) {
|
1818
2082
|
line = content[_j];
|
1819
2083
|
if (line === '') {
|
1820
2084
|
_results.push(empty += 1);
|
1821
2085
|
} else {
|
1822
2086
|
switch (type) {
|
1823
2087
|
case 'text':
|
1824
|
-
for (e = 0; 0 <= empty ?
|
2088
|
+
for (e = _k = 0; 0 <= empty ? _k < empty : _k > empty; e = 0 <= empty ? ++_k : --_k) {
|
1825
2089
|
output.push(this.markText(""));
|
1826
2090
|
}
|
1827
2091
|
output.push(this.markText("" + (whitespace(indent)) + line));
|
@@ -1837,14 +2101,78 @@ require.define("/nodes/filter.coffee", function (require, module, exports, __dir
|
|
1837
2101
|
|
1838
2102
|
return Filter;
|
1839
2103
|
|
1840
|
-
})();
|
2104
|
+
})(Node);
|
1841
2105
|
|
1842
2106
|
}).call(this);
|
1843
2107
|
|
1844
2108
|
});
|
1845
2109
|
|
1846
|
-
require.define("/
|
1847
|
-
|
2110
|
+
require.define("/nodes/directive.coffee",function(require,module,exports,__dirname,__filename,process,global){(function() {
|
2111
|
+
var Directive, Node, path, _ref,
|
2112
|
+
__hasProp = {}.hasOwnProperty,
|
2113
|
+
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
|
2114
|
+
|
2115
|
+
path = require('path');
|
2116
|
+
|
2117
|
+
Node = require('./node');
|
2118
|
+
|
2119
|
+
module.exports = Directive = (function(_super) {
|
2120
|
+
__extends(Directive, _super);
|
2121
|
+
|
2122
|
+
function Directive() {
|
2123
|
+
_ref = Directive.__super__.constructor.apply(this, arguments);
|
2124
|
+
return _ref;
|
2125
|
+
}
|
2126
|
+
|
2127
|
+
Directive.prototype.directives = {
|
2128
|
+
include: function(expression) {
|
2129
|
+
var context, e, name, statement, _ref1;
|
2130
|
+
|
2131
|
+
try {
|
2132
|
+
_ref1 = expression.match(/\s*['"](.*)['"](?:,\s*(.*))?\s*/), _ref1[0], name = _ref1[1], context = _ref1[2];
|
2133
|
+
} catch (_error) {
|
2134
|
+
e = _error;
|
2135
|
+
throw new Error("Failed to parse the include directive from " + expression);
|
2136
|
+
}
|
2137
|
+
if (!context) {
|
2138
|
+
context = 'this';
|
2139
|
+
}
|
2140
|
+
statement = (function() {
|
2141
|
+
switch (this.placement) {
|
2142
|
+
case 'global':
|
2143
|
+
return "" + this.namespace + "['" + name + "'].apply(" + context + ")";
|
2144
|
+
case 'amd':
|
2145
|
+
return "require('" + name + "').apply(" + context + ")";
|
2146
|
+
default:
|
2147
|
+
throw new Error("Include directive not available when placement is " + this.placement);
|
2148
|
+
}
|
2149
|
+
}).call(this);
|
2150
|
+
return this.opener = this.markInsertingCode(statement, false);
|
2151
|
+
}
|
2152
|
+
};
|
2153
|
+
|
2154
|
+
Directive.prototype.evaluate = function() {
|
2155
|
+
var directives, e, name, rest, _ref1;
|
2156
|
+
|
2157
|
+
directives = Object.keys(this.directives).join('|');
|
2158
|
+
try {
|
2159
|
+
_ref1 = this.expression.match(RegExp("\\+(" + directives + ")(.*)")), _ref1[0], name = _ref1[1], rest = _ref1[2];
|
2160
|
+
} catch (_error) {
|
2161
|
+
e = _error;
|
2162
|
+
throw new Error("Unable to recognize directive from " + this.expression);
|
2163
|
+
}
|
2164
|
+
return this.directives[name].call(this, rest);
|
2165
|
+
};
|
2166
|
+
|
2167
|
+
return Directive;
|
2168
|
+
|
2169
|
+
})(Node);
|
2170
|
+
|
2171
|
+
}).call(this);
|
2172
|
+
|
2173
|
+
});
|
2174
|
+
|
2175
|
+
require.define("/hamlc.coffee",function(require,module,exports,__dirname,__filename,process,global){(function() {
|
1848
2176
|
var CoffeeScript, Compiler, fs, __expressCache;
|
1849
2177
|
|
1850
2178
|
fs = require('fs');
|
@@ -1862,7 +2190,10 @@ require.define("/hamlc.coffee", function (require, module, exports, __dirname, _
|
|
1862
2190
|
module.exports = {
|
1863
2191
|
compile: function(source, options) {
|
1864
2192
|
var compiler, template;
|
1865
|
-
|
2193
|
+
|
2194
|
+
if (options == null) {
|
2195
|
+
options = {};
|
2196
|
+
}
|
1866
2197
|
compiler = new Compiler(options);
|
1867
2198
|
compiler.parse(source);
|
1868
2199
|
template = new Function(CoffeeScript.compile(compiler.precompile(), {
|
@@ -1874,13 +2205,19 @@ require.define("/hamlc.coffee", function (require, module, exports, __dirname, _
|
|
1874
2205
|
},
|
1875
2206
|
template: function(source, name, namespace, options) {
|
1876
2207
|
var compiler;
|
1877
|
-
|
2208
|
+
|
2209
|
+
if (options == null) {
|
2210
|
+
options = {};
|
2211
|
+
}
|
2212
|
+
options.namespace = namespace;
|
2213
|
+
options.name = name;
|
1878
2214
|
compiler = new Compiler(options);
|
1879
2215
|
compiler.parse(source);
|
1880
|
-
return CoffeeScript.compile(compiler.render(
|
2216
|
+
return CoffeeScript.compile(compiler.render());
|
1881
2217
|
},
|
1882
2218
|
__express: function(filename, options, callback) {
|
1883
|
-
var source;
|
2219
|
+
var err, source;
|
2220
|
+
|
1884
2221
|
if (!!(options && options.constructor && options.call && options.apply)) {
|
1885
2222
|
callback = options;
|
1886
2223
|
options = {};
|
@@ -1898,7 +2235,8 @@ require.define("/hamlc.coffee", function (require, module, exports, __dirname, _
|
|
1898
2235
|
return callback(null, module.exports.compile(source, options)(options));
|
1899
2236
|
}
|
1900
2237
|
}
|
1901
|
-
} catch (
|
2238
|
+
} catch (_error) {
|
2239
|
+
err = _error;
|
1902
2240
|
return callback(err);
|
1903
2241
|
}
|
1904
2242
|
}
|
@@ -1908,7 +2246,6 @@ require.define("/hamlc.coffee", function (require, module, exports, __dirname, _
|
|
1908
2246
|
|
1909
2247
|
});
|
1910
2248
|
|
1911
|
-
require.define("fs",
|
1912
|
-
// nothing to see here... no file methods for the browser
|
2249
|
+
require.define("fs",function(require,module,exports,__dirname,__filename,process,global){// nothing to see here... no file methods for the browser
|
1913
2250
|
|
1914
2251
|
});
|