CLI 参考#
npm 包会安装 frameseq 可执行文件。
新建幻灯片文件#
frameseq new [file]
不给文件名时,FrameSeq 在当前目录创建 slides.ts。
frameseq new quarterly.slides.ts
这条命令拒绝覆盖已存在的文件。
启动开发服务器#
frameseq dev [file] [--host] [--remote]
默认入口是 slides.ts。
frameseq dev talk.slides.ts
浏览器会自动打开,源码改动后演示自动更新。
在观众页按 P 打开演讲者视图,或者在预览地址后加 ?presenter=1。只要两个窗口来自同一个源、同一台设备的浏览器,它们就保持同步。
当预览需要通过容器或 StackBlitz 这类浏览器 IDE 访问时,加 --host:
frameseq dev talk.slides.ts --host
它只把 Vite 开发服务器暴露出来,不会启用手机遥控。默认命令仍然绑定在 localhost。
演讲时加 --remote,把服务暴露到局域网并启用二维码配对:
frameseq dev talk.slides.ts --remote
手机和演示电脑必须在同一个局域网。这个模式包含 --host 的行为,并为翻页、揭示步骤和激光笔启用一个本地 WebSocket 中继;不使用任何 FrameSeq 云服务。
构建静态 HTML#
frameseq build [file] [--output directory] [--single-file]
默认入口是 slides.ts,默认输出目录是 dist/。
frameseq build talk.slides.ts --output site
默认构建使用相对资源路径,所以整个输出目录既能部署在域名根目录,也能部署在 GitHub Pages 这类仓库子路径下。
用 --single-file 把 JavaScript、CSS、字体和框架资源全部内联进一个可移植的 index.html:
frameseq build talk.slides.ts --single-file
这个单文件可以直接打开,也可以上传到任何"一个 HTML 文件更方便"的地方。远程 URL 加载的图片仍然是远程的;需要内嵌所有资源时,请用 data URL 或由构建管理的本地资源。
导出 PDF#
frameseq pdf [file] [--output path]
默认输出到 output/pdf/<入口名>.pdf。
frameseq pdf quarterly.slides.ts
frameseq pdf quarterly.slides.ts --output reports/quarterly.pdf
PDF 导出会启动无头浏览器,渲染所有页面和揭示步骤,并写出按页尺寸、含背景的 PDF。
导出 PowerPoint#
frameseq pptx [file] [--output path] [--flatten]
默认输出到 output/pptx/<入口名>.pptx。
frameseq pptx quarterly.slides.ts
frameseq pptx quarterly.slides.ts --output reports/quarterly.pptx
frameseq pptx quarterly.slides.ts --flatten
默认的混合导出把普通文字、代码、图形、线条和箭头保留为可编辑的 PowerPoint 对象。公式、Typst、编译后的 LaTeX 和其它复杂渲染片段使用高分辨率图片对象。演讲者备注会保留。
--flatten 把每一整页导出为一张高分辨率图片,这能得到与浏览器最接近的外观,但可见对象无法单独编辑。映射规则和限制见 Export PowerPoint。
导出 Typst#
frameseq typst [file] [--output path]
默认输出到 output/typst/<入口名>.typ。
frameseq typst quarterly.slides.ts
frameseq typst quarterly.slides.ts --output reports/quarterly.typ
导出器写出可编辑的 Typst 页面,通过 MiTeX 映射 LaTeX 公式和基础文本,并把常见的 LaTeX tabular 片段转换成原生 Typst 表格。原生 Typst 片段保持源码形式;不支持的 LaTeX 和 CSS 特性使用有文档说明的回退或转换说明。见 Typst integration。
检查渲染后的布局#
frameseq check [file] [--json] [--strict]
检查器在无头浏览器里渲染每一页,发现空白页、超出画布的对象、被裁切的文字,以及小到不适合演示的字号。
frameseq check talk.slides.ts
frameseq check talk.slides.ts --json
frameseq check talk.slides.ts --strict
错误返回非零退出码;警告只在严格模式下失败。JSON 输出包含页码与标签、FrameSeq 对象类型与路径、测量到的几何,以及修改建议。见 面向 AI 的布局检查。
检视源码文档#
frameseq inspect [file] [--json]
检视会解析 TypeScript 源码,不启动浏览器。它报告页面顺序、标签、布局、是否有备注、对象类型和源码位置。
frameseq inspect talk.slides.ts
frameseq inspect talk.slides.ts --json
稳定的 JSON 形式是给编辑器集成和编码代理用的。FrameSeq 的 VS Code 扩展用它构建页面大纲,并直接跳转到 slide() 调用。
项目脚本#
npm create frameseq 生成的项目提供:
npm run dev
npm run present
npm run build
npm run build:single
npm run pdf
npm run pptx
npm run typst
npm run check
npm run check 同时校验 TypeScript 和渲染后的页面布局。
直接调用本地可执行文件时,用 npx frameseq ...。