Metadata-Version: 2.1
Name: nbcourse
Version: 0.2.5
Summary: Create a minisite to publish a course based on Jupyter notebooks
Home-page: https://gitlab.math.unistra.fr/boileau/nbcourse
License: MIT
Keywords: jupyter,nbconvert
Author: Matthieu Boileau
Author-email: matthieu.boileau@math.unistra.fr
Requires-Python: >=3.7,<4.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Requires-Dist: IPython (>=7.15.0,<8.0.0)
Requires-Dist: bookbook (>=0.2,<0.3)
Requires-Dist: bs4 (>=0.0.1,<0.0.2)
Requires-Dist: doit (>=0.32.0)
Requires-Dist: jinja2 (>=2.11.2,<3.0.0)
Requires-Dist: jupyter_contrib_nbextensions (>=0.5.1,<0.6.0)
Requires-Dist: latex (>=0.7.0,<0.8.0)
Requires-Dist: markdown (>=3.2.2,<4.0.0)
Requires-Dist: python-frontmatter (>=0.5.0,<0.6.0)
Requires-Dist: pyyaml (>=5.3.1,<6.0.0)
Requires-Dist: rise (>=5.6.1,<6.0.0)
Project-URL: Repository, https://gitlab.math.unistra.fr/boileau/nbcourse
Description-Content-Type: text/markdown

# nbcourse: publish your course based on Jupyter notebooks

## Features

`nbcourse` helps you building a static website to publish your course content in the form of jupyter notebooks (one notebook for one chapter).

Main features:

- all the configuration is described by a single `nbcourse.yml` file
- it is based on [doit](https://pydoit.org) in order to build efficently the html files
- chapters can be displayed in *preview mode* only so attendees can see the whole course program without being able to access content of the lessons to come
- notebooks can be:
    - rendered as static html files,
    - rendered as static reveal slideshows,
    - packaged with all their material in a downloadable archive,
    - compiled in a single pdf book using [bookbook](https://github.com/takluyver/bookbook)
- the theme can be easily customized (html files are templated using jinja)

See [this python course](https://mm2act.pages.math.unistra.fr/cours-python/) (in French) as an example.

## Installation

```bash
pip install nbcourse
```

## Usage

### Initiate an empty nbcourse project

```bash
nbcourse --init
```

### Configure your website

- Put your notebooks file in the `notebook/` directory
- Edit the `nbcourse.yml` file created by the `nbcourse --init` command.

### Build your website

```bash
nbcourse
```

Resulting files are in the `build/` directory.

### Get help

```bash
nbcourse --help
```

### Publish

Publishing with [GitLab Pages](https://docs.gitlab.com/ee/user/project/pages/) is as simple as adding a `.gitlab-ci.yml` file such as:

```yaml
pages:
  image: boileaum/jupyter
  script:
    - pip install nbcourse
    - nbcourse -n 5
    - mv build public
  artifacts:
    paths:
      - public
```

