Commit 0ea4ee70 authored by TasteBot's avatar TasteBot

update the build files for gh-pages [ci skip]

parent 4d779858
......@@ -22,6 +22,10 @@ module.exports = Collection.extend({
// be called in rapid succession.
this.writeToLocalStorage = debounce(this.writeToLocalStorage, 100);
// Listen for storage events on the window to keep multiple
// tabs in sync
window.addEventListener('storage', this.handleStorageEvent.bind(this));
// We listen for changes to the collection
// and persist on change
this.on('all', this.writeToLocalStorage, this);
......@@ -36,13 +40,14 @@ module.exports = Collection.extend({
// Updates the collection to the appropriate mode.
// mode can 'all', 'completed', or 'active'
setMode: function (mode) {
if (mode === 'all') {
this.subset.clearFilters();
if (mode !== 'all') {
} else {
this.subset.configure({
where: {
completed: mode === 'completed'
}
});
}, true);
}
},
// The following two methods are all we need in order
......@@ -53,7 +58,14 @@ module.exports = Collection.extend({
readFromLocalStorage: function () {
var existingData = localStorage[STORAGE_KEY];
if (existingData) {
this.add(JSON.parse(existingData));
this.set(JSON.parse(existingData));
}
},
// Handles events from localStorage. Browsers will fire
// this event in other tabs on the same domain.
handleStorageEvent: function (e) {
if (e.key === STORAGE_KEY) {
this.readFromLocalStorage();
}
}
});
......@@ -8,12 +8,12 @@
"ampersand-collection": "^1.3.16",
"ampersand-router": "^1.0.5",
"ampersand-state": "^4.3.12",
"ampersand-subcollection": "^1.4.3",
"ampersand-subcollection": "^1.4.5",
"ampersand-view": "^7.1.4",
"debounce": "^1.0.0"
},
"devDependencies": {
"browserify": "^6.0.3",
"browserify": "5.10.1",
"jade": "^1.7.0",
"jadeify": "^2.7.0",
"watchify": "^2.0.0"
......
......@@ -180,6 +180,10 @@ module.exports = Collection.extend({
// be called in rapid succession.
this.writeToLocalStorage = debounce(this.writeToLocalStorage, 100);
// Listen for storage events on the window to keep multiple
// tabs in sync
window.addEventListener('storage', this.handleStorageEvent.bind(this));
// We listen for changes to the collection
// and persist on change
this.on('all', this.writeToLocalStorage, this);
......@@ -194,13 +198,14 @@ module.exports = Collection.extend({
// Updates the collection to the appropriate mode.
// mode can 'all', 'completed', or 'active'
setMode: function (mode) {
if (mode === 'all') {
this.subset.clearFilters();
if (mode !== 'all') {
} else {
this.subset.configure({
where: {
completed: mode === 'completed'
}
});
}, true);
}
},
// The following two methods are all we need in order
......@@ -211,7 +216,14 @@ module.exports = Collection.extend({
readFromLocalStorage: function () {
var existingData = localStorage[STORAGE_KEY];
if (existingData) {
this.add(JSON.parse(existingData));
this.set(JSON.parse(existingData));
}
},
// Handles events from localStorage. Browsers will fire
// this event in other tabs on the same domain.
handleStorageEvent: function (e) {
if (e.key === STORAGE_KEY) {
this.readFromLocalStorage();
}
}
});
......@@ -1506,13 +1518,13 @@ Router.extend = classExtend;
},{"./ampersand-history":15,"ampersand-class-extend":17,"backbone-events-standalone":20,"underscore":21}],17:[function(require,module,exports){
module.exports=require(10)
},{"/Users/henrik/Sites/todomvc/architecture-examples/ampersand/node_modules/ampersand-collection/node_modules/ampersand-class-extend/ampersand-class-extend.js":10,"extend-object":18}],18:[function(require,module,exports){
},{"extend-object":18}],18:[function(require,module,exports){
module.exports=require(13)
},{"/Users/henrik/Sites/todomvc/architecture-examples/ampersand/node_modules/ampersand-collection/node_modules/extend-object/extend-object.js":13}],19:[function(require,module,exports){
},{}],19:[function(require,module,exports){
module.exports=require(11)
},{"/Users/henrik/Sites/todomvc/architecture-examples/ampersand/node_modules/ampersand-collection/node_modules/backbone-events-standalone/backbone-events-standalone.js":11}],20:[function(require,module,exports){
},{}],20:[function(require,module,exports){
module.exports=require(12)
},{"./backbone-events-standalone":19,"/Users/henrik/Sites/todomvc/architecture-examples/ampersand/node_modules/ampersand-collection/node_modules/backbone-events-standalone/index.js":12}],21:[function(require,module,exports){
},{"./backbone-events-standalone":19}],21:[function(require,module,exports){
// Underscore.js 1.6.0
// http://underscorejs.org
// (c) 2009-2014 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
......@@ -3637,9 +3649,9 @@ module.exports = function arrayNext(array, currentItem) {
},{}],24:[function(require,module,exports){
module.exports=require(11)
},{"/Users/henrik/Sites/todomvc/architecture-examples/ampersand/node_modules/ampersand-collection/node_modules/backbone-events-standalone/backbone-events-standalone.js":11}],25:[function(require,module,exports){
},{}],25:[function(require,module,exports){
module.exports=require(12)
},{"./backbone-events-standalone":24,"/Users/henrik/Sites/todomvc/architecture-examples/ampersand/node_modules/ampersand-collection/node_modules/backbone-events-standalone/index.js":12}],26:[function(require,module,exports){
},{"./backbone-events-standalone":24}],26:[function(require,module,exports){
function KeyTreeStore() {
this.storage = {};
}
......@@ -5146,7 +5158,7 @@ _.extend(SubCollection.prototype, Events, underscoreMixins, {
// limit: 20
// }
configure: function (opts, clear) {
if (clear) this._reset();
if (clear) this._resetFilters();
this._parseFilters(opts);
this._runFilters();
},
......@@ -5172,9 +5184,14 @@ _.extend(SubCollection.prototype, Events, underscoreMixins, {
// clear all filters, reset everything
_reset: function () {
this.models = [];
this._resetFilters();
},
// just reset filters, no model changes
_resetFilters: function () {
this._filters = [];
this._watched = [];
this.models = [];
this.limit = undefined;
this.offset = undefined;
},
......@@ -5243,6 +5260,9 @@ _.extend(SubCollection.prototype, Events, underscoreMixins, {
toAdd = _.difference(newModels, existingModels);
toRemove = _.difference(existingModels, newModels);
// save 'em
this.models = newModels;
_.each(toRemove, function (model) {
this.trigger('remove', model, this);
}, this);
......@@ -5251,9 +5271,6 @@ _.extend(SubCollection.prototype, Events, underscoreMixins, {
this.trigger('add', model, this);
}, this);
// save 'em
this.models = newModels;
// if they contain the same models, but in new order, trigger sort
if (!_.isEqual(existingModels, newModels)) {
this.trigger('sort', this);
......@@ -5290,9 +5307,9 @@ module.exports = SubCollection;
},{"ampersand-class-extend":29,"ampersand-collection-underscore-mixin":31,"backbone-events-standalone":33,"underscore":34}],29:[function(require,module,exports){
module.exports=require(10)
},{"/Users/henrik/Sites/todomvc/architecture-examples/ampersand/node_modules/ampersand-collection/node_modules/ampersand-class-extend/ampersand-class-extend.js":10,"extend-object":30}],30:[function(require,module,exports){
},{"extend-object":30}],30:[function(require,module,exports){
module.exports=require(13)
},{"/Users/henrik/Sites/todomvc/architecture-examples/ampersand/node_modules/ampersand-collection/node_modules/extend-object/extend-object.js":13}],31:[function(require,module,exports){
},{}],31:[function(require,module,exports){
var _ = require('underscore');
var slice = [].slice;
var mixins = {};
......@@ -5360,11 +5377,11 @@ module.exports = mixins;
},{"underscore":34}],32:[function(require,module,exports){
module.exports=require(11)
},{"/Users/henrik/Sites/todomvc/architecture-examples/ampersand/node_modules/ampersand-collection/node_modules/backbone-events-standalone/backbone-events-standalone.js":11}],33:[function(require,module,exports){
},{}],33:[function(require,module,exports){
module.exports=require(12)
},{"./backbone-events-standalone":32,"/Users/henrik/Sites/todomvc/architecture-examples/ampersand/node_modules/ampersand-collection/node_modules/backbone-events-standalone/index.js":12}],34:[function(require,module,exports){
},{"./backbone-events-standalone":32}],34:[function(require,module,exports){
module.exports=require(27)
},{"/Users/henrik/Sites/todomvc/architecture-examples/ampersand/node_modules/ampersand-state/node_modules/underscore/underscore.js":27}],35:[function(require,module,exports){
},{}],35:[function(require,module,exports){
var State = require('ampersand-state');
var CollectionView = require('ampersand-collection-view');
var domify = require('domify');
......@@ -5883,9 +5900,9 @@ module.exports = CollectionView;
},{"ampersand-class-extend":37,"backbone-events-standalone":40,"underscore":52}],37:[function(require,module,exports){
module.exports=require(10)
},{"/Users/henrik/Sites/todomvc/architecture-examples/ampersand/node_modules/ampersand-collection/node_modules/ampersand-class-extend/ampersand-class-extend.js":10,"extend-object":38}],38:[function(require,module,exports){
},{"extend-object":38}],38:[function(require,module,exports){
module.exports=require(13)
},{"/Users/henrik/Sites/todomvc/architecture-examples/ampersand/node_modules/ampersand-collection/node_modules/extend-object/extend-object.js":13}],39:[function(require,module,exports){
},{}],39:[function(require,module,exports){
/**
* Standalone extraction of Backbone.Events, no external dependency required.
* Degrades nicely when Backone/underscore are already available in the current
......@@ -6166,7 +6183,7 @@ module.exports=require(13)
},{}],40:[function(require,module,exports){
arguments[4][12][0].apply(exports,arguments)
},{"./backbone-events-standalone":39,"/Users/henrik/Sites/todomvc/architecture-examples/ampersand/node_modules/ampersand-collection/node_modules/backbone-events-standalone/index.js":12}],41:[function(require,module,exports){
},{"./backbone-events-standalone":39}],41:[function(require,module,exports){
var Store = require('key-tree-store');
var dom = require('ampersand-dom');
var matchesSelector = require('matches-selector');
......@@ -6216,6 +6233,7 @@ function makeArray(val) {
function getBindingFunc(binding) {
var type = binding.type || 'text';
var isCustomBinding = typeof type === 'function';
var selector = (function () {
if (typeof binding.selector === 'string') {
return binding.selector;
......@@ -6227,9 +6245,16 @@ function getBindingFunc(binding) {
})();
// storage variable for previous if relevant
var previousValue = '';
var previousValue;
if (type === 'text') {
if (isCustomBinding) {
return function (el, value) {
getMatches(el, selector).forEach(function (match) {
type(match, value, previousValue);
});
previousValue = value;
};
} else if (type === 'text') {
return function (el, value) {
getMatches(el, selector).forEach(function (match) {
dom.text(match, value);
......@@ -7025,7 +7050,7 @@ function match(el, selector) {
}
},{}],52:[function(require,module,exports){
module.exports=require(21)
},{"/Users/henrik/Sites/todomvc/architecture-examples/ampersand/node_modules/ampersand-router/node_modules/underscore/underscore.js":21}],53:[function(require,module,exports){
},{}],53:[function(require,module,exports){
/**
* Module dependencies.
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -274,7 +274,6 @@ label[for='toggle-all'] {
text-shadow: 0 0 1px #000,
0 0 10px rgba(199, 107, 107, 0.8);
-webkit-transform: scale(1.3);
-ms-transform: scale(1.3);
transform: scale(1.3);
}
......@@ -399,7 +398,6 @@ label[for='toggle-all'] {
width: 65px;
height: 41px;
-webkit-transform: rotate(90deg);
-ms-transform: rotate(90deg);
transform: rotate(90deg);
-webkit-appearance: none;
appearance: none;
......
......@@ -122,16 +122,7 @@
}
function findRoot() {
var base;
[/labs/, /\w*-examples/].forEach(function (href) {
var match = location.href.match(href);
if (!base && match) {
base = location.href.indexOf(match);
}
});
var base = location.href.indexOf('examples/');
return location.href.substr(0, base);
}
......@@ -177,7 +168,7 @@
}
if (!framework && document.querySelector('[data-framework]')) {
framework = document.querySelector('[data-framework]').getAttribute('data-framework');
framework = document.querySelector('[data-framework]').dataset.framework;
}
......
This source diff could not be displayed because it is too large. You can view the blob instead.
// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
(function() {
// Bootstrap support for Dart scripts on the page as this script.
if (navigator.userAgent.indexOf('(Dart)') === -1) {
// TODO:
// - Support in-browser compilation.
// - Handle inline Dart scripts.
// Fall back to compiled JS. Run through all the scripts and
// replace them if they have a type that indicate that they source
// in Dart code (type="application/dart").
var scripts = document.getElementsByTagName("script");
var length = scripts.length;
for (var i = 0; i < length; ++i) {
if (scripts[i].type == "application/dart") {
// Remap foo.dart to foo.dart.js.
if (scripts[i].src && scripts[i].src != '') {
var script = document.createElement('script');
script.src = scripts[i].src.replace(/\.dart(?=\?|$)/, '.dart.js');
var parent = scripts[i].parentNode;
// TODO(vsm): Find a solution for issue 8455 that works with more
// than one script.
document.currentScript = script;
parent.replaceChild(script, scripts[i]);
}
}
}
}
})();
// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// TODO(jmesserly): remove this script after a deprecation period.
if (typeof console == "object" && typeof console.warn == "function") {
console.warn('<script src="packages/browser/interop.js"> is no longer ' +
'needed for dart:js. See http://pub.dartlang.org/packages/browser.');
}
......@@ -3,7 +3,7 @@ library todomvc;
import 'dart:html'
show Element, InputElement, KeyCode, KeyboardEvent, querySelector, window;
import 'dart:convert' show HtmlEscape, JSON;
import 'package:uuid/uuid_client.dart';
import 'package:uuid/uuid.dart';
import 'package:todomvc_vanilladart/models.dart' show Todo;
part 'TodoWidget.dart';
......
......@@ -4,7 +4,7 @@
</p><ul class="js-app-list-inner applist js"><li class="routing"><a href="examples/backbone" data-source="http://documentcloud.github.com/backbone/" data-content="Backbone.js gives structure to web applications by providing models with key-value binding and custom events, collections with a rich API of enumerable functions, views with declarative event handling, and connects it all to your existing API over a RESTful JSON interface.">Backbone.js</a></li><li class="routing"><a href="examples/angularjs" data-source="http://angularjs.org" data-content="What HTML would have been had it been designed for web apps">AngularJS</a></li><li class="routing"><a href="examples/emberjs" data-source="http://emberjs.com" data-content="Ember is a JavaScript framework for creating ambitious web applications that eliminates boilerplate and provides a standard application architecture.">Ember.js</a></li><li class="routing"><a href="examples/knockoutjs" data-source="http://knockoutjs.com" data-content="Simplify dynamic JavaScript UIs by applying the Model-View-View Model (MVVM) pattern">KnockoutJS</a></li><li class="routing"><a href="examples/dojo" data-source="http://dojotoolkit.org" data-content="Dojo saves you time and scales with your development process, using web standards as its platform. It’s the toolkit experienced developers turn to for building high quality desktop and mobile web applications.">Dojo</a></li><li class="routing"><a href="examples/yui" data-source="http://yuilibrary.com" data-content="YUI's lightweight core and modular architecture make it scalable, fast, and robust. Built by frontend engineers at Yahoo!, YUI powers the most popular websites in the world.">YUI</a></li><li class="routing"><a href="examples/agilityjs" data-source="http://agilityjs.com" data-content="Agility.js is an MVC library for Javascript that lets you write maintainable and reusable browser code without the infrastructural overhead found in other MVC libraries. The goal is to enable developers to write web apps at least as quickly as with jQuery, while simplifying long-term maintainability through MVC objects.">Agility.js</a></li><li class="routing"><a href="examples/knockback" data-source="http://kmalakoff.github.com/knockback/" data-content="Knockback.js provides Knockout.js magic for Backbone.js Models and Collections.">Knockback.js</a></li><li class="routing"><a href="examples/canjs" data-source="http://canjs.us" data-content="CanJS with jQuery. CanJS is a client-side, JavaScript framework that makes building rich web applications easy. It provides can.Model (for connecting to RESTful JSON interfaces), can.View (for template loading and caching), can.Observe (for key-value binding), can.EJS (live binding templates), can.Control (declarative event bindings) and can.route (routing support).">CanJS</a></li><li class="routing"><a href="examples/maria" data-source="https://github.com/petermichaux/maria" data-content="An MVC framework for JavaScript applications. The real MVC. The Smalltalk MVC. The Gang of Four MVC. The three core design patterns of MVC (observer, composite, and strategy) are embedded in Maria's Model, View, and Controller objects. Other patterns traditionally included in MVC implementations (e.g. factory method and template) make appearances too.">Maria</a></li><li class="routing"><a href="examples/polymer/index.html" data-source="http://polymer-project.org" data-content="Polymer is a new type of library for the web, built on top of Web Components, and designed to leverage the evolving web platform on modern browsers. It is comprised of core platform features (e.g Shadow DOM, Custom Elements, MDV) enabled with polyfills and a next generation web application framework built on these technologies.">Polymer</a></li><li class="routing"><a href="examples/react" data-source="http://facebook.github.io/react/" data-content="React is a JavaScript library for building user interfaces.">React</a></li><li class="routing"><a href="examples/mithril" data-source="http://lhorie.github.io/mithril/" data-content="Mithril is a client-side MVC framework - a tool to organize code in a way that is easy to think about and to maintain.">Mithril</a></li><li class="routing"><a href="examples/ampersand" data-source="http://ampersandjs.com" data-content="A highly modular, loosely coupled, non-frameworky framework for building advanced JavaScript apps.">Ampersand</a></li><li class="routing"><a href="examples/flight" data-source="http://twitter.github.com/flight" data-content="Flight is a lightweight, component-based JavaScript framework that maps behavior to DOM nodes. Twitter uses it for their web applications.">Flight</a></li></ul></div><div class="js-app-list" data-app-list="ctojs"><p class="applist-intro">
These are applications written in programming
languages that compile to JavaScript.
</p><ul class="js-app-list-inner applist js"><li class="routing"><a href="examples/spine" data-source="http://spinejs.com" data-content="Spine is a lightweight framework for building JavaScript web applications. Spine gives you an MVC structure and then gets out of your way, allowing you to concentrate on the fun stuff, building awesome web applications.">Spine</a></li><li class="routing"><a href="examples/vanilladart/build" data-source="http://dartlang.org" data-content="Dart firstly targets the development of modern and large scale browser-side web apps. It's an object oriented language with a C-style syntax. It has two run modes : it can be compiled to JS, and will later run in native VM in compliant browsers (just in a dedicated Chromium provided with Dart SDK for the moment).">Dart</a></li><li class="routing"><a href="examples/gwt" data-source="https://developers.google.com/web-toolkit/" data-content="Google Web Toolkit (GWT) is an MVP development toolkit for building and optimizing complex browser-based applications. GWT is used by many products at Google, including Google AdWords.">GWT</a></li><li class="routing"><a href="examples/closure" data-source="http://code.google.com/closure/library/" data-content="The Closure Library is a broad, well-tested, modular, and cross-browser JavaScript library. You can pull just what you need from a large set of reusable UI widgets and controls, and from lower-level utilities for DOM manipulation, server communication, animation, data structures, unit testing, rich-text editing, and more.">Closure</a></li><li><a href="examples/angular-dart/web" data-source="https://github.com/angular/angular.dart" data-content="Dart firstly targets the development of modern and large scale browser-side web apps. It's an object oriented language with a C-style syntax. AngularDart is a port of Angular to Dart.">AngularDart</a></li><li><a href="examples/batman" data-source="http://batmanjs.org" data-content="Batman.js is a framework for building rich web applications with CoffeeScript or JavaScript. App code is concise and declarative, thanks to a powerful system of view bindings and observable properties. The API is designed with developer and designer happiness as its first priority.">Batman.js</a></li><li><a href="examples/typescript-backbone" data-source="http://typescriptlang.org" data-content="TypeScript is a language for application-scale JavaScript development. It offers classes, modules, interfaces and type-checking at compile time to help you build robust components.">TypeScript <br>+ Backbone.js</a></li><li><a href="examples/typescript-angular" data-source="http://typescriptlang.org" data-content="An AngularJS + TypeScript implementation of TodoMVC. The only significant difference between this and the vanilla Angular app is that dependency injection is done via annotated constructors, which allows minification of JavaScript.">TypeScript <br>+ AngularJS</a></li><li><a href="examples/serenadejs" data-source="https://github.com/elabs/serenade.js" data-content="Serenade.js is yet another MVC client side JavaScript framework. Why do we indulge in recreating the wheel? We believe that Serenade.js more closely follows the ideas of classical MVC than competing frameworks.">Serenade.js</a></li></ul></div><div class="js-app-list" data-app-list="labs"><p class="applist-intro">
</p><ul class="js-app-list-inner applist js"><li class="routing"><a href="examples/spine" data-source="http://spinejs.com" data-content="Spine is a lightweight framework for building JavaScript web applications. Spine gives you an MVC structure and then gets out of your way, allowing you to concentrate on the fun stuff, building awesome web applications.">Spine</a></li><li class="routing"><a href="examples/vanilladart/build/web" data-source="http://dartlang.org" data-content="Dart firstly targets the development of modern and large scale browser-side web apps. It's an object oriented language with a C-style syntax. It has two run modes : it can be compiled to JS, and will later run in native VM in compliant browsers (just in a dedicated Chromium provided with Dart SDK for the moment).">Dart</a></li><li class="routing"><a href="examples/gwt" data-source="https://developers.google.com/web-toolkit/" data-content="Google Web Toolkit (GWT) is an MVP development toolkit for building and optimizing complex browser-based applications. GWT is used by many products at Google, including Google AdWords.">GWT</a></li><li class="routing"><a href="examples/closure" data-source="http://code.google.com/closure/library/" data-content="The Closure Library is a broad, well-tested, modular, and cross-browser JavaScript library. You can pull just what you need from a large set of reusable UI widgets and controls, and from lower-level utilities for DOM manipulation, server communication, animation, data structures, unit testing, rich-text editing, and more.">Closure</a></li><li><a href="examples/angular-dart/web" data-source="https://github.com/angular/angular.dart" data-content="Dart firstly targets the development of modern and large scale browser-side web apps. It's an object oriented language with a C-style syntax. AngularDart is a port of Angular to Dart.">AngularDart</a></li><li><a href="examples/batman" data-source="http://batmanjs.org" data-content="Batman.js is a framework for building rich web applications with CoffeeScript or JavaScript. App code is concise and declarative, thanks to a powerful system of view bindings and observable properties. The API is designed with developer and designer happiness as its first priority.">Batman.js</a></li><li><a href="examples/typescript-backbone" data-source="http://typescriptlang.org" data-content="TypeScript is a language for application-scale JavaScript development. It offers classes, modules, interfaces and type-checking at compile time to help you build robust components.">TypeScript <br>+ Backbone.js</a></li><li><a href="examples/typescript-angular" data-source="http://typescriptlang.org" data-content="An AngularJS + TypeScript implementation of TodoMVC. The only significant difference between this and the vanilla Angular app is that dependency injection is done via annotated constructors, which allows minification of JavaScript.">TypeScript <br>+ AngularJS</a></li><li><a href="examples/serenadejs" data-source="https://github.com/elabs/serenade.js" data-content="Serenade.js is yet another MVC client side JavaScript framework. Why do we indulge in recreating the wheel? We believe that Serenade.js more closely follows the ideas of classical MVC than competing frameworks.">Serenade.js</a></li></ul></div><div class="js-app-list" data-app-list="labs"><p class="applist-intro">
These are examples written in JavaScript that
we are still evaluating.
</p><ul class="js-app-list-inner applist js"><li class="routing"><a href="examples/backbone_marionette" data-source="http://marionettejs.com" data-content="Backbone.Marionette is a composite application library for Backbone.js that aims to simplify the construction of large scale JavaScript applications.">MarionetteJS</a></li><li class="routing"><a href="examples/thorax" data-source="http://thoraxjs.org" data-content="An opinionated, battle tested Backbone + Handlebars framework to build large scale web applications.">Thorax</a></li><li class="routing"><a href="examples/chaplin-brunch/public" data-source="http://chaplinjs.org" data-content="Chaplin is an architecture for JavaScript applications using the Backbone.js library. Chaplin addresses Backbone’s limitations by providing a lightweight and flexible structure that features well-proven design patterns and best practises.">Chaplin + Brunch</a></li><li class="routing"><a href="examples/backbone_require" data-source="http://requirejs.org" data-content="RequireJS is a JavaScript file and module loader. It is optimized for in-browser use, but it can be used in other JavaScript environments, like Rhino and Node. Using a modular script loader like RequireJS will improve the speed and quality of your code.">Backbone.js + RequireJS</a></li><li><a href="examples/knockoutjs_require" data-source="http://knockoutjs.com" data-content="This project is an adaptation of /examples/knockoutjs with require.js.">KnockoutJS + RequireJS</a></li><li class="routing"><a href="examples/angularjs_require" data-source="http://angularjs.org" data-content="What HTML would have been had it been designed for web apps. This is an example of using it with AMD modules.">AngularJS + RequireJS</a></li><li class="routing"><a href="examples/canjs_require" data-source="http://canjs.us" data-content="CanJS is a client-side, JavaScript framework that makes building rich web applications easy. The AMD version lets you use the framework in a fully modular fashion and will only what you actually need.">CanJS + RequireJS</a></li><li class="routing"><a href="examples/troopjs_require" data-source="https://github.com/troopjs/" data-content="TroopJS attempts to package popular front-end technologies and bind them with minimal effort for the developer. It includes jQuery for DOM manipulation, When.js for promises, RequireJS for modularity and Has.js for feature detection. On top, it includes Pub/Sub support, templating, weaving (widgets to DOM) and auto-wiring.">TroopJS + RequireJS</a></li><li class="routing"><a href="examples/thorax_lumbar/public" data-source="http://walmartlabs.github.com/lumbar" data-content="An opinionated, battle tested Backbone + Handlebars framework to build large scale web applications. This implementation uses Lumbar, a route based module loader.">Thorax + Lumbar</a></li><li class="routing"><a href="examples/somajs_require" data-source="http://somajs.github.com/somajs" data-content="soma.js is a framework created to build scalable and maintainable javascript applications.">soma.js + RequireJS</a></li><li class="routing"><a href="examples/durandal" data-source="http://durandaljs.com/" data-content="Single Page Apps Done Right">Durandal</a></li><li class="routing"><a href="examples/lavaca_require" data-source="http://getlavaca.com" data-content="A curated collection of tools for building mobile web applications.">Lavaca + RequireJS</a></li><li><a href="examples/cujo/index.html" data-source="http://cujojs.com" data-content="cujoJS is an architectural framework for building highly modular, scalable, maintainable applications in Javascript. It provides architectural plumbing, such as modules (AMD and CommonJS), declarative application composition, declarative connections, and aspect oriented programming.">cujoJS</a></li><li><a href="examples/montage" data-source="http://montagejs.org" data-content="Montage simplifies the development of rich HTML5 applications by providing modular components, real-time two-way data binding, CommonJS dependency management, and many more conveniences.">Montage</a></li><li class="routing"><a href="examples/sammyjs" data-source="http://sammyjs.org" data-content="Sammy.js is a tiny JavaScript framework developed to ease the pain and provide a basic structure for developing JavaScript applications.">Sammy.js</a></li><li class="routing"><a href="examples/stapes" data-source="http://hay.github.com/stapes" data-content="Stapes is a (really) tiny Javascript MVC micro-framework (1.7kb) that has all the building blocks you need when writing an MVC app. It includes a powerful event system, support for inheritance, use with AMD, plugin support and more. A RequireJS Todo application is <a href='examples/stapes_require/index.html'>also</a> available.">Stapes</a></li><li class="routing"><a href="examples/epitome" data-source="http://dimitarchristoff.github.com/Epitome" data-content="Epitome is a new extensible and modular open-source MVC framework, built out of MooTools Classes and Events.">Epitome</a></li><li><a href="examples/somajs" data-source="http://somajs.github.com/somajs" data-content="soma.js is a framework created to build scalable and maintainable javascript applications.">soma.js</a></li><li><a href="examples/duel/www" data-source="https://bitbucket.org/mckamey/duel/wiki/Home" data-content="DUEL is a dual-side templating engine using HTML for layout and 100% pure JavaScript as the binding language. The same views may be executed both directly in the browser (client-side template) and on the server (server-side template).">DUEL</a></li><li class="routing"><a href="examples/kendo" data-source="http://www.kendoui.com/" data-content="Kendo UI is a comprehensive HTML5, JavaScript framework for modern web and mobile app development">Kendo UI</a></li><li class="routing"><a href="examples/puremvc" data-source="http://puremvc.github.com" data-content="PureMVC is a lightweight framework for creating applications based upon the classic Model-View-Controller design meta-pattern.">PureMVC</a></li><li><a href="examples/olives" data-source="https://github.com/flams/olives" data-content="Olives is a JS MVC framework that helps you create realtime UIs. It includes a set of AMD/CommonJS modules that are easily extensive, a high level of abstraction to reduce boilerplate and is based on socket.io, to provide a powerful means to communicate with node.js.">Olives</a></li><li class="routing"><a href="examples/plastronjs" data-source="https://github.com/rhysbrettbowen/PlastronJS" data-content="PlastronJS is an mvc framework built on top of the Closure Library and built to compile with projects that use the Closure Compiler.">PlastronJS</a></li><li><a href="examples/dijon" data-source="https://github.com/creynders/dijon-framework" data-content="Dijon is an IOC and DI micro-framework for Javascript. Originally it was meant to be a port of Robotlegs, but deviated to something quite different. It remains however heavily inspired by Robotlegs, and more specifically Swiftsuspenders.">Dijon</a></li><li class="routing"><a href="examples/rappidjs" data-source="http://www.rappidjs.com" data-content="rAppid.js is a declarative JavaScript framework for rapid web application development. It supports dependency loading, Model-View binding, View-Model binding, dependency injection and i18n.">rAppid.js</a></li><li><a href="examples/extjs_deftjs" data-source="http://deftjs.org/" data-content="Essential extensions for enterprise web and mobile application development with Ext JS and Sencha Touch">DeftJS + ExtJS</a></li><li class="routing"><a href="examples/ariatemplates" data-source="http://ariatemplates.com/" data-content="Aria Templates has been designed for web apps that are used 8+ hours a day, and that need to display and process high amount of data with a minimum of bandwidth consumption.">Aria Templates</a></li><li class="routing"><a href="examples/enyo_backbone" data-source="http://enyojs.com/" data-content="Enyo is a simple but powerful encapsulation model, which helps you factor application functionality into self-contained building blocks that are easy to reuse and maintain.">Enyo +<br>Backbone.js</a></li><li class="routing"><a href="examples/angularjs-perf" data-source="http://angularjs.org" data-content="What HTML would have been had it been designed for web apps. A version with several performance optimizations.">AngularJS <br>(optimized)</a></li><li class="routing"><a href="examples/sapui5" data-source="http://scn.sap.com/community/developer-center/front-end" data-content="SAPUI5 is SAP's HTML5-based UI technology that allows you to build rich, interactive Web applications.">SAPUI5</a></li><li class="routing"><a href="examples/exoskeleton" data-source="http://exosjs.com/" data-content="A faster and leaner Backbone for your HTML5 apps.">Exoskeleton</a></li><li class="routing"><a href="examples/atmajs" data-source="http://atmajs.com/" data-content="HMVC and the component-based architecture for building client, server or hybrid applications">Atma.js</a></li><li><a href="examples/ractive" data-source="http://ractivejs.org" data-content="Ractive.js is a next-generation DOM manipulation library, optimised for developer sanity.">Ractive.js</a></li><li><a href="examples/componentjs" data-source="http://componentjs.com" data-content="ComponentJS is a stand-alone MPL-licensed Open Source library for JavaScript, providing a powerful run-time Component System for hierarchically structuring the User-Interface (UI) dialogs of complex HTML5-based Rich Clients (aka Single-Page-Apps) — under maximum applied Separation of Concerns (SoC) architecture principle, through optional Model, View and Controller component roles, with sophisticated hierarchical Event, Service, Hook, Model, Socket and Property mechanisms, and fully independent and agnostic of the particular UI widget toolkit.">ComponentJS</a></li><li><a href="examples/vue" data-source="http://vuejs.org" data-content="Vue.js provides the benefits of MVVM data binding and a composable component system with an extremely simple and flexible API.">Vue.js</a></li><li><a href="examples/react-backbone" data-source="http://facebook.github.io/react/" data-content="This React example integrates Backbone for its model and router. It is a showcase of third-party library integration for developers wishing to use React together with a different JavaScript framework.">React + <br>Backbone.js</a></li></ul></div></div><ul class="legend"><li><span class="label">R</span> = App also demonstrates routing</li></ul><hr><h2>Real-time</h2><ul class="applist"><li><a href="http://todomvcapp.meteor.com" data-source="http://meteor.com" data-content="Meteor is an ultra-simple environment for building modern websites. A Meteor application is a mix of JavaScript that runs inside a client web browser, JavaScript that runs on the Meteor server inside a Node.js container, and all the supporting HTML fragments, CSS rules, and static assets. Meteor automates the packaging and transmission of these different components. And, it is quite flexible about how you choose to structure those components in your file tree.">Meteor</a></li><li class="routing"><a href="http://todomvc-socketstream.herokuapp.com" data-source="http://www.socketstream.org" data-content="SocketStream is a fast, modular Node.js web framework dedicated to building realtime single-page apps">SocketStream</a></li><li class="routing"><a href="examples/firebase-angular" data-source="https://www.firebase.com" data-content="Firebase is a scalable realtime backend that lets you build apps without managing servers. Firebase persists and updates JSON data in realtime and is best used in combination with a JavaScript MV* framework such as AngularJS or Backbone.">Firebase + AngularJS</a></li></ul><hr><h2>Compare these to a non-framework implementation</h2><ul class="applist"><li class="routing"><a href="examples/vanillajs" data-source="https://developer.mozilla.org/en/JavaScript" data-content="You know JavaScript right? :P">Vanilla JS</a></li><li class="routing"><a href="examples/jquery" data-source="http://jquery.com" data-content="jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development. jQuery is designed to change the way that you write JavaScript.">jQuery</a></li></ul></div></div><hr><div class="row"><div class="col-md-6 quotes"><blockquote class="quote speech-bubble"><p></p><footer><img width="40" height="40" alt=""><a></a></footer></blockquote></div><div class="col-md-6"><img class="screenshot" src="site-assets/screenshot.png" width="558" height="246" alt="Todo app screenshot"></div></div><hr><div class="row"><div class="col-md-4"><h2>New in 1.3</h2><ul class="whats-new"><li>We now have 64 applications.
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
<svg xmlns="http://www.w3.org/2000/svg" width="500" height="85.529"><path d="M115.936 74.48v-6.71l8.744-.593c1.188-.086 1.358-.425 1.358-1.698V22.265h-8.743c-.935 0-1.19.083-1.36.933l-1.357 7.387h-9.34V13.01h54.678v17.576h-9.255l-1.356-7.388c-.17-.85-.425-.933-1.358-.933H139.2V65.48c0 1.187.085 1.526 1.36 1.61l9.34.68v6.71h-33.964zm35.14 1.18h-36.32v-8.99L124.6 66l.244-.025.015-.495V23.444h-7.564l-.188.003-1.55 8.317H104.06V11.83h57.034v19.935h-11.417l-1.528-8.317-.205-.003h-7.566V65.48l.005.413.252.022 10.44.76v8.984zm-33.96-2.36h31.602v-4.433l-8.246-.6c-2.264-.15-2.453-1.46-2.453-2.788V21.085h9.925c1.082 0 2.168.146 2.516 1.88l1.185 6.44h7.092V14.19H106.42v15.216h7.178l1.18-6.422c.353-1.753 1.437-1.898 2.52-1.898h9.924V65.48c0 1.307-.19 2.71-2.454 2.876l-7.65.517V73.3zm41.447-20.64c0-14.096 7.385-23.264 22.923-23.264 15.705 0 21.817 9.338 21.817 22.33 0 14.433-7.302 23.77-22.923 23.77-15.533 0-21.817-9.508-21.817-22.837zm31.33-.51c0-10.02-3.058-13.586-8.575-13.586-5.604 0-9.34 3.482-9.34 13.67 0 10.273 3.31 14.35 8.997 14.35 5.52 0 8.917-3.82 8.917-14.434zm-9.512 24.527c-14.828 0-22.996-8.53-22.996-24.018 0-15.533 8.785-24.442 24.103-24.442 14.83 0 22.998 8.35 22.998 23.51 0 16.088-8.56 24.95-24.104 24.95zm1.106-46.1c-14.02 0-21.744 7.842-21.744 22.082 0 9.88 3.58 21.658 20.64 21.658 17.97 0 21.744-12.287 21.744-22.592 0-9.65-3.58-21.15-20.64-21.15zm-.51 37.186c-6.754 0-10.178-5.224-10.178-15.528 0-9.854 3.54-14.85 10.52-14.85 8.742 0 9.754 8.426 9.754 14.766 0 10.506-3.304 15.613-10.097 15.613zm.34-28.02c-3.504 0-8.16 1.295-8.16 12.49 0 11.804 4.464 13.17 7.818 13.17 3.322 0 7.738-1.372 7.738-13.253 0-10.932-3.737-12.406-7.395-12.406zm59.1 34.736l-.852-4.755-.594-.087c-3.565 3.482-7.726 5.857-13.922 5.857-10.02 0-16.475-6.364-16.475-22.582 0-17.065 8.578-23.518 18.003-23.518 4.922 0 8.745 1.697 11.97 4.075V20.565c0-.848-.34-1.44-1.104-1.697l-4.668-1.612.933-6.878h17.066v55.187c0 1.27.08 1.442 1.357 1.613l4.072.594v6.708h-15.786zm-2.378-32.688c-2.122-1.445-4.84-2.546-7.303-2.546-6.28 0-8.745 5.855-8.745 13.413 0 8.232 2.376 12.82 7.725 12.82 2.89 0 6.03-1.698 8.323-3.65V41.79zm-12.99 34.885c-11.713 0-17.652-7.995-17.652-23.763 0-15.464 7.17-24.696 19.182-24.696 3.87 0 7.42.997 10.79 3.042V20.565c0-.48-.14-.524-.3-.58l-5.59-1.93 1.2-8.857h19.275v56.366l.004.395.333.05 5.095.74v8.91h-17.957l-.74-4.148c-4.052 3.562-8.316 5.165-13.64 5.165zm1.53-46.1c-10.69 0-16.824 8.142-16.824 22.337 0 14.403 5.003 21.404 15.295 21.404 5.145 0 9.186-1.702 13.097-5.522l.417-.406 2.014.29.827 4.62h13.622v-4.507l-3.064-.448c-2.01-.27-2.367-1.11-2.367-2.78V11.557h-14.858l-.662 4.9 3.753 1.296c1.202.403 1.897 1.43 1.897 2.812v15.24l-1.878-1.385c-3.563-2.623-7.142-3.844-11.273-3.844zm3.137 36.082c-5.906 0-8.905-4.712-8.905-14 0-9.275 3.62-14.594 9.926-14.594 2.495 0 5.4 1.003 7.967 2.75l.516.35v21.207l-.416.354c-1.388 1.182-5.05 3.932-9.09 3.932zm1.02-26.234c-6.582 0-7.565 7.666-7.565 12.233 0 11.64 4.928 11.64 6.545 11.64 2.13 0 4.77-1.123 7.145-3.026V42.43c-2.03-1.263-4.278-2.004-6.125-2.004zm28.363 12.233c0-14.096 7.388-23.264 22.925-23.264 15.707 0 21.82 9.338 21.82 22.33 0 14.433-7.302 23.77-22.925 23.77-15.536 0-21.82-9.508-21.82-22.837zm31.33-.51c0-10.02-3.058-13.586-8.577-13.586-5.6 0-9.335 3.482-9.335 13.67 0 10.273 3.31 14.35 8.997 14.35 5.52 0 8.917-3.82 8.917-14.434zm-9.51 24.527c-14.832 0-23-8.53-23-24.018 0-15.533 8.787-24.442 24.105-24.442 14.83 0 23 8.35 23 23.51-.002 16.088-8.56 24.95-24.105 24.95zm1.104-46.1c-14.022 0-21.746 7.842-21.746 22.082 0 9.88 3.583 21.658 20.642 21.658 17.97 0 21.745-12.287 21.745-22.592 0-9.65-3.58-21.15-20.64-21.15zm-.51 37.186c-6.754 0-10.178-5.224-10.178-15.528 0-9.854 3.538-14.85 10.517-14.85 8.748 0 9.76 8.426 9.76 14.766-.002 10.506-3.304 15.613-10.098 15.613zm.34-28.02c-3.504 0-8.16 1.295-8.16 12.49 0 11.804 4.466 13.17 7.82 13.17 3.322 0 7.74-1.372 7.74-13.253 0-10.932-3.742-12.406-7.4-12.406z" fill="#2D2D2D"/><path d="M354.554 74.48v-6.624l6.963-.594c1.188-.17 1.358-.51 1.358-1.698V33.302h-.34l-12.14 28.95h-13.843l-11.968-29.035h-.427V65.48c0 1.356.086 1.527 1.358 1.698l7.303.68v6.622h-25.81v-6.623l5.347-.594c1.19-.17 1.36-.427 1.36-1.698V22.01c0-1.274-.17-1.527-1.36-1.697l-5.347-.595V13.01h22.753l14.775 38.46h.34l15.535-38.46h22.076v6.623l-5.69.68c-1.272.17-1.358.338-1.358 1.61v43.642c0 1.104.254 1.442 1.358 1.613l5.69.68v6.622h-27.932zm29.114 1.18h-30.292v-8.886l8.04-.688.29-.06c-.02-.047-.012-.198-.012-.463v-27.21L351.177 63.43h-15.414l-10.426-25.294v27.342l.008.48.328.05 8.325.77v8.88H305.83V66.8l6.396-.712.295-.053.018-.473V22.01l-.017-.473-.33-.057-6.36-.707V11.83h24.742l14.16 36.854 14.885-36.853h24.05v8.85l-6.728.803-.317.048-.004.395v43.64l.02.396.34.055 6.687.8v8.844zm-27.935-2.36h25.575v-4.396l-4.65-.556c-1.69-.26-2.397-1.093-2.397-2.784v-43.64c0-1.667.357-2.51 2.382-2.78l4.667-.557V14.19h-20.104L345.67 52.65h-1.944l-14.773-38.46H308.19v4.472l4.3.478c2.02.29 2.406 1.27 2.406 2.87v43.555c0 1.6-.386 2.58-2.368 2.866l-4.34.482V73.3h23.453v-4.367l-6.23-.58c-2.088-.28-2.43-1.11-2.43-2.873V32.037h2.395l11.968 29.037h12.27l12.143-28.953h2.3v33.444c0 1.56-.396 2.582-2.367 2.866l-5.954.508V73.3zm55.443 1.18L394.11 22.01c-.34-1.02-1.017-1.19-2.038-1.444l-3.82-.933.85-6.623h25.727v6.623l-6.88.763 12.733 42.45h.682l12.31-42.45-6.79-.763.85-6.623h21.987v6.623l-3.566.933c-1.02.255-1.865.595-2.12 1.612L428.5 74.48h-17.324zm18.2 1.18H410.32l-17.33-53.286c-.115-.342-.13-.396-1.197-.663l-4.844-1.18 1.118-8.7h27.943v8.857l-6.52.724 11.522 38.424 11.14-38.423-6.588-.74 1.13-8.84h24.207v8.712l-4.446 1.164c-1.077.27-1.21.485-1.275.76L429.376 75.66zm-17.344-2.36h15.584l15.286-51.458c.45-1.788 2.148-2.217 2.965-2.42l2.675-.7V14.19h-19.77l-.566 4.403 6.99.786-12.944 44.646h-2.446L406.414 19.38l7.235-.802v-4.39h-23.514l-.582 4.548 2.797.685c1.103.274 2.335.583 2.88 2.217L412.032 73.3zm86.79-2.47c-5.012 3.056-13.503 4.666-21.23 4.666-21.14 0-29.8-12.308-29.8-32.007 0-18.084 10.442-31.586 31.583-31.586 7.047 0 14.603 1.783 19.273 4.842v16.64l-9.338-.764-1.358-8.32c-.17-.848-.512-1.273-1.36-1.53-1.867-.594-4.753-1.018-7.554-1.018-10.785 0-17.664 7.302-17.664 21.735 0 15.026 6.54 22.328 17.07 22.328 2.8 0 6.28-.425 8.488-1.103 1.02-.256 1.273-.51 1.528-1.783l1.273-7.896h9.086V70.83zm-21.228 5.847c-20.558 0-30.98-11.167-30.98-33.188 0-20.21 12.554-32.766 32.763-32.766 7.545 0 15.18 1.93 19.92 5.036l.532.348v18.56l-11.533-.946-1.507-9.23c-.088-.426-.15-.474-.537-.592-1.854-.59-4.68-.967-7.213-.967-10.63 0-16.482 7.3-16.482 20.556 0 13.835 5.492 21.148 15.888 21.148 2.783 0 6.132-.433 8.142-1.05.415-.105.502-.157.524-.17.005-.014.08-.15.194-.72l1.426-8.842H500v17.632l-.564.346c-4.896 2.987-13.265 4.843-21.842 4.843zm1.782-63.593c-19.037 0-30.404 11.367-30.404 30.405 0 20.456 9.63 30.828 28.622 30.828 7.718 0 15.475-1.625 20.047-4.166V56.216h-6.9l-1.115 6.906c-.344 1.73-.905 2.36-2.4 2.737-2.19.672-5.74 1.137-8.78 1.137-11.768 0-18.246-8.35-18.246-23.508 0-14.563 6.866-22.916 18.84-22.916 2.8 0 5.83.413 7.912 1.074 1.226.368 1.896 1.116 2.158 2.42l1.22 7.452 7.143.585V17.397c-4.368-2.632-11.375-4.313-18.097-4.313z" fill="#AF2F2F"/><g fill="#2D2D2D"><path d="M12.83 5.7h8.78V0h-8.78c-2.433 0-4.8.683-6.85 1.98l3.047 4.814C10.163 6.08 11.475 5.7 12.83 5.7M5.704 12.827c0-1.042.216-2.042.646-2.98L1.172 7.46C.394 9.15 0 10.956 0 12.826v10.095h5.704V12.827zM0 28.68h5.704v14.37H0zm76.782-21.7c1.718-1.092 3.432-2.122 5.13-3.08-.97-1-2.104-1.842-3.336-2.478C76.773.492 74.74 0 72.7 0h-5.047v5.7H72.7c1.495 0 2.905.45 4.082 1.28M0 48.81h5.704v14.397H0zM27.37 0h14.37v5.7H27.37zm20.127 0h14.396v5.7H47.497zm6.358 79.824h14.367v5.705H53.855zm25.972-47.437h5.7v14.398h-5.7zm0 20.155h5.7v14.372h-5.7zM5.704 72.7v-3.74H0v3.74c0 4.667 2.54 8.975 6.63 11.235l2.76-4.99c-2.275-1.26-3.686-3.65-3.686-6.246m74.123-49.853v3.778h5.7v-8.467c-1.874 1.4-3.77 2.96-5.7 4.69"/><path d="M79.827 72.7c0 3.574-2.667 6.613-6.203 7.07l.726 5.654c3.07-.396 5.897-1.894 7.956-4.22 2.078-2.347 3.223-5.366 3.223-8.506v-.028h-5.702v.03zm-66.285 7.124H27.94v5.705H13.542zm20.154 0h14.4v5.705h-14.4z"/></g><path fill="#AF2F2F" d="M13.06 45.396L39.802 72.14S66.548 20.687 95.465 9.146L94.38 1.002C78.633 7.246 54.734 23.675 37.088 48.79l-18.6-10.997-5.428 7.603z"/></svg>
\ No newline at end of file
......@@ -127,6 +127,7 @@ header nav a:not(:last-child) {
margin: 0;
padding: 0;
font-size: 17px;
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment