Don't load todomvc-common/base.js
Fixes #1603. It's unnecessary and makes a request to learn.json which doesn't exist.
Ben Alpert committed
May 26, 2014 at 20:19 UTC
f761f770e12a62f2c37c1f715e66f5c386de19d7
2 files changed
-210
examples/todomvc-flux/index.html
-1
@@ -13,7 +13,6 @@
13
<p>Created by <a href="http://facebook.com/bill.fisher.771">Bill Fisher</a></p>
14
<p>Part of <a href="http://todomvc.com">TodoMVC</a></p>
15
</footer>
16
- <script src="todomvc-common/base.js"></script>
16
<script src="js/bundle.js"></script>
17
</body>
18
</html>
examples/todomvc-flux/todomvc-common/base.js
deleted
-209
@@ -1,209 +0,0 @@
1
-(function () {
2
- 'use strict';
3
-
4
- // Underscore's Template Module
5
- // Courtesy of underscorejs.org
6
- var _ = (function (_) {
7
- _.defaults = function (object) {
8
- if (!object) {
9
- return object;
10
- }
11
- for (var argsIndex = 1, argsLength = arguments.length; argsIndex < argsLength; argsIndex++) {
12
- var iterable = arguments[argsIndex];
13
- if (iterable) {
14
- for (var key in iterable) {
15
- if (object[key] == null) {
16
- object[key] = iterable[key];
17
- }
18
- }
19
- }
20
- }
21
- return object;
22
- }
23
-
24
- // By default, Underscore uses ERB-style template delimiters, change the
25
- // following template settings to use alternative delimiters.
26
- _.templateSettings = {
27
- evaluate : /<%([\s\S]+?)%>/g,
28
- interpolate : /<%=([\s\S]+?)%>/g,
29
- escape : /<%-([\s\S]+?)%>/g
30
- };
31
-
32
- // When customizing `templateSettings`, if you don't want to define an
33
- // interpolation, evaluation or escaping regex, we need one that is
34
- // guaranteed not to match.
35
- var noMatch = /(.)^/;
36
-
37
- // Certain characters need to be escaped so that they can be put into a
38
- // string literal.
39
- var escapes = {
40
- "'": "'",
41
- '\\': '\\',
42
- '\r': 'r',
43
- '\n': 'n',
44
- '\t': 't',
45
- '\u2028': 'u2028',
46
- '\u2029': 'u2029'
47
- };
48
-
49
- var escaper = /\\|'|\r|\n|\t|\u2028|\u2029/g;
50
-
51
- // JavaScript micro-templating, similar to John Resig's implementation.
52
- // Underscore templating handles arbitrary delimiters, preserves whitespace,
53
- // and correctly escapes quotes within interpolated code.
54
- _.template = function(text, data, settings) {
55
- var render;
56
- settings = _.defaults({}, settings, _.templateSettings);
57
-
58
- // Combine delimiters into one regular expression via alternation.
59
- var matcher = new RegExp([
60
- (settings.escape || noMatch).source,
61
- (settings.interpolate || noMatch).source,
62
- (settings.evaluate || noMatch).source
63
- ].join('|') + '|$', 'g');
64
-
65
- // Compile the template source, escaping string literals appropriately.
66
- var index = 0;
67
- var source = "__p+='";
68
- text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {
69
- source += text.slice(index, offset)
70
- .replace(escaper, function(match) { return '\\' + escapes[match]; });
71
-
72
- if (escape) {
73
- source += "'+\n((__t=(" + escape + "))==null?'':_.escape(__t))+\n'";
74
- }
75
- if (interpolate) {
76
- source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'";
77
- }
78
- if (evaluate) {
79
- source += "';\n" + evaluate + "\n__p+='";
80
- }
81
- index = offset + match.length;
82
- return match;
83
- });
84
- source += "';\n";
85
-
86
- // If a variable is not specified, place data values in local scope.
87
- if (!settings.variable) source = 'with(obj||{}){\n' + source + '}\n';
88
-
89
- source = "var __t,__p='',__j=Array.prototype.join," +
90
- "print=function(){__p+=__j.call(arguments,'');};\n" +
91
- source + "return __p;\n";
92
-
93
- try {
94
- render = new Function(settings.variable || 'obj', '_', source);
95
- } catch (e) {
96
- e.source = source;
97
- throw e;
98
- }
99
-
100
- if (data) return render(data, _);
101
- var template = function(data) {
102
- return render.call(this, data, _);
103
- };
104
-
105
- // Provide the compiled function source as a convenience for precompilation.
106
- template.source = 'function(' + (settings.variable || 'obj') + '){\n' + source + '}';
107
-
108
- return template;
109
- };
110
-
111
- return _;
112
- })({});
113
-
114
- if (location.hostname === 'todomvc.com') {
115
- window._gaq = [['_setAccount','UA-31081062-1'],['_trackPageview']];(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];g.src='//www.google-analytics.com/ga.js';s.parentNode.insertBefore(g,s)}(document,'script'));
116
- }
117
-
118
- function redirect() {
119
- if (location.hostname === 'tastejs.github.io') {
120
- location.href = location.href.replace('tastejs.github.io/todomvc', 'todomvc.com');
121
- }
122
- }
123
-
124
- function findRoot() {
125
- var base;
126
-
127
- [/labs/, /\w*-examples/].forEach(function (href) {
128
- var match = location.href.match(href);
129
-
130
- if (!base && match) {
131
- base = location.href.indexOf(match);
132
- }
133
- });
134
-
135
- return location.href.substr(0, base);
136
- }
137
-
138
- function getFile(file, callback) {
139
- if (!location.host) {
140
- return console.info('Miss the info bar? Run TodoMVC from a server to avoid a cross-origin error.');
141
- }
142
-
143
- var xhr = new XMLHttpRequest();
144
-
145
- xhr.open('GET', findRoot() + file, true);
146
- xhr.send();
147
-
148
- xhr.onload = function () {
149
- if (xhr.status === 200 && callback) {
150
- callback(xhr.responseText);
151
- }
152
- };
153
- }
154
-
155
- function Learn(learnJSON, config) {
156
- if (!(this instanceof Learn)) {
157
- return new Learn(learnJSON, config);
158
- }
159
-
160
- var template, framework;
161
-
162
- if (typeof learnJSON !== 'object') {
163
- try {
164
- learnJSON = JSON.parse(learnJSON);
165
- } catch (e) {
166
- return;
167
- }
168
- }
169
-
170
- if (config) {
171
- template = config.template;
172
- framework = config.framework;
173
- }
174
-
175
- if (!template && learnJSON.templates) {
176
- template = learnJSON.templates.todomvc;
177
- }
178
-
179
- if (!framework && document.querySelector('[data-framework]')) {
180
- framework = document.querySelector('[data-framework]').getAttribute('data-framework');
181
- }
182
-
183
-
184
- if (template && learnJSON[framework]) {
185
- this.frameworkJSON = learnJSON[framework];
186
- this.template = template;
187
-
188
- this.append();
189
- }
190
- }
191
-
192
- Learn.prototype.append = function () {
193
- var aside = document.createElement('aside');
194
- aside.innerHTML = _.template(this.template, this.frameworkJSON);
195
- aside.className = 'learn';
196
-
197
- // Localize demo links
198
- var demoLinks = aside.querySelectorAll('.demo-link');
199
- Array.prototype.forEach.call(demoLinks, function (demoLink) {
200
- demoLink.setAttribute('href', findRoot() + demoLink.getAttribute('href'));
201
- });
202
-
203
- document.body.className = (document.body.className + ' learn-bar').trim();
204
- document.body.insertAdjacentHTML('afterBegin', aside.outerHTML);
205
- };
206
-
207
- redirect();
208
- getFile('learn.json', Learn);
209
-})();