Open HugoGranstrom opened 7 months ago
I realized that a simple showOn
supports exactly as much as we do currently, so it should be a first step. And afterward we can add support for other blocks (code blocks in particular, but they are a bit special) and a way of auto-animating individual nbText
s.
I have done a little bit of experimenting with the nbText
auto-animation, but it doesn't really animate that smoothly. You can see that it understands that the elements are the same between slides (they stay visible and doesn't fade), but they just jump there directly instead of animating... So I'll postpone that part for the future for now. I'll give the code blocks a try though.
Right now auto-animation is quite verbose and repetitive. For example this simple example:
We had to repeat the
# Only title first
twice and if we ever need to update it in the future, we will have to remember to change it in both places! Let's try to DRY this down as much as we can! Here's a proposed API:This will internally loop through the body
nSlides
times and only generate theshowOn
s that match the current index.This has its drawbacks though:
<div>
as I remember it.data-id
in the correct place, which means each block's partials must be modified!nbText
split over multiple calls. For examplenbText: "Hello world"
is not splitable tonbText: "Hello"; nbText: "world"
. So a separate mechanism would have to be implemented for text innbText
. Ideally, it should work with theautoAnimateSlides
above. Here we will probably have to use<span>
.I will probably start out with the
nbText
version, but I'm not sure how to do it yet. Either through some kind of templating, e.g.#%[0, 1][Hello] #%[1][world]
. Where the indices and text is supplied. It is quite ugly, though. The other option is a more programmatic approach:This is arguably even uglier and less readable :/
If someone has any other idea for possible APIs I'm very happen to see hear about them :D