# @datalayer/decks 中文文档

规范地址：https://npmcn.com/package/%40datalayer/decks/

版本：1\.0\.6
npm 元数据更新时间：2026-10-26T13:20:24.440Z
中文译文更新时间：2026-11-11T14:57:59.480Z
软件包许可：SEE LICENSE IN LICENSE

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40datalayer/decks
原文对照：https://npmcn.com/package/%40datalayer/decks/?lang=original
项目主页：https://github.com/datalayer/decks#readme
源码仓库：https://github.com/datalayer/decks

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：692 kB，221 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：4 个
- peer 依赖：react \>=18，react-dom \>=18，@primer/react ^37\.31\.0，@datalayer/design ^1\.0\.2，@datalayer/reactor ^1\.0\.4，@primer/octicons-react \>=19\.35\.0，@datalayer/primer-addons ^1\.0\.23
- 首次发布：2026-09-18T06:39:43.149Z
- 最新版本发布：2026-10-26T13:20:23.695Z
- 近 30 天下载量：4140（2026-10-12 至 2026-11-10，npm 官方下载统计）
- 已发布版本数：7（近 12 个月 7 个）

## 中文简介

被描述为数据的演示文稿:由光谱驱动的reveal.js甲板引擎,以及任何反应堆外壳中列出,打开并创建甲板的反应堆插件.

## 安装

```sh
npm install @datalayer/decks
```

也可以使用：`pnpm add @datalayer/decks`、`yarn add @datalayer/decks`、`bun add @datalayer/decks`

## README

[![Datalayer](https://images.datalayer.io/legacy/datalayer-25.svg)](https://datalayer.ai/)

# 数据层解密器

幻灯片甲板,称为数据——和 [反应堆](https://reactor.datalayer.tech/) 将其放入任何反应堆外壳的插件 .

```
spec (.ts, YAML-shaped)
   ↓  validation
template            branding, palette, type scale, layout overrides
   ↓
slide library       reusable semantic slide types
   ↓
@revealjs/react → Reveal.js
```

上面写着 `type: metrics`; 参数幻灯片的外观是模板的 业务。 这就是让一个甲板成为应用甲板, 一个会议谈话 和暗影甲板 通过改变一个字.

## 安装

```bash
pip install datalayer_decks
datalayer decks serve          # http://127.0.0.1:8797, opens the browser
datalayer decks serve my-deck.yaml  # load YAML and open this deck directly
datalayer decks list
```

安装软件包添加一个 `decks` 组到数据层 CLI - `serve`, (中文(简体) ), `list`, (中文(简体) ), `show`, (中文(简体) ), `delete` -通过反应堆的 `datalayer.cli` 入境点 组; `datalayer-decks` 单独是同一个群体. `serve` 运行甲板 API (英语:`/decks`,磁盘上的 JSON 规格)和从 [`app/`](https://npmcn.com/package/%40datalayer/decks/app/) 从一个来源。 接口为反应堆外壳:甲板 边栏和主槽中的插件、插件管理器、命令 调色板,和- 在页眉的右边- 外观菜单 `@datalayer/primer-addons`,颜色模式和主题选择器 头相穿. 设定 `DATALAYER_DECKS_DIR` (或 `--decks-dir`选择在哪里 甲板储存(`~/.datalayer/decks` (否则).

传递给 YAML 文件 `serve` 装入临时商店,并在 它的甲板 URL,所以尝试一个文件不会改变用户的普通甲板目录. 过 `--decks-dir` 以及何时进口副本应继续存在。 一个图是 普通光谱内容, 作为全幻灯片或列内:

```yaml
- type: mermaid
  title: From specification to screen
  diagram: |
    flowchart LR
      YAML[Deck YAML] --> Validate
      Validate --> Reveal[Reveal.js]
```

在任何其他反应堆主机旁安装的同个轮子本身作为一个 扩展: 连接主机的路由, 以及 Decks 插件 —— 由 [`extension/`](https://npmcn.com/package/%40datalayer/decks/extension/) 作为模组联合会的容器进入 `share/datalayer/reactor/extensions/decks` 装入主机外壳 结束 [联邦](https://reactor.datalayer.tech/federation),不导入 需要帮助。 见 [蟒类包装扩展](https://reactor.datalayer.tech/python-packaged-extensions)。 。 。 .

## 使用量

```ts
import { registerDecks, DeckView, DecksHostProvider } from '@datalayer/decks';
import { DecksPlugin } from '@datalayer/decks/plugin';
```

-   **`@datalayer/decks`** - 发动机:类型, `validateDeck`幻灯片 库,模板(`datalayer`, (中文(简体) ), `datalayer-brand`, (中文(简体) ), `datalayer-ink`, (中文(简体) ), `DeckRenderer`, (中文(简体) ), `DeckView`, (中文(简体) ), `DeckPrintView`, (中文(简体) ), `DeckAccess`和两个 存储器填入的登记册——甲板目录(`registerDecks`)和 一个 spec 可能名称 (`registerDeckComponents`) (中文(简体) ).
-   **`@datalayer/decks/plugin`** —— 说 `DecksPlugin`: 列表中 `sidebar` 插头, 打开甲板 `main`,在外壳的视图选择器中有一个"Decks"条目,以及 命令.

| 命令 | 按键 | 对 |
| --- | --- | --- |
| `decks.list` | 模式+ 移动+D | 关闭打开的甲板, 显示列表 |
| `decks.new` | 模式+ 备选案文+N | "新甲板"对话框 |
| `decks.open` | —— 说 | 由 id(`{ id, slide? }`(中文(简体) ) |
| `decks.rename` | F2 请检查DATE=中的日期值 (帮助) F2 | 重命名打开的甲板( 或 `{ id }`:标题、地址、家庭 |
| `decks.delete` | —— 说 | 删除打开的甲板(或 `{ id }`),在询问后 |
| `decks.goToSlide` | —— 说 | 将开放的甲板移动到幻灯片上(`{ slide }`(中文(简体) ) |
| `decks.nextSlide` 编号 : `decks.previousSlide` | 阿尔特 /阿尔特 | 穿过开放的甲板 |
| `decks.present` | 模式+ 移动+F | 打开甲板,全屏 |
| `decks.print` | 模式+ 移动+P | 打印视图, 另存为 PDF |

引擎需要它周围的应用程序 主题 一个脚印 标记,读者是否签名——通过 `DecksHostProvider`, (中文(简体) ), 默认的,使一个赤壁工作.

### 注解、 播放和视频

每个幻灯片都可以携带 `notes`在甲板上方, **页:1** 带他们去 介绍者(从来没有在PDF中)。 当主机发出声音时 (单位:千美元)`DecksHost.useNarrator`页:1 `DeckNarrator`,后面还有两个按钮 **下载 PDF**数字 :

-   **播放** 高声读取音符, 幻灯片后幻灯片, 作为底部的标题 幻灯片;没有注释的幻灯片保留了4秒.
-   **视频** 在浏览器中, 将同样内容制作成视频文件: 每张幻灯片 在1920x1080时(所显示的碎片、字体、图片和人鱼图等待) 由旁白者表达的每句话 `synthesize(sentence)` - 那个 整句音频, 格式 `AudioContext.decodeAudioData` 上面写着——甲板被记录下来 这句话被说成是标题, 与 `MediaRecorder`: MP4 浏览器记录它的地方, WebM 否则. 这个 实时记录,随着进展, **打开/关闭声音** 财务报告和审定财务报表 **取消** 在甲板上方 继续用背景标签 你看见并听到它 它记录着——屏幕上的甲板跟随正在录制的幻灯片,其中 标题, 如 **播放** 做,然后回到你最后的位置; **关掉** 只让发言者安静下来,视频保持声音。 然后它提供视频和一个WebVTT 标题文件有相同的句子和时间,以甲板命名.

一个保持视频通道的主持人 `DeckView` (单位:千美元) `videoPublisher` (单位:千美元)`DeckVideoPublisher`(单位:千美元) `label`, (中文(简体) ), `publish(made, spec)`和该说什么一次 `published`)——或给予一次,对于它下的每一甲板,作为 `DecksHost.videoPublisher` (一个主机如何保存甲板插件的视频) 绘图; `DeckView`自己的道具获胜). **视频** 然后读作标签 视频——其标题和 `poster`,第一张幻灯片作为1920×1080 PNG—— 交给 `publish` 一旦它被制作,与 `spec`甲板原样 何时 **视频** 被按下,所以主机可以知道 视频是否是 仍为甲板的;拒绝说明其理由 **再次上传**。 。 。 .

着陆两次 在甲板的一页的空间,视频是 与甲板一起保存(Spacer, `PUT /api/spacer/v1/decks/{id}/video`,在 私人桶:下一次打开页面时,它会播放在幻灯片上方 **下载**,没有被再次制造 **视频** 读取 **再来一次** —— 说 上面写着 甲板在制作后被剪辑过 发表 图书馆提供的甲板 **作为视频发布**,复制已保存的 视频录入图书馆的公开版 在已出版的甲板图书馆网页上 车主 **制作视频** 直接上传到图书馆.

一个没有 `synthesize` 给予不 **视频** 按钮。 一个旁白者 无法代表此阅读者发言( n)`unavailable`,与 `needsSignIn` 签名时 两个按钮都说出原因 而不是播放或记录.

## 探员

代理与甲板相关的每件事都由这个插件宣布,作为其中之一 [`AgentTools`](https://reactor.datalayer.tech/agent-tools) 捆绑 (单位:千美元)`src/plugin/agentTools.json`:数据—— `decks_list_decks`, (中文(简体) ), `decks_get_deck`, (中文(简体) ), `decks_create_deck`, (中文(简体) ), `decks_update_deck`,每个滑坡 编辑, `decks_delete_deck` - 还有屏幕.. `decks_open`, (中文(简体) ), `decks_go_to_slide`, (中文(简体) ), `decks_next_slide`, (中文(简体) ), `decks_previous_slide`, (中文(简体) ), `decks_present`, (中文(简体) ), `decks_print`, (中文(简体) ), `decks_list`。每个都是一个命令插件注册(`DECKS_DATA_COMMANDS`, (中文(简体) ), `DECKS_COMMANDS`,在页面上对目录和商店运行——保存 当插件被赋予一个时, 返回到此服务器上 模型需要下一个。 没有 [代理光谱](https://github.com/datalayer/agentspecs) 命名一个甲板工具; `example-decks` 声明 `tools: []` 把他们全部从 它被挂载在旁边的插件.

Python 半个服务于同一文件 `GET /plugins/agent-tools`,以及 在同一标识下登记套件中的一半数据 (单位:千美元)`datalayer_decks/commands.py`,通过 `provide_slash_commands`()——关于a 没有浏览器的主机 捆绑名称是命令反应器 实际有,可以从 `reactor commands list` 财务报告和审定财务报表 `reactor commands run decks.getDeck '{"id": "talks/hello"}'` 和经纪人一样 七个 移动屏幕上的甲板和浏览器插件:商店没有 屏幕.

在那个 `datalayer decks` 界面本身, `--reactor-plugins ai-agents` 设置 Decks 代理(`example-decks`) 在甲板旁边:在一地上浮出一地 临时推断密钥,以上面的捆绑为工具,从 反应堆而不是申报——见 [`plugins/ai-agents`](https://npmcn.com/package/%40datalayer/decks/plugins/ai-agents)。 。 。 . `example-decks` 财务报告和审定财务报表 `worker-pitcher` (登陆甲板编辑代理) 名称 相同的前端工具盘, `decks`,在代理规格.

在循环中`@datalayer/agent-runtimes`, (中文(简体) ), `@datalayer/loop-plugin-decks` 在聊天边挂载此插件—— 边栏中的列表, a **地标** 编辑器视图, 作曲家的菜单—— 聊天时将代理 捆绑命令作为工具,所以代理写和驱动一个没有的甲板 服务器在它后面。 这个 `DecksAgent` 举个例子.

## 发展

```bash
make install          # pip install -e ".[test]"
make build-lib        # tsc → lib/
make build-app        # the interface → share/datalayer/reactor/apps/decks
make build-extension  # the container → share/datalayer/reactor/extensions/decks
make wheel            # both, then the wheel (hatch_build.py builds what is missing)
make test
make dev-app          # Rsbuild on :5190, against `datalayer decks serve` on :8797
make example          # serve examples/welcome/welcome.yaml directly
```

集装箱的制造需求 `@module-federation/rsbuild-plugin` 联合国 依赖性: `npm install` 一次在这个包.

甲板上 _定义_ 数据采集器 着陆时保持其规格、登记条目和设计系统 插图,并将此套件挂起.

## 常见问题

### @datalayer/decks 是什么？

被描述为数据的演示文稿:由光谱驱动的reveal\.js甲板引擎,以及任何反应堆外壳中列出,打开并创建甲板的反应堆插件\.

### 如何安装 @datalayer/decks？

在项目目录运行 npm install @datalayer/decks，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：react（\>=18）、react-dom（\>=18）、@primer/react（^37\.31\.0）、@datalayer/design（^1\.0\.2）、@datalayer/reactor（^1\.0\.4）、@primer/octicons-react（\>=19\.35\.0）、@datalayer/primer-addons（^1\.0\.23）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @datalayer/decks 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @datalayer/decks 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @datalayer/decks 可以商用吗？

@datalayer/decks 使用 SEE LICENSE IN LICENSE 许可。许可条款写在包内的独立文件中，请阅读该文件确认可否商用。以上为概括，不构成法律意见，请以许可原文为准。

### @datalayer/decks 的下载量有多少？

根据 npm 官方下载统计，@datalayer/decks 在 2026/10/12 – 2026/11/10 这 30 天内被下载 4,140 次，日均约 138 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @datalayer/decks 还在维护吗？

最新版本 1\.0\.6 发布于 2026/10/26（16 天前）；至今共发布 7 个版本，其中过去 12 个月发布了 7 个；首次发布于 2026/09/18。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

