diff --git a/README.md b/README.md index 2439233f752d5c1de15c6d039cfee521b7460e29..2e705d1e7e957510dc75b2d1fa5566c9a7a9e5b6 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # JSC Tutorial: Data Analysis and Plotting with Pandas -Repository for a small-ish internal tutorial held at 26 February 2019 at JSC. +Repository for a small course held in May 2021. Material to be found at http://herten1.pages.jsc.fz-juelich.de/jsc-pandas-introduction/ @@ -29,12 +29,12 @@ Cell metadata specifies if a Notebook cell should be treated specially. *Special * A cell should end up in the solution Notebook * … and combinations of these -Since Notebooks are just JSON, I wrote a small parser in Python which suits my needs: `notebook-task-filter.py`. +Since Notebooks are just JSON, I wrote a small parser in Python which suits my needs and added it to PyPI to be installed as a CLI tool: [https://pypi.org/project/notebook-splitter/](https://pypi.org/project/notebook-splitter/) -The script can be launched and is reasonably well documentation. It works by providing *tags* of cells to `keep` and *tags* of cells to `remove`. For instance, +It works by providing *tags* of cells to `keep` and *tags* of cells to `remove`. For instance, ```bash -./notebook-task-filter.py $< --keep task --keep solution --remove nopresentation +notbook-splitter $< --keep task --keep solution --remove nopresentation ``` would look into Notebook cells and keep those which are *tagged* `task` or `solution` and remove those which are tagged `nopresentation`. One special tag for removal exists, `all`, which removes everything except what's marked to keep. A tag in the sense used here is a value to a JSON key in the cell's metadata, which is per default `"exercise"` (but can be selected via `--basekey`. Example: @@ -60,13 +60,15 @@ If you think this script is useful and want to collaborate on it, let me know an Via `jupyter nbconvert --to slides`, Jupyter Notebooks can be converted to HTML-based slideshows using [reveal.js](https://revealjs.com/). For each cell, one can select in the *Cell Inspector* if the cell should be a `Slide`, `Sub-Slide`, or a `Fragment`. -This works reasonably well, but to add the Jülich design to the reveal.js HTML some more steps are needed. While they are used here (see `Makefile`), please refer to Jan's repository regarding the [reveal.js Jülich Theme](https://gitlab.version.fz-juelich.de/JanMeinke/revealjstheme-juelich). +This works reasonably well, but to add the Jülich design to the reveal.js HTML some more steps are needed. Those steps are partly implemented in Jan's repository regarding the [reveal.js Jülich Theme](https://gitlab.version.fz-juelich.de/JanMeinke/revealjstheme-juelich), which is loaded as a sub-module, and an additional step to make it work as sub-module here. All is done in the `Makefile`. A PDF version of the slides is generated with [`decktape`](https://github.com/astefanutti/decktape), a NPM package which uses a headless Chromium instance to generate the PDF pages. It's slow and doesn't look 100 % like the presented slides, but it's the best I could find. ### Gitlab Pages -A Gitlab Shared Runner is used to serve material to the public web page of the tutorial. The static `index.html` is to be found its own (orphan) branch at `pages`. The files are copied from the repository to the public web page as indicated in the CI configuration file `.gitlab-ci.yml`. +A Gitlab Shared Runner is used to serve material to the public web page of the tutorial. The static `index.html` is to be found in its own (orphan) branch at `pages`. The files are copied from the repository to the public web page as indicated in the CI configuration file `.gitlab-ci.yml`. Ideally, I'd only check in the `--master.ipynb` Notebook and let the CI create all other material. But there's so many wild dependencies (NPM!!1), I'd rather do it myself. + +Because of the sub-module dependencies, the slides are also provided here as a _static_ slide bundle, copied over to the Pages index in the runner.