Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Chalkboard integration #85

Open
superbobry opened this issue Sep 6, 2016 · 4 comments
Open

Chalkboard integration #85

superbobry opened this issue Sep 6, 2016 · 4 comments

Comments

@superbobry
Copy link

Reveal.js has a chalkboard plugin which allows to annotate slides using handwritten notes. While this is surely not a widely used (nor requested) feature, it might make teaching from Jupyter much easier and enjoyable.

Do you think it is possible to integrate Chalkboard into nbpresent?

@bollwyvl
Copy link
Contributor

bollwyvl commented Sep 6, 2016

Chalkboard sounds really cool! Thanks for the suggestion!

In the "normal" notebook, this would be hard, as it is responsive to changing screen sizes, etc. This is a slippery slope, as I never want to get into the business of providing something too rich, as most "real" content belongs in cells! But when a shared, responsive x/y space is needed, we'll have to do some freaky stuff that the base notebook wouldn't touch.

For the handwriting-challenged, such as myself, other kinds of annotation such as sticky notes, arrows, highlights would be nice... but see caveat about getting too crazy with it :)

Not to hate on jquery/chalkboard/canvas, but here's a potential implementation that is already in d3 (the manipulation engine nbpresent uses).

Further, the colors from themes could be offered as the "chalk," though I could see want to pick colors on the fly.

From a data model point of view, this could go down a few ways:

  • in metadata/nbpresent/slides/<slide>/regions/<region> a new content type that went into a region, prepared in advance: currently, this is limited to a cell id (i make my own, just for nbpresent... long story) and the type of content (whole, source, outputs, widgets). This would be a blackboard (or glassboard?)
  • another thing altogether, stored directly on the slide, that was guaranteed to be "on top" of all the notebook content

I'll have to mull over which of those would be the most compelling! Having them live in regions would be good, as it wouldn't be a new high-level "thing".

Finally, there would be the question of whether this goes into nbpresent core, or as an extension that would ship as a separate package... this could hook into the "currentSlide" changing, and could (probably) be hacked in directly, without the rest of nbpresent even knowing about it... but something a little more elegant is probably better. The approach taken by the reveal plugin where the left-bottom buttons toggle different interactivity modes is nice, which we've already considered for showing run buttons, etc.

Thanks again!

@damianavila
Copy link
Contributor

Reveal.js has a chalkboard plugin which allows to annotate slides using handwritten notes. While this is surely not a widely used (nor requested) feature, it might make teaching from Jupyter much easier and enjoyable.

Interesting stuff, thanks for the link!

@superbobry
Copy link
Author

superbobry commented Sep 7, 2016

@damianavila I've managed to get it working in RISE, see superbobry/RISE@d3ae748.

@damianavila
Copy link
Contributor

damianavila commented Sep 8, 2016

@superbobry 😉 I guess a PR is coming from you in the RISE repo, don't you? 😜

Btw, sorry @bollwyvl to hijack the thread for a little bit 😉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants