Work with Slidev. Just run following command in your work folder:
docker run --name slidev --rm -it \
--user node \
-v ${PWD}:/slidev \
-p 3030:3030 \
-e NPM_MIRROR="https://registry.npmmirror.com" \
tangramor/slidev:latestNote: You can use NPM_MIRROR to specify a npm mirror to speed up the installation process.
If your work folder is empty, it will generate a template slides.md and other related files under your work folder, and launch the server on port 3030.
You can access your slides from http://localhost:3030/
To support the export feature, there is a bigger docker image with tag playwright. Just run following command in your work folder:
docker run --name slidev --rm -it \
-v ${PWD}:/slidev \
-p 3030:3030 \
-e NPM_MIRROR="https://registry.npmmirror.com" \
tangramor/slidev:playwrightThen you can use the export feature of Slidev like following under your work folder:
docker exec -i slidev npx slidev export --timeout 2m --output slides.pdfOr you can create your own slidev project to a docker image with Dockerfile:
FROM tangramor/slidev:latest
ADD . /slidev
Create the docker image: docker build -t myppt .
And run the container: docker run --name myslides --rm --user node -p 3030:3030 myppt
You can visit your slides from http://localhost:3030/
Run command docker exec -i slidev npx slidev build on the running container slidev. It will generate static HTML files under dist folder.
You can host dist in a static web site such as Github Pages or Gitlab Pages.
Because in Github pages the url may contain subfolder, so you need to modify the generated index.html to change href="/assets/xxx to href="./assets/xxx. Or you may use --base=/<subfolder>/ option during the build process, such as: docker exec -i slidev npx slidev build --base=/slidev_docker/.
And to avoid Jekyll build process, you need to add an empty file .nojekyll.
You can also host it by yourself with docker:
docker run --name myslides --rm -p 80:80 -v ${PWD}/dist:/usr/share/nginx/html nginx:alpineOr create a static image with following Dockerfile:
FROM nginx:alpine
COPY dist /usr/share/nginx/html
Create the docker image: docker build -t mystaticppt .
And run the container: docker run --name myslides --rm -p 80:80 mystaticppt
You can visit your slides from http://localhost/
如果你需要快速的在容器上部署你的演示文稿,你可以使用由 tangramor 维护的预构建 docker 镜像,或者自行构建。
在你的工作目录下运行下面的命令:
docker run --name slidev --rm -it \
--user node \
-v ${PWD}:/slidev \
-p 3030:3030 \
-e NPM_MIRROR="https://registry.npmmirror.com" \
tangramor/slidev:latest注意:你可以用 NPM_MIRROR 环境变量来指定一个 npm 镜像以加速安装过程。
如果你的工作目录为空,容器会在目录下自动创建 slides.md 文件和其它相关文件,并基于 3030 端口启动 slidev 服务。
你可以通过 http://localhost:3030/ 访问你的幻灯片。
为了支持 Slidev 的导出功能,我还提供了另一个更大的镜像,带有 playwright 标签。在你的工作目录下运行下面的命令:
docker run --name slidev --rm -it \
-v ${PWD}:/slidev \
-p 3030:3030 \
-e NPM_MIRROR="https://registry.npmmirror.com" \
tangramor/slidev:playwright然后你可以你的工作目录下像这样使用 Slidev 的导出功能:
docker exec -i slidev npx slidev export --timeout 2m --output slides.pdf你也可以把你的 slidev 幻灯片构建到一个 docker 镜像里来进行部署,Dockerfile 如下:
FROM tangramor/slidev:latest
ADD . /slidev
使用命令 docker build -t myppt . 来构建镜像。
执行 docker run --name myslides --rm --user node -p 3030:3030 myppt 命令来运行镜像。
这时你就可用通过 http://localhost:3030/ 来打开你的幻灯片了。
在前面启动的 slidev 容器上运行命令 docker exec -i slidev npx slidev build 就可以在 dist 目录下将你的幻灯片生成静态 HTML 文件。
你可以在静态 Web 站点上托管生成的静态文件,比如 Github pages 或 Gitlab pages。
由于 Github pages 的 URL 可能包含二级目录,所以你需要修改生成的 index.html,把 href="/assets/xxx 改为 href="./assets/xxx (即使用相对路径)。或者你可以用 vite 的 --base=/<subfolder>/ 选项来指定二级目录,例如: docker exec -i slidev npx slidev build --base=/slidev_docker/。
为了防止触发 Jekyll 构建流程,你需要在静态站根目录下添加一个名为 .nojekyll 的空文件
你当然也可以使用 docker 容器来托管生成的静态文件:
docker run --name myslides --rm -p 80:80 -v ${PWD}/dist:/usr/share/nginx/html nginx:alpine或者使用下面的 Dockerfile 来构建一个静态站点的容器镜像:
FROM nginx:alpine
COPY dist /usr/share/nginx/html
运行 docker build -t mystaticppt . 来构建镜像
执行 docker run --name myslides --rm -p 80:80 mystaticppt 命令来启动容器。
此时你就可以通过 http://localhost/ 来访问你的幻灯片了。