|
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