The compiler for our training material. Sensei is a replacement for zenika-formation-framework.
-
Pull the image with
docker image pull zenika/sensei
-
Create an alias
sensei
alias sensei='docker container run \ --pull always \ --interactive \ --tty \ --rm \ --volume $(pwd):/$(basename $(pwd)) \ --workdir /$(basename $(pwd)) \ --publish ${SENSEI_PORT:-8080}:${SENSEI_PORT:-8080} \ --env SENSEI_PORT \ --cap-add=SYS_ADMIN \ zenika/sensei'
โ When running sensei inside a Docker container, the
--material
is limited to descendants of the working directory.
โ If you expect to use this alias within Git Bash for Windows, prepend the
--volume
and--workdir
options with an additional slash (ie--volume /$(pwd):/$(basename $(pwd)) --workdir //$(basename $(pwd)
. See known issues of Git for Windows. This avoids theC:/Program Files/Git/...: no such file or directory
kind of errors.
โ To change
SENSEI_PORT
when using this alias, use the following syntax:export SENSEI_PORT=9000; sensei
. See here.
- Clone this repo and
cd
into the created folder - Build the image with
sh build.sh
- Create the same alias as for the published Docker image but without the
--pull always
โ The same warnings as for the published Docker image apply.
- Install with
npm install --global https://github.com/Zenika/sensei
โ You may use Yarn, however it's been known to have cache issues when installing packages from GitHub, resulting in failures to update sensei correctly.
Run sensei --help
for available commands and options.
cd
into a training material folder (must haveSlides/slides.json
andWorkbook/parts.json
)- Run
sensei pdf
- PDFs are generated inside
pdf
folder
cd
into a training material folder (must haveSlides/slides.json
andWorkbook/parts.json
)- Run
sensei serve
- Navigate to
http://localhost:8080/
Write slides as you would usual Reveal.js slides. Refer to Reveal's documentation for features. Note that the following plugins are enabled:
- Markdown
- Highlight
- Zoom
- Notes
- Math
Write the workbook as you would a usual markdown document.
โน You may use
<!-- toc -->
to have a table of content inserted at that place.
Install dependencies (npm i
) then use npm start --
to run the CLI (eg npm start -- serve --material=./training-material
where ./training-material
points to directory with training material in it). You may alternatively use
npm run dev --
instead to enable restart on change (eg npm run dev -- serve --material=./training-material
). Note that npm run dev
requires Node.js 18.11
or later.
Tests are written using the built-in test module, which requires Node.js 18.3 or later.
- Run all tests:
npm test
- Run one test file:
npm test path/to/test/file.test.js
src/app
: source code for the web app that embeds training materialsrc/build
: source code that builds the previously mentioned web app, including the training materialsrc/pdf
: source code that builds PDFs from the training materialsrc/cli
: source code for the CLI
This project uses Prettier. Don't forget to format before committing! You may
use npm run prettier:write
to do that.