Materials for CCN software workshop at Flatiron, Winter 2025. The workshop was run twice, once on Jan 29 -- 31 (github release), once on Feb 2 -- 4.
We have a slack channel for communicating with attendees, if you haven't received an invitation, please send us a note!
[!INFO] The rest of this README is for contributors to the workshop.
Warning
For some reason, we need jupyterlab < 4.3 in order to get the link highlighting working. There's a class, .jp-ThemedContainer, which removes the link styling. Possibly related to this PR or this issue.
To build the site locally, clone this repo and install it in a fresh python 3.11 environment (pip install -e .). Then run make -C docs html O="-T" and open docs/build/html/index.html in your browser.
This script creates two copies of each file found at docs/source/full/*/*md, the copies are placed at docs/source/users/*/*.md and docs/source/presenters/*/*.md. Neither of these copies are run; the presenters version is intended as a reference for presenters, while the users version is what users will start with.
For this to work:
- The title should be on a line by itself, use
#(e.g.,# My awesome title) and be the first such line (so no comments above it). - All headers must be markdown-style (using
#), rather than using------underneath them. - You may need to place blank newlines before/after any
divopening or closing. I think if you don't place newlines after thedivopening, it will consider everything after it part of a markdown block (which is probably not what you want if it's a{code-cell}).
Full notebook:
- Will not render any markdown wrapped in a div with
class='render-user'orclass='render-presenter'(but will render those wrapped inclass='render-all') - Will not render or run any code wrapped in a div at all! Thus, for code that you want in all notebooks, add
:tag: [render-all], but for code that you only want in the user / presenter notebook, wrap it in a div withclass='render-user'/class='render-presenter'. - Similarly, wrapping colon-fence blocks (which use
:::, e.g., admonitions) are messed up when you wrap them in adiv. But they have a:class:attribute themselves, so just add the appropriaterenderclass there. See the "Download" admonition at the top of each notebook for an example.
Presenters version preserves:
- All markdown headers.
- All code blocks.
- Only colon-fence blocks (e.g., admonitions) that have the class
render-presenterorrender-all - Only markdown wrapped in a
<div class='render-presenter'>or<div class='render-all'>.
Users version preserves:
- All markdown headers.
- Only code blocks with
:tag: [render-all]OR wrapped in a<div class='render-user'>. For code blocks in render-user divs, you should probably also add theskip-executiontag - Only colon-fence blocks (e.g., admonitions) that have the class
render-userorrender-all - Only markdown wrapped in a
<div class='render-user>or<div class='render-all'>.
See nemos Feb 2024 workshop for details on how to set up the Binder