On Github thaume / eak-talk
By Tom Coquereau / @thaume
No module system
Everything is stuffed in a global App
angular.module('myModule.service', []);
angular.module('myModule.directive', []);
angular.module('myModule.filter', []);
angular.module('myModule', ['myModule.service', 'myModule.directive', 'myModule.filter']).
run(function(greeter, user) {
greeter.localize({
salutation: 'Bonjour'
});
user.load('World');
});
MyApp = new Marionette.Application();
MyApp.module("MyModule", function(MyModule, MyApp, Backbone, Marionette, $, _){
// do stuff here ...
});
define([
"jQuery",
"React"
], function(jQuery, React){
// do stuff here ...
});
Tom Dale: AMD is not the answer
Ember is not going to implement AMD modules
Ember is definitely moving toward ES6 modules support
Being modularized : Github repo
ES6 modules are not supported in any browser yet
Transpile into AMD, CommonJS or global (modules can work both in NodeJS and in the browser)
Strong structure to start en Ember application
Custom resolver
Based on ES6 modules
#-- app
#-- adapters
application.js
#-- components
pretty-color.js
#-- controllers
mail.js
#-- helpers
reverse-word.js
#-- models
mailbox.js
message.js
#-- routes
mail.js
#-- templates
#-- mailbox
index.hbs
application.hbs
index.hbs
mail.hbs
mailbox.hbs
#-- views
mail.js
app.js
index.html
router.js
Only the file's name matters
EAK and ES6 modules will resolve dependencies based on files paths(that's what NodeJS does too)
App.MailRoute would have know to render App.MailView, EAK has the same abilities with modules
#-- app
#-- controllers
mail.js
#-- models
mailbox.js
message.js
#-- routes
mail.js // will know it has to use views/mail and controllers/mail
#-- templates
#-- mailbox
index.hbs
application.hbs
index.hbs
mail.hbs
mailbox.hbs
#-- views
mail.js
// Old way, stuffing everything in a global
// ----------
App.MailRoute = Ember.route.extend({
model: function(params) {
return this.store.find('mailbox', params.id);
}
});
// New way, export an ES6 module from routes/mail.js
// ----------
export default Ember.route.extend({
model: function(params) {
return this.store.find('mailbox', params.id);
}
});
// can also be written
var MailRoute = Ember.route.extend({
model: function(params) {
return this.store.find('mailbox', params.id);
}
});
export default MailRoute;
For those of you who like that sort of thing. Instructions and a bit more info available here.
<section data-markdown> ## Markdown support For those of you who like that sort of thing. Instructions and a bit more info available [here](https://github.com/hakimel/reveal.js#markdown). </section>
You can select from different transitions, like: Cube - Page - Concave - Zoom - Linear - Fade - None - Default
Reveal.js comes with a few themes built in: Default - Sky - Beige - Simple - Serif - Night Moon - Solarized
* Theme demos are loaded after the presentation which leads to flicker. In production you should load your theme in the <head> using a <link>.
Set data-state="something" on a slide and "something" will be added as a class to the document element when the slide is open. This lets you apply broader style changes, like switching the background.
Additionally custom events can be triggered on a per slide basis by binding to the data-state name.
Reveal.addEventListener( 'customevent', function() {
console.log( '"customevent" has fired' );
} );
Set data-background="#007777" on a slide to change the full page background to the given color. All CSS color formats are supported.
<section data-background="image.png">
<section data-background="image.png" data-background-repeat="repeat" data-background-size="100px">
Pass reveal.js the backgroundTransition: 'slide' config argument to make backgrounds slide rather than fade.
You can override background transitions per slide by using data-background-transition="slide".
These guys come in two forms, inline: “The nice thing about standards is that there are so many to choose from” and block:
“For years there has been a theory that millions of monkeys typing at random on millions of typewriters would reproduce the entire works of Shakespeare. The Internet has proven this theory to be untrue.”function linkify( selector ) {
if( supports3DTransforms ) {
var nodes = document.querySelectorAll( selector );
for( var i = 0, len = nodes.length; i < len; i++ ) {
var node = nodes[i];
if( !node.className ) {
node.className += ' roll';
}
}
}
}
Courtesy of highlight.js.
You can link between slides internally, like this.
Hit the next arrow...
... to step through ...
any type of view fragments This slide has fragments which are also stepped through in the notes window.There's a few styles of fragments, like:
grow
shrink
roll-in
fade-out
highlight-red
highlight-green
highlight-blue
current-visible
highlight-current-blue
Presentations can be exported to PDF, below is an example that's been uploaded to SlideShare.
Press b or period on your keyboard to enter the 'paused' mode. This mode is helpful when you want to take distracting slides off the screen during a presentation.