haml_coffee_assets 1.11.1 → 1.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
});
|