-
-
Notifications
You must be signed in to change notification settings - Fork 416
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
New approach for JupyterLab 3 #605
Conversation
Unfortunately it does not work on Binder... needs to set the redirection. |
no big deal if binder won't work |
This is AWESOME, @fcollonval!! |
@parmentelat I fixed Binder if you want to try. |
@fcollonval this looks just great, it is several orders of magnitude better than anything we've been trying to do as a jlab extension; many thanks ! I have to honestly admit that I have not been able to cope with the jlab extension dev paradigm(s); so how do I setup a dev environment to proceed on your track ? I tried this just now:
but unsurprisingly it does not seem to work, I can't see the RISE button and am getting this screenshot below it feels real dumb, please enlighten me :) |
on a totally different level, one thing that I had at some point considered - before realizing that developing a jlab extension was way beyond my skills - was to have the regular notebook and the rise view in 2 separate tabs this was imho the most important breakthrough that porting to a jlab extension could bring us I'm not quite sure this is doable at all though, so if this rings any bell wrt this new angle, please elaborate on the feasibility of that idea :) |
Here are the commands to execute (I updated the dev note):
This should be achievable with the new approach by rendering the presentation in a IFrame like the voila preview
|
Hi |
You may need to install the server extension for the old notebook based server with:
|
yes, this last command does the trick ! |
I think that is a good idea.
Can you please expand on that idea? Do you agree/disagree? Thoughts?
Which iteration are you referring to? The one creating the 2 packages?
OBVIOUSLY, already done!! |
Maybe we should continue the above conversation in #614, so we keep this one specifically for the content of this PR... |
@fcollonval Should it be already possible to run this with JupyterLite with some configuration? (With defaults I do get the button, but it eventually fails due to backend server route not being there with lite.) |
I'd wager this wouldn't work in Lite yet. As the actual renderer is a whole separate lumino app/shell (akin to retro or lab) it would need a separate The iframe preview capability from within lab might work, but many HTTP hosts have issues with same-origin iframes, no matter what we set on the sandbox... while the notebook contents might update if changed, the kernel state would not be shared until we figure out a way to launch them inside serviceworkers, or somehow coordinated iframes. That being said, having a |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I gave it a spin today, it's really cool! I noted one problem which likely needs fixing before a release - when other extensions are installed they can get added into the RISE preview area (I suggested a fix in the comment).
Otherwise I am happy with the UX. I would be even more happy if the font size in RISE and style were more consistent with notebook (e.g. lists and tables are very small while other markdown text is huge by comparison) but this might be for another time.
/** | ||
* The Rise application shell token. | ||
*/ | ||
export const IRetroShell = new Token<RiseShell>('rise-application:IRiseShell'); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
export const IRetroShell = new Token<RiseShell>('rise-application:IRiseShell'); | |
export const IRiseShell = new Token<RiseShell>('rise-application:IRiseShell'); |
// pass no-op | ||
} | ||
BoxLayout.setStretch(widget, 1); | ||
(this.layout as BoxLayout).addWidget(widget); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe that the intention was that only custom notebook would get added, but my citation manager reference browser gets added:
This happens after the following call: app.shell.add(referenceBrowser, 'left', { rank: 850 });
in jupyterlab-citation-manager
. You would have noted this with other federated extensions like jupyterlab-git which also add themselves to the shell in the left area, but you likely did not because they failed to activate (e.g. Plugin '@jupyterlab/git:plugin' failed to activate.
) as they requires tokens which are not provided in this context, whereas jupyterlab-citation-manager is not fussy and has all tokens (except for INotebookTracker
) optional.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would suggest to add if (area == 'rise') {
or at the very least if (area == 'main') {
.
// Remove the toolbar | ||
notebookPanel.toolbar.dispose(); | ||
|
||
app.shell.add(notebookPanel); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe
app.shell.add(notebookPanel); | |
app.shell.add(notebookPanel, 'rise'); |
`<input name="renderOnSave" type="checkbox"></input>${trans.__( | ||
'Render on Save' | ||
)}` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* extend examples/README to test tables * tentative fix for <li> elements that are too small
I had a problem with the chalkboard. The two buttons only work as jumping to the first slide, and the pen did not show up. I use Chrom(103.0.5060.53) and Firefox(102.0 (64-bit)) on Fedora36, and installed packages are listed below:
Also, I found that the 'Notes only mode' does not work in the speaker's view. The Notes cells didn't show in the speaker notes but appeared on the slideshow. The same situation happens in the Binder as well. And out of curiosity, are there any updates on the black theme? Many thanks! |
Nothing productive to add. I just want to say I am very excited for this! Thank you @fcollonval @damianavila @parmentelat @krassowski for all of your work on this. |
I've tried to fix showing notes in Speak notes Speaker notes here. fcollonval#5 PS: After reinstalling the chalkboard patch, the chalkboard and draw functions perform properly. |
Co-authored-by: YiqinZhang <[email protected]>
Thanks a lot @YiqinZhang I merged your PR |
Problem opening second notebook as RISE presentationhi all, After following the right instructions (readme in the branch) I got this up and running nicely ... After that, when I try to open a second, then select the rise button I see this message in the terminal from which I started Jupiter lab
Closing Jupyter and restarting lets me open the second notebook quite happily, - it doesn't seem to be anything to do with specific notebooks, just that closing one and starting another somehow loses track of the widgets ... Also it doesn't work if I leave the first notebook running in rise mode then open another notebook and try to switch to rise in that. Any help gratefully accepted as my weekly lecture tend to be split into three notebooks to match the short video chunks I make from them. (obviously I can shutdown and restart the Jupiter server as a workaround but this is not ideal) |
I tried the keyboard shortcut and found both the keyboards "," for Hide/show RISE buttons and "?" for Help did not work as expected. In the notebook version, we can use "," to toggle all RISE buttons, but the hard-wired keyboard binding did not work in Jlab. Any thoughts about that? |
I tried to fix toggling all RISE buttons so that the RISE controls won't cover the slide contents. And then bind keyboard "m" to hide/show buttons on the slideshow. fcollonval#6 |
Hi! Thanks so much for your work on rise on jupyterlab; we transitioned our Where it gets a bit more complicated is that, in the spring semester, it's not Do you have an idea at this stage whether there is a chance for rise to Thanks in advance! |
Hi there, is anyone actively working on this? If not, any continue the work with more forces? |
Sorry for the long silence folks, I did not have time to push forward on this one, regrettably. @fcollonval, do you think you will have some cycles to review my changes in the coming weeks? Just trying to understand if I will have feedback from you or if I would need to figure out things for myself 😉. Btw, I would also like to discuss with you how the story would look like for the new notebook... |
I'll find time for that.
Yes it should work (hopefully out of the box) in notebook v7. |
Closing this as I extracted the plugin to its own repository (as the path forward was suggesting building a separate python package). The Python package has been publish on PyPI.org: https://pypi.org/project/jupyterlab-rise |
Hi everyone, |
This is a reboot of #381 - in order to move forward on jupyter/notebook#6220
The approach taken differs from #381 as it creates a stand-alone app (similarly to retrolab - JLab remix) in order to:
What it does:
ipywidget
(but failed to open the standalone app from JupyterLab)What it partly do:
What needs to be done:
Create custom notebook factory to remove the toolbarExplicitly dispose the toolbar (avoid dealing with specific factory)Turn off virtual renderingWait for fully rendering before converting to slideshow (placeholder cannot be removed due to DOM hierarchy change for Reveal)interact
PR opened: Enhance Jupytext for JupyterLab mwouts/jupytext#877
Help will be really appreciate to cover the above points - don't hesitate to open PRs against this PR branch.