zenika/senseiSensei 是训练材料的编译器,主要用于生成 PDF 文档以及提供幻灯片和实验内容的 Web 服务,可替代 zenika-formation-framework。它提供命令行工具,支持通过 Docker 容器或 Node.js 环境运行,适用于培训材料的制作、展示与分发场景。
pdf(生成PDF)、serve(启动服务)等命令适用于培训材料制作与展示场景,包括:
拉取镜像:
shelldocker image pull zenika/sensei
创建 sensei 命令别名:
shellalias 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'
⚠ 在 Docker 容器中运行时,
--material参数仅限工作目录的子目录。
⚠ 如需修改端口,使用以下方式:
export SENSEI_PORT=9000; sensei(详见 相关说明)。
Windows 系统 Docker 使用注意事项
在 Windows 中使用 WSL2 运行 Docker 时,建议将文件存储在 Linux 文件系统(WSL2 内部),可通过 \\wsl$\(或 \\wsl.localhost\)从 Windows 访问。使用 VSCode 时,可通过 WSL 扩展 编辑文件。
⚠ 使用 Windows 文件系统时,培训内容修改后的热重载功能可能失效。 ⚠ 在 Git Bash 中使用时,需修改
--volume和--workdir路径格式:--volume /$(pwd):/$(basename $(pwd)) --workdir //$(basename $(pwd)(避免路径错误)。
克隆仓库并进入目录:
shellgit clone [***] cd sensei
构建镜像:
shelldocker image build --tag zenika/sensei ./
创建别名(移除 --pull always 参数):
shellalias sensei='docker container run \ --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'
⚠ 同样适用上述 Docker 运行警告。
shellnpm install --global [***]
⚠ Yarn 可能存在缓存问题,导致更新失败,建议使用 npm。
shellsensei --help
进入训练材料目录(需包含 Slides/slides.json 和 Workbook/workbook.json):
shellcd /path/to/training-material
运行生成命令:
shellsensei pdf
生成的 PDF 文件将保存在 pdf 目录下。
进入训练材料目录:
shellcd /path/to/training-material
启动服务:
shellsensei serve
在浏览器中访问 http://localhost:8080/ 查看内容。
采用 Reveal.js 格式编写,支持 Reveal.js 文档 中的功能。已启用插件:Markdown、Highlight、Zoom、Notes、Math。
采用 Markdown 格式编写。
ℹ 使用
<!-- toc -->可在指定位置插入目录。
安装依赖:
shellnpm i
运行 CLI(指向训练材料目录):
shellnpm start -- serve --material=./training-material
或启用热重载(需 Node.js 18.11+):
shellnpm run dev -- serve --material=./training-material
使用 Node.js 内置 test 模块(需 Node.js 18.3+):
运行所有测试:
shellnpm test
运行单个测试文件:
shellnpm test path/to/test/file.test.js
src/app:Web 应用源代码(嵌入训练材料)src/build:Web 应用构建代码(含训练材料整合)src/pdf:PDF 生成代码src/cli:命令行工具代码使用 Prettier,提交前运行格式化:
shellnpm run prettier:write
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务