Created
July 12, 2012 12:25
-
-
Save Carreau/3097817 to your computer and use it in GitHub Desktop.
Slideshow mode of Notebook
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<div id='presentation_mode'> | |
<style> | |
.pmode{ display: none !important } | |
</style> | |
<script> | |
grp=0; | |
pmode = function(){ | |
init() | |
cells = $('.cell') | |
nbcells = IPython.notebook.get_cells(); | |
$('div#notebook').addClass('pove'); | |
clist = []; | |
var lgrp = []; | |
for(var i in nbcells) { | |
if (nbcells[i].code_mirror.getValue().match(/(\n)?(<!--|#)?====(-->)?(\n)?/) != null){ | |
clist.push(lgrp) | |
lgrp = [i] | |
} else{ | |
lgrp.push(i) | |
} | |
} | |
clist.push(lgrp) | |
$(cells).fadeOut(500); | |
ccell = 0; | |
ncellingrp = 0; | |
$(cells[clist[grp][0]]).fadeIn() | |
prev_grp = function(){ | |
for(var i in clist[grp]){ | |
$(cells).fadeOut() | |
} | |
grp = grp-1; | |
setTimeout(function(){$(cells[clist[grp][0]]).fadeIn()},800) | |
ccell = 0; //current cell | |
} | |
next_grp = function(){ | |
for(var i in clist[grp]){ | |
$(cells).fadeOut() | |
} | |
grp = grp +1; | |
var vcell = clist[grp] ; | |
if (vcell != undefined ){ | |
setTimeout(function(){ | |
$(cells[clist[grp][0]]).fadeIn()},800 | |
) | |
} else { | |
setTimeout(function(){stop()},200); | |
} | |
ccell = 0; //current cell | |
console.log('ccel is ', ccell); | |
} | |
next_cell = function(){ | |
ccell = ccell+1; | |
var vcell = cells[clist[grp][ccell]]; | |
if ( vcell != undefined ){ | |
$(vcell).fadeIn(); | |
}else{ | |
next_grp() | |
} | |
setTimeout(function(){IPython.layout_manager.do_resize();},1000); | |
} | |
nslide = function(){next_grp()} | |
pslide = function(){prev_grp()} | |
nstep = function(){next_cell()} | |
$('#menubar, #pager_splitter, #pager, #header,#toolbar').addClass('pmode'); | |
}; | |
var init = function() | |
{ | |
var pt = $('<div/>').attr('id','toolbar_present').addClass('toolbar'); | |
$('#toolbar').after(pt); | |
ptoolbar = new IPython.ToolBar('#toolbar_present'); | |
IPython.ptoolbar = ptoolbar; | |
ptoolbar.addButtonsGroup([{label:'Next Slide', icon:'ui-icon-stop', callback:function(){stop()}}]) | |
ptoolbar.addButtonsGroup([ | |
{label:'Next Slide', icon:'ui-icon-seek-prev', callback:function(){pslide()}}, | |
{label:'Next Slide', icon:'ui-icon-seek-next', callback:function(){nslide()}}, | |
]) | |
ptoolbar.addButtonsGroup([{label:'Step Next Cell', icon:'ui-icon-play', callback:function(){nstep()}}]) | |
} | |
var stop = function() { | |
$(cells).show(); | |
$(ptoolbar.selector).remove(); | |
$('.pmode').removeClass('pmode'); | |
$('div#notebook').removeClass('pove'); | |
} | |
var sid = 'start_pmode' | |
if(($('#'+sid)).length == 0) { | |
IPython.toolbar.addButtonsGroup([ | |
{'label':'Start Slideshow', 'icon':'ui-icon-image', 'callback':function(){pmode()},'id':sid}, | |
]) | |
} | |
</script> | |
</div> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
e2032e seem to be working, improving when arriving at the end.