Development¶
Warning this page needs to be updated for 5.7 that has a new directory layout; in a nutshell, 5.7 comes with a clear separation between
- what is inherited from
reveal.js
with our minor adaptations (therise-reveal
subdir), - the RISE extension for the classic notbeook (the
classic
subdir), - opening the space for a future
jlab
subdir that will host the jupyterlab extension.
You can install RISE in development mode in this way:
Requirements¶
Use your usual package manager to install the required build tools. Essentially you will need:
git
,npm
andnodejs
,- and of course
jupyter
; sphinx
comes in handy to produce the documentation.
Clone the git repo¶
git clone https://github.com/damianavila/RISE.git
cd RISE
ROOT=$(pwd)
build rise-reveal
¶
Step 0. go into to the rise-reveal
subdir
cd $ROOT/rise-reveal
Step 1. fetch dependencies
npm install
Step 2. build
npm run build
build the clasic extension¶
Step 0. go into to the classic
subdir
cd $ROOT/classic
Step 1. Install the JS dependencies:
npm install
Step 2. Copy reveal (plus others) into the static folder and reset reveal.js styling:
npm run build
Notes:
- this is all that is needed at that stage
- later on you might want to take a look at
package.json
that has finer-grained targets, that thebuild
target groups for your convenience - in particular, if you only need to redo css, you can do
npm run build-css
- also note that you can remove
reveal.js
from the static folder withnpm run clean-reveal
.
Install RISE in developer mode¶
Second, let’s install RISE in a editable form:
pip install -e .
jupyter-nbextension install rise --py --sys-prefix --symlink
jupyter-nbextension enable rise --py --sys-prefix
Notes:
- the
--symlink
argument is meant to allow you to modify the JavaScript code in-place. This feature however is probably not available in Win. - If you cannot use this symlink trick, you will need to “re-install” the nbextension to actually see any changes you made on th JS files.
- Also please make sure to properly and thoroughly reload your page in the browser; using Shift when reloading is generally a good idea.
Convenience¶
If you change the less
source often, it can be convenient to enable
per-save automatic building of CSS, and for that you can use:
npm run watch-less
which will update the css
code from less
each time a change
happens on the disk. Kill with Control-C when you are done.
Plugins development¶
We currently have a custom plugin for the notes: notes_rise
If you need to modify this part of the codebase, after you are happy with your changes, you need to login to npm and push the package containing your changes (the package will be build and upload by the npm publish
command):
cd /plugin/notes/
npm login
npm publish
Finally, you need to update the main package.json file at the root directory to grab the new version you just published.