damianavila / RISE

RISE: "Live" Reveal.js Jupyter/IPython Slideshow Extension
Other
3.67k stars 414 forks source link

the 'skip' cell feature looks broken #577

Open parmentelat opened 3 years ago

parmentelat commented 3 years ago

Hi

I haven't used 'skip' cells so far, and was giving the thing a try the other day, that left me perplexed

I would clearly incline for 2. because It is my feeling that the 'skip' feature is very close to the 'Hide Slide' feature in PowerPoint; which in turn is intended for skipping .. a whole slide typically I have a rather extensive presentation that I use over and over again but depending on the audience I skip some parts, and when I do I want to disable one slide at a time, I do not want to have to change all the cells in that section (plus, if 1. is picked then I lose the information as to where the fragments and notes used to be)

but that's clearly not for us to decide since nbconvert was here before, right ? so which is it ?

so that needs to be fixed

parmentelat commented 3 years ago

I just added a sample example named the-meaning-of-skip.ipynb in the examples subdir for testing

parmentelat commented 3 years ago

just a thought but after a night's sleep I realized this:

if I have a presentation involving slides and subslides, it feels like what would be expected would be that

except that this mechanism cannot work for us because of the way that 'skip' is one among the 5 kinds of slides that we have; so once we mark a cell as skip we forget what its past marking was; so we're not able to do that

again i take it that the semantics of the slide-oriented markings slide/subslide/... must have been specified - or at least decently implemented - in nbconvert, but it's sometimes healthy to ask oneself the basic questions from time to time :)

damianavila commented 3 years ago

This is an interesting discussion... When I first implemented this, I was just thinking about skipping a cell. Just that. But as things evolved, skipping the whole slide started to make sense in my mind... although I do not remember being asked to somehow implement that... so I forgot about it. And as you realized, it has some complexities associated.

johann-petrak commented 3 years ago

These are two different functions, I think: adding a cell that should get ignored vs. making it possible to ignore a whole slide no matter how many fragments or subslides there are.

My proposal would be to keep the semantics of "skip" to mean "ignore" as it is now and possibly at some point add a new mode "skip-slide" to implement that other functionality.

parmentelat commented 3 years ago

well, that makes sense

actually I realise that I have never used nbconvert to produce slides, and that I have no clue what other usages are made of the 'skip' tag is this for example influencing how nbconvert works at all (other than when producing slides, I mean) ? are there other tools that are known to be influenced by the 'skip' tag ?

just to understand the impact of a rise-centric decision of that sort (inventing a new slide type i mean)

damianavila commented 3 years ago

nbconvert is influenced... actually nbconvert slides influenced RISE (that was the first thing I did related to slideshow :wink:). Not sure if there are other tools using the skip tag, btw... but I would say it is possible...

just to understand the impact of a rise-centric decision of that sort (inventing a new slide type i mean)

I foresee an immediate impact on nbconvert slides at a minimum because I know people creating RISE slideshow that also create nbconverted slides from the same notebook...

jedbrown commented 3 years ago

I strongly prefer skipping only the cell (or at least preserving a way to do that). I often generate figures to put on slides (using Altair, for example) and I use skip cells to read data and set up the figure so I can have a tiny cell (or use hide_code) that shows the interactive figure. Requiring that I work this out on "skip slides" rather than "skip cells" breaks up the narrative.

BTW, I find hide_code pretty unreliable and a confusing interface. I'd love a "output-only" code cell type that hides the prompt and code, but shows the results. It'd be a normal cell outside of display mode, unlike hide_code, which requires bespoke keybindings to toggle.