The notebook
scpy3-nbextensions-demo.ipynb
demonstrates the usage of these extensions.
This repository contains a collection of extensions that add functionality to the Jupyter notebook for the book "Scientific Computing with Python".
To install the extensions:
jupyter nbextension install scpy3 --user
and then enable the extensions:
jupyter nbextension enable scpy3/NAME
where NAME is:
- style: add theme selector to toolbar
- macro: add macro key in edit mode
- copycells: copy cells between notebooks
- slice: manage cell snippet
- iconbox: render box with icon
- maximize: toggle notebook header
- toc: add table of content
- run_mdcell: run code in markdown cell and insert result into it
- bookmark: add bookmark to cell
- slide: add slide mode by reveal.js
All the extensions are written in Python, and converted to Javascript by flexx.pyscript.
To convert the code, run following command:
python convert.py
Customize style sheet:
- Hide prompt
- More
padding-right
for TOC - Add a theme selector in the toolbar
The themes are download from jupyter-themes.
This extension provides macros in edit mode. To edit macros, type $
and then Alt-m
, a dialog box will be popped up.
Here is the default settings:
default_macros = {
"1":"\u2776",
"2":"\u2777",
"3":"\u2778",
"4":"\u2779",
"5":"\u277a",
"6":"\u277b",
"7":"\u277c",
"8":"\u277d",
"9":"\u277e",
"fig":'![](/files/images/.png "")',
"next":'`ref:fig-next`',
"prev":'`ref:fig-prev`',
"tip":'> **TIP**\n\n> ',
"source":'> **SOURCE**\n\n> ',
"warning":'> **WARNING**\n\n> ',
"question":'> **QUESTION**\n\n> ',
"link":'> **LINK**\n\n> \n\n> '
}
To input macros, type a macro name, and then Alt-m
. If the macro name is ambiguous, add a $
before the name.
Copy cells between notebooks.
- Select the cells and then press
Alt-c
to copy it. - Press
Alt-v
to paste cells in clipboard. - Press
Alt-a
to append selected cells to the clipboard. - Press
Alt-Shift-v
to paste a selected cell, this will popup a typeahead form.
Quick insert code slice in to current cell:
-
To register a slice: Type some code into a cell, and then press
Alt-i
, inputslice group : slice name
and press the Ok button. -
To insert a slice in to the current cell: Press
Alt-l
. If the current cell is not code type, a new cell will be inserted. -
To remove a slice: Press
Alt-l
, select the slice and pressAlt-delete
.
Render markdown cell as a box with icon. The cell must contain only a blockquote element, which is created by >
in markdown. Here is a list of the five types:
- a tip box
> **TIP**
> This is a tip
- a link box
> **LINK**
> http://google.com
> This is google
- a warning box
> **WARNING**
> This is a warning
- a source box
> **SOURCE**
> This is a source code
- a question box
> **QUESTION**
> This is a question
It can also render a round box, for example:
> What is NumPy
NumPy is the fundamental package for scientific computing with Python. It contains among other things:
...
is rendered as:
Enlarge notebook edit area by hiding title, menubar and toolbar. In maximized mode the notification area will be moved to lower-left of the screen.
Ctrl-↑
: Maximize notebookCtrl-↓
: Return to normal mode
This extension collects all running headers in the notebook and display them on the right side of the notebook.
Alt-t
: Toggle table of contentCrtrl-←
: Jump to previous headCrtrl-→
: Jump to next head
The TOC plugin is from https://github.com/wenzhixin/side-menu.
Run python code block in markdown cell and insert the output below it:
Alt-r
: Run the codes in markdown cell
Add bookmark to cell, and jump to bookmarked cells quickly. Bookmarks are saved in cell's metadata.
Shift-1
,Shift-2
,Shift-3
: Toggle bookmark type for current selected cellCtrl-Shift-1
,Ctrl-Shift-2
,Ctrl-Shift-3
: run makered cellShfit-←
: Jump to previous bookmarkShfit-→
: Jump to next bookmark
Convert the notebook to presentation with reveal.js.
p
: Start presentation.Alt-p
: Configure the reveal.js parameters.q
: Back to notebook mode in presentation mode.