|
1 | 1 | # Executable Tutorials
|
2 | 2 |
|
3 |
| -A repository demonstrating one way to manage and distribute interactive tutorials. |
4 |
| -See the [Guide to Contributing](https://scentific-python.org/executable-tutorials/contributing.html) |
5 |
| -for a good overview of what this is like to use. |
6 |
| - |
7 |
| -## Demo Links |
8 |
| - |
9 |
| -- **[Tutorials](https://github.com/scientific-python/executable-tutorials/tree/main/tutorials)** are written in MyST Markdown. |
10 |
| -- Tutorials can be easily edited as notebooks in JupyterLab. |
11 |
| -- Executed tutorials are **[published](https://scientific-python.github.io/exeuctable-tutorials/)** on a GitHub Pages site. |
12 |
| -- **[Jupyter Lite (beta)](https://scientific-python.github.io/executable-tutorials/jupyterlite/lab/index.html)** (works only on the basic executable example so far, missing dependencies for others) |
13 |
| -- **[Binder](https://mybinder.org/v2/gh/scientific-python/executable-tutorials/notebooks)** |
14 |
| - |
15 |
| -### Notes on the notebook file format |
16 |
| - |
17 |
| -We do use MyST Markdown format for the notebooks, please visit [the upstream documentation](https://mystmd.org/guide/md-vs-ipynb) to learn more about the reasoning behind the choice. |
18 |
| -However, we add it here that you can easily have the same user experience in JupyterLab if these two dependencies are installed: |
19 |
| - - [jupytext library](https://pypi.org/project/jupytext/) |
20 |
| - - [jupyterlab-myst JupyterLab extension](https://pypi.org/project/jupyterlab-myst/) |
21 |
| - |
22 |
| - |
23 |
| -## Goals |
24 |
| - |
25 |
| -- Make content easy to explore and try in a variety of modes: |
26 |
| - - interactive and non-interactive |
27 |
| - - local and cloud-based |
28 |
| - - Jupyter and not-Jupyter |
29 |
| -- Document an accessible development workflow, so that non-experts can contribute. |
30 |
| -- Keep the infrastructure as simple as possible. |
31 |
| - |
32 |
| -## To Do |
33 |
| - |
34 |
| -- Test execution _of changed tutorials only_ in CI on PR. |
35 |
| -- Set up devcontainer. |
36 |
| -- Add example with additional dependencies. |
37 |
| - |
38 |
| -## Prior Art |
39 |
| - |
40 |
| -Examples that this is drawing from: |
41 |
| - |
42 |
| -- https://github.com/Caltech-IPAC/irsa-tutorials |
43 |
| -- https://github.com/MotherDuck-Open-Source/sql-tutorial |
| 3 | +Many organizations maintain collections of tutorials addressing realistic |
| 4 | +problems in a science domain, with runnable code examples written and |
| 5 | +kept current by experts in the tools. |
| 6 | + |
| 7 | +- A trove of working snippets to copy and paste |
| 8 | +- A maintained resource for self-guided learning |
| 9 | +- A ready-to-use curriculum for interactive workshops |
| 10 | +- A suite of science domain-specific "integration tests" |
| 11 | + |
| 12 | +This repository demonstrates one way to configure a collection. It emphasizes the |
| 13 | +following features: |
| 14 | + |
| 15 | +- Source is in [MyST Markdown][] which is easy for humans to edit and review. |
| 16 | +- The executed examples---code and results---are published as a static site. |
| 17 | + ([example][static site example]) |
| 18 | +- The examples can be opened as Jupyter notebooks to run and edit: |
| 19 | + - In a user's local environment |
| 20 | + - On a Binder ([example][binder example]) |
| 21 | + - (Experimental) In the user's browser via Jupyter Lite ([example][jupyterlite example]) |
| 22 | + |
| 23 | +The repository also includes a [Guide to Contributing][] tutorials. This |
| 24 | +provides for a good overview of what this is like to use. |
| 25 | + |
| 26 | +[Myst Markdown]: https://mystmd.org/guide/typography |
| 27 | +[static site example]: https://scientific-python.github.io/exeuctable-tutorials/ |
| 28 | +[binder example]: https://mybinder.org/v2/gh/scientific-python/executable-tutorials/main |
| 29 | +[jupyterlite example]: https://scientific-python.github.io/executable-tutorials/jupyterlite/lab/index.html |
| 30 | +[Guide to Contributing]: https://scentific-python.org/executable-tutorials/contributing.html |
0 commit comments