|
Runtools |
|
======== |
|
Runtools provide a number of additional functions for working with code cells in the IPython notebook: |
|
|
|
Code Cell Execution |
|
------------------- |
|
|
|
* Execute a single cell |
|
* Execute from top cell to currently selected cell |
|
* Execute from currently selected cell to bottom cell |
|
* Execute all cells |
|
* Execute all cells, ignore exceptions (requires [ipython/pull/6521](https://github.com/ipython/ipython/pull/6521)) |
|
* Execute marked code cells (cells with green gutter area are marked) |
|
* Stop execution (duplicate to standard toolbar button) |
|
|
|
When executing marked cells, they are put in a execution list, and |
|
executed in order. The execution list can be modified by unmarking |
|
a cell not yet run. The execution list can be stopped by clicking on |
|
`stop execution`. Execution of the currently running cell can be stopped |
|
by pressing `stop execution` twice. |
|
|
|
Code Cell Marking |
|
----------------- |
|
|
|
* Mark one or more code cell |
|
|
|
|
|
Code Cell Display |
|
----------------- |
|
|
|
* Hide or show input (i.e. the source code) of marked code cells |
|
* Hide or show output of marked code cells |
|
|
|
|
|
Description |
|
----------- |
|
|
|
The *runtools* extension adds a button to turn on/off a floating toolbar: |
|
 |
|
|
|
This adds Code execution buttons: |
|
 |
|
|
|
Codecells can be marked by clicking on the gutter of a codecell or by clicking on the markers toolbar: |
|
 |
|
|
|
Marked codecells can be locked to read-only mode and moved upd and down: |
|
 |
|
|
|
The input and output areas of marked codecells can be hidden: |
|
 |
|
|
|
A IPython notebook with marked cells looks like this: |
|
 |
|
|
|
|
|
Demo |
|
---- |
|
|
|
 |
|
|
|
|
|
Internals |
|
--------- |
|
|
|
New metadata elements added to each cell: |
|
* `cell.metadata.hide_input` - hide input field of the cell |
|
* `cell.metadata.hide_output` - hide output field of the cell |
|
* `cell.metadata.run_control.marked` - mark a codecell |
|
|
|
To export a notebook with hidden input/output fields, the custom template `hide_input_output.tpl` is required. |
|
It should have been installed in the `templates` folder. |
|
You can find the `templates` folder of `jupyter_contrib_nbextensions` from python using |
|
|
|
```python |
|
from jupyter_contrib_nbextensions.nbconvert_support import templates_directory |
|
print(templates_directory()) |
|
``` |
|
|
|
The template needs to be in a path where nbconvert can find it. This can be your local path or specified in |
|
`jupyter_nbconvert_config` or `jupyter_notebook_config` as `c.Exporter.extra_template_paths`, see [Jupyter docs](https://jupyter-notebook.readthedocs.io/en/latest/config.html). |
|
|
|
For HTML export a template is provided as `nbextensions.tpl` in the `jupyter_contrib_nbextensions` templates directory. Alternatively you can create your own template: |
|
``` |
|
{%- extends 'full.tpl' -%} |
|
|
|
{% block input_group -%} |
|
{%- if cell.metadata.hide_input -%} |
|
{%- else -%} |
|
{{ super() }} |
|
{%- endif -%} |
|
{% endblock input_group %} |
|
|
|
{% block output_group -%} |
|
{%- if cell.metadata.hide_output -%} |
|
{%- else -%} |
|
{{ super() }} |
|
{%- endif -%} |
|
{% endblock output_group %} |
|
``` |
|
|
|
For LaTeX export a different template is required, which is included as `nbextensions.tplx` in the `jupyter_contrib_nbextensions` templates directory. Alternatively you can create your own template: |
|
``` |
|
((- extends 'report.tplx' -)) |
|
|
|
((* block input_group -)) |
|
((- if cell.metadata.hide_input -)) |
|
((- else -)) |
|
((( super() ))) |
|
((- endif -)) |
|
(( endblock input_group *)) |
|
|
|
((* block output_group -)) |
|
((- if cell.metadata.hide_output -)) |
|
((- else -)) |
|
((( super() ))) |
|
((- endif -)) |
|
(( endblock output_group *)) |
|
``` |