App-MojoSlides
view release on metacpan or search on metacpan
=item L<Bootstrap|http://getbootstrap.com>
=item L<jQuery|http://jquery.com>
=item L<PPI>
- if desired for Perl code highlighting
=item L<Mousetrap|http://craig.is/killing/mice>
- simple javascript keybinding library
=back
=head1 DEDICATION
This module is dedicated to the organizers and attendees of YAPC::Brazil 2013.
They were kind enough to invite me as their keynote speaker and in turn I wrote this application to present that talk, so I owe them a debt of thanks on both accounts.
=head1 SOURCE REPOSITORY
lib/App/MojoSlides.pm view on Meta::CPAN
=item L<Bootstrap|http://getbootstrap.com>
=item L<jQuery|http://jquery.com>
=item L<PPI>
- if desired for Perl code highlighting
=item L<Mousetrap|http://craig.is/killing/mice>
- simple javascript keybinding library
=back
=head1 DEDICATION
This module is dedicated to the organizers and attendees of YAPC::Brazil 2013.
They were kind enough to invite me as their keynote speaker and in turn I wrote this application to present that talk, so I owe them a debt of thanks on both accounts.
=head1 SOURCE REPOSITORY
lib/App/MojoSlides/files/public/jquery.min.js view on Meta::CPAN
/*! jQuery v2.0.3 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license
//@ sourceMappingURL=jquery-2.0.3.min.map
*/
(function(e,undefined){var t,n,r=typeof undefined,i=e.location,o=e.document,s=o.documentElement,a=e.jQuery,u=e.$,l={},c=[],p="2.0.3",f=c.concat,h=c.push,d=c.slice,g=c.indexOf,m=l.toString,y=l.hasOwnProperty,v=p.trim,x=function(e,n){return new x.fn.in...
};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,s,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return q.get(e,n)||q.access(e,n,{empty:x.Callbacks("once memory").add(funct...
},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var Xt,Ut,Yt=x.now(),Vt=/\?/,Gt=/#.*$/,Jt=/([?&])_=[^&]*/,Qt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Kt=/^(?:a...
lib/App/MojoSlides/files/public/mojoslides.js view on Meta::CPAN
var current;
var last;
window.onhashchange = function(){
current = getCurrent();
refreshOverlays();
};
function bindMousetrap(prev, next) {
Mousetrap.bind(['left', 'up', 'pageup'], function(){
if (current > 1) {
current -= 1;
refreshOverlays()
} else {
window.location = prev;
}
});
Mousetrap.bind(['right', 'down', 'pagedown'], function(){
if (current < last) {
current += 1;
refreshOverlays()
} else {
window.location = next;
}
});
}
function findLastOverlay () {
lib/App/MojoSlides/files/public/mousetrap.min.js view on Meta::CPAN
/* mousetrap v1.4.5 craig.is/killing/mice */
(function(J,r,f){function s(a,b,c){a.addEventListener?a.addEventListener(b,c,!1):a.attachEvent("on"+b,c)}function A(a){if("keypress"==a.type){var b=String.fromCharCode(a.which);a.shiftKey||(b=b.toLowerCase());return b}return h[a.which]?h[a.which]:B[a...
l[a][g],!(!d&&k.seq&&n[k.seq]!=k.level||h!=k.action||("keypress"!=h||c.metaKey||c.ctrlKey)&&b.sort().join(",")!==k.modifiers.sort().join(","))){var m=d&&k.seq==d&&k.level==v;(!d&&k.combo==e||m)&&l[a].splice(g,1);f.push(k)}return f}function K(a){var b...
b.returnValue=!1,b.cancelBubble=!0)}function y(a){"number"!==typeof a.which&&(a.which=a.keyCode);var b=A(a);b&&("keyup"==a.type&&z===b?z=!1:m.handleKey(b,K(a),a))}function w(a){return"shift"==a||"ctrl"==a||"alt"==a||"meta"==a}function L(a,b,c,d){func...
d,e,f=[];c="+"===a?["+"]:a.split("+");for(e=0;e<c.length;++e)d=c[e],G[d]&&(d=G[d]),b&&"keypress"!=b&&H[d]&&(d=H[d],f.push("shift")),w(d)&&f.push(d);c=d;e=b;if(!e){if(!p){p={};for(var g in h)95<g&&112>g||h.hasOwnProperty(g)&&(p[h[g]]=g)}e=p[c]?"keydow...
d,a,e),l[c.key][d?"unshift":"push"]({callback:b,modifiers:c.modifiers,action:c.action,seq:d,level:e,combo:a}))}var h={8:"backspace",9:"tab",13:"enter",16:"shift",17:"ctrl",18:"alt",20:"capslock",27:"esc",32:"space",33:"pageup",34:"pagedown",35:"end",...
"@":"2","#":"3",$:"4","%":"5","^":"6","&":"7","*":"8","(":"9",")":"0",_:"-","+":"=",":":";",'"':"'","<":",",">":".","?":"/","|":"\\"},G={option:"alt",command:"meta","return":"enter",escape:"esc",mod:/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"me...
unbind:function(a,b){return m.bind(a,function(){},b)},trigger:function(a,b){if(q[a+":"+b])q[a+":"+b]({},a);return this},reset:function(){l={};q={};return this},stopCallback:function(a,b){return-1<(" "+b.className+" ").indexOf(" mousetrap ")?!1:"INPUT...
b[d[e].seq]=1,x(d[e].callback,c,d[e].combo)):g||x(d[e].callback,c,d[e].combo);d="keypress"==c.type&&I;c.type!=u||w(a)||d||t(b);I=g&&"keydown"==c.type}};J.Mousetrap=m;"function"===typeof define&&define.amd&&define(m)})(window,document);
lib/App/MojoSlides/files/templates/layouts/basic.html.ep view on Meta::CPAN
<div id="footer" class="container">
% if (my $footer = config->{footer_template}) {
%= include $footer
% }
</div>
%= javascript '/jquery.min.js'
%= javascript '/mousetrap.min.js'
%= javascript '/mojoslides.js'
%= javascript begin
bindMousetrap(
"<%= url_for slide => { slide => prev_slide } %>",
"<%= url_for slide => { slide => next_slide } %>"
);
% end
% if (my $files = config->{extra_js}) {
% $files = [ $files ] unless ref $files;
% foreach my $file (@$files) {
%= javascript $file
% }
( run in 2.257 seconds using v1.01-cache-2.11-cpan-2398b32b56e )