# 生成你的第一份 `.stage` 演示包 本教程带你把一个最小 HTML deck 打包成 `.stage`,并验证它可以交给 SlideStage Lite 或 SlideStage Pro 使用。 ## 前提条件 你需要: - Node.js 20 或更新版本。 - 已安装 `slidestage-pack`,或正在这个仓库里运行命令。 - 一份 HTML 幻灯片目录。 如果你还没有 deck,可以先创建一个最小示例。 ```bash mkdir my-deck cat > my-deck/index.html <<'HTML' 我的第一份 SlideStage deck

Hello SlideStage

第二页

HTML ``` ## 1. 探测源框架 先让 packer 判断源目录是什么类型。 ```bash node scripts/detect_framework.mjs my-deck ``` 对上面的示例,结果应类似: ```json { "kind": "inline-deck", "recommendedMode": "split" } ``` `inline-deck` 表示 packer 识别到了 `
` 和 `
`。`split` 表示它会把每个 slide 拆成独立 HTML 文件。 ## 2. 打包为 `.stage` 运行打包命令: ```bash node scripts/pack_stage.mjs --src my-deck --out my-deck.stage ``` 打包器会: - 读取 `index.html`。 - 拆分每张 slide。 - 生成 `manifest.json`。 - 抽取 speaker notes。 - 固定 zip 时间戳,让相同输入得到稳定指纹。 ## 3. 校验产物 每次交付前都应校验 `.stage`。 ```bash node scripts/verify_stage.mjs my-deck.stage ``` 校验会检查: - zip 可解压。 - 根目录存在合法的 `manifest.json`。 - `schema` 等于 `slidestage@1.0`。 - `slides[].file` 指向的文件都存在。 - 路径没有 `..`、绝对路径、反斜杠或控制字符。 - 包大小和 slide 数没有超过限制。 如果校验通过,这个文件就可以进入 SlideStage 生态。 ## 4. 播放或上传 你可以选择: - 把 `my-deck.stage` 拖进 SlideStage Lite 播放。 - 上传到 SlideStage Pro 的 deck 资料库。 - 作为构建产物交给其他人归档或发布。 ## 下一步 如果源 deck 是 reveal.js 或 impress.js,默认通常会使用 `wrap` 模式来保留原框架运行时。只有当你明确想让平台逐页管理 slide 时,才考虑 `--mode split`。 如果 deck 依赖外部图片、字体或 CSS,可以在打包后使用 Lite 的 `pnpm mirror` 生成离线包。