Course notes and material for "IT, ist das was für mich?".
The website serves as entry point for the participants and helps organize course notes as well as additional material relevant for the participants.
The website is markdown-based and rendered using a static site generator.
The following tools are at play:
Sphinx is a mature, feature rich, versatile and extensible documentation generator.
While Sphinx is based on reStructuredText (reST), different markup languages are supported either natively or through plugins. The MyST parser allows for a more markdownish-writing experience.
The sphinx book theme is responsible for the appearance of the site.
Extensions are specified in the Sphinx configuration file conf.py
.
The listed tools are used within the executable books project.
Use your favorite method to create a (virtual) Python environment
based on the specifications in environment.yml
or requirements.txt
.
Take a look at the CI workflow, i.e. .github/workflows/gh-pages.yml
(or .gitlab-ci.yml
).
Source files reside in the sources/
directory and are written using the
Markdown flavor Markedly Structured Text (MyST)
which is a superset of CommonMark Markdown.
To make changes, edit the already existing files or add a new document.
New documents need to be included through a toctree
directive.
Take a look at both MyST and the theme to learn more about how to write content. To better understand the underlying principles, take a look at Sphinx.
To build locally, do
make html
To remove the build, do
make clean
Alternatively, sphinx-build
can be invoked directly
$ sphinx-build -b html source/ public/ # to build
$ rm -r public # to remove the build
Links are automatically checked in the CI pipeline. To run these checks locally, see the CI config.
A CI pipeline is configured and the build is automatically published.
Slides are markdown-based and rendered using Marp.
Note: To included slides on the website, at the PDF version as download.
There is a VS Code plugin for local development and building.
There is a CLI that can be installed through npm.
$ npm install -g @marp-team/marp-cli
Source files reside in the sources/course/days_*/slides.md
and are written in
Markdown.
To convert a markdown file into e.g. PDF, do
$ marp slides.md -o slides.pdf
$ npx @marp-team/marp-cli@latest slides.md -o slides.pdf # included marp update
or use the VS Code plugin.
To simplify automation, use the SlidesMakefile.
$ make --makefile=SlidesMakefile all # to compile all slides
$ make --makefile=SlidesMakefile clean # to remove them
$ make --makefile=SlidesMakefile help # to see other options
CSpell can be used for spell checking.
There is an extension for VS Code as well a dictionary for German.
$ ./run.sh
to render both slides and website in one go.
Note that run.sh
builds the development or work in progress (wip) version
of the website whereas the CI service only builds publication-ready-content.
See how the exclude_patterns
is specified in conf.py
. The toggle is
implemented using tags
passed to the build commands.
In this sections we briefly describe the required actions when a new intake starts.
To activate GitHub Pages: On GitHub / Settings / GitHub Pages select