# @lapis-notes/lapis-plugin-notebook 中文文档

规范地址：https://npmcn.com/package/%40lapis-notes/lapis-plugin-notebook/

版本：0\.2\.2
npm 元数据更新时间：2026-11-01T15:44:42.788Z
中文译文更新时间：2026-11-01T16:58:48.634Z
软件包许可：AGPL-3\.0-or-later

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

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

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

- 包体积（解压后）：125 MB，40 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=22
- 运行依赖：10 个
- peer 依赖：svelte ^5\.0\.0，@lapis-notes/ui ^0\.1\.6，@codemirror/view ^6\.43\.8，@lapis-notes/api ^0\.2\.4，@codemirror/state ^6\.7\.1，@codemirror/search ^6\.7\.1，@codemirror/commands ^6\.10\.4，@codemirror/language ^6\.12\.4，@lapismd/design-core ^0\.9\.0，@lapis-notes/markdown ^0\.2\.1，@codemirror/autocomplete ^6\.20\.3，@codemirror/lang-markdown ^6\.5\.2
- 首次发布：2026-10-31T08:23:02.731Z
- 最新版本发布：2026-11-01T15:44:42.463Z
- 已发布版本数：4（近 12 个月 4 个）

## 中文简介

可执行.notebook。md笔记本与反应细胞和丰富的输出青金石笔记

## 安装

```sh
npm install @lapis-notes/lapis-plugin-notebook
```

也可以使用：`pnpm add @lapis-notes/lapis-plugin-notebook`、`yarn add @lapis-notes/lapis-plugin-notebook`、`bun add @lapis-notes/lapis-plugin-notebook`

## README

# `@lapis-notes/lapis-plugin-notebook`

[![CI](https://github.com/lapismd/lapis-plugin-notebook/actions/workflows/ci.yml/badge.svg)](https://github.com/lapismd/lapis-plugin-notebook/actions/workflows/ci.yml) [![Storybook Pages](https://github.com/lapismd/lapis-plugin-notebook/actions/workflows/publish-storybook-pages.yml/badge.svg)](https://github.com/lapismd/lapis-plugin-notebook/actions/workflows/publish-storybook-pages.yml) [![Storybook](https://img.shields.io/badge/storybook-live-ff4785?logo=storybook&logoColor=white)](https://lapismd.github.io/lapis-plugin-notebook/)

第一方外部笔记本插件青金石。它移植了遗产 `@lapis-notes/notebook` 插件:可执行 `.notebook.md` 减价文档 具有反应单元，丰富的输出，交互式输入和DuckDB查询， 公众展示 `@lapismd/design-core` 宿主体内的表面 工作区。

该插件拥有笔记本文档、执行、面板和设置。主机 自己的路由、保险库状态、持久性和应用程序策略。

[![Plugin workspace](https://npmcn.com/package/%40lapis-notes/lapis-plugin-notebook/registry-assets/banner.preview.webp)](https://npmcn.com/package/%40lapis-notes/lapis-plugin-notebook/registry-assets/banner.full.webp)

插件截图

[![Research notebook](https://npmcn.com/package/%40lapis-notes/lapis-plugin-notebook/registry-assets/gallery/research.preview.webp)](https://npmcn.com/package/%40lapis-notes/lapis-plugin-notebook/registry-assets/gallery/research.full.webp)

[![Interactive analysis](https://npmcn.com/package/%40lapis-notes/lapis-plugin-notebook/registry-assets/gallery/interactive.preview.webp)](https://npmcn.com/package/%40lapis-notes/lapis-plugin-notebook/registry-assets/gallery/interactive.full.webp)

注册表发布和手工验证： [发布指南](https://npmcn.com/package/%40lapis-notes/lapis-plugin-notebook/docs/registry-publishing.md).

## 当前包状态

-   准备包版本： `@lapis-notes/lapis-plugin-notebook@0.2.1` (即将出版)。验证使用 已发布的注册表依赖项；资格和出版证据是 在跟踪 `spec/records/2026-10-31-notebook-canvas-release.md`.
-   运行时插件id： `lapis-notebook` (保留从遗留插件所以 持久的插件数据键保持兼容)。
-   运行时同行: `@lapis-notes/api@^0.2.4`， `@lapis-notes/markdown@^0.2.1`， `@lapismd/design-core@^0.9.0`， `@lapis-notes/ui@^0.1.6`， `svelte@^5`.
-   规范存储库: `lapismd/lapis-plugin-notebook`.
-   目录: [https://lapismd.github.io/lapis-plugin-notebook/](https://lapismd.github.io/lapis-plugin-notebook/).
-   端口是分级的 `spec/src/plugins/notebook/`;验证 状态在 `spec/src/verification.md` 准确跟踪哪个阶段有 登陆。

## 安装

主机通过Lapis插件生命周期加载插件类； `onload` 注册笔记本编辑器视图、命令、设置选项卡和面板。

```sh
pnpm add @lapis-notes/lapis-plugin-notebook
```

在应用程序边界处导入一次插件样式表：

```ts
import "@lapis-notes/lapis-plugin-notebook/styles.css";
```

## 运行时表面

| 表面 | 条目 | 使用 |
| --- | --- | --- |
| 笔记本视图 | `*.notebook.md` 独家编辑器视图贡献 | 单元格渲染，源/预览模式，运行所有标题操作，内联编辑器 |
| 执行 | 带有Web Worker传输和进程内回退的共享引擎 | 使用依赖图排序的TypeScript/JavaScript、SQL和Markdown/HTML单元 |
| 输入 | `packages/input` 基于Design Core原语的DOM运行时 | `viewof` 文本/表/范围和每个ui支持的输入工厂与目标运行 |
| DuckDB | `packages/duckdb` 钉在DuckDB-WASM上 | 应用程序快照表上的SQL单元格(`lapis.notes`， `lapis.links`， `lapis.search_documents`） |
| 面板 | 变量、依赖项和包的右边栏视图 | 数据源检查、依赖关系图和npm包管理 |
| 默认的分组 | `Notebook` 从布局状态播种的侧边栏组 | 一个右侧栏组同时表示变量、依赖项和包 |
| 设置 | 版本化插件数据加上设置选项卡 | 执行、自动运行和面板自动打开策略 |

## 小区和输出覆盖率

将渲染的笔记本嵌入到另一个笔记中 `![[Analysis.notebook.md]]`. 嵌入显示笔记本散文和可用的单元输出，并带有一个操作to 打开源代码笔记本。无需运行单元即可恢复保存的结果；第一个 执行仍然是手动的。重复嵌入共享输入值，同时保持 单独的控制。

单元通过一个共享引擎执行，可通过两个传输访问：a 用于符合条件的笔记本和进程中的专用模块Web Worker 适用于需要DuckDB、实时DOM输出或仅主机的笔记本 提供者。反应性是由lapis拥有且明确的——一种marimo/ pluto风格 依赖关系图重新运行或标记过时的后代；没有隐含的 观察运行时。生成的输出将作为键入的生成状态保存 主机 `appDatabase` 笔记本状态契约，由web、桌面和 托管Rust后端。

## 样式合同

该插件使用本地CSS， Design Core语义令牌和笔记本所有 `notebook-` 前缀的类。生产来源不受顺风影响 实用程序字符串(`pnpm check:no-tailwind`）。

1.  进口 `@lapis-notes/lapis-plugin-notebook/styles.css` 一次。
2.  通过设计核心代币实现主题；笔记本层重新绑定public 自定义属性（编辑器界面、表预览、状态面板） 自己的边界。
3.  不要样式私有生产选择器使故事或主持人看起来 正确的。

状态色调使用静态aa对比调色板 `.dark` 覆盖; 切片解剖在白色的身体上描绘灰色的全血头部。

## 布局规范

```text
src/
  lib/            plugin class, settings, views, render layer, panels, styles
  stories/        App-backed shell stories, panel placement stories, demos
packages/
  notebook-core/  host-neutral document model, graph, and stdlib
  notebook-stdlib/
  notebook-input/ lazy DOM input runtime
  notebook-duckdb/
  notebook-duckdb-assets/
  notebook-worker/ transport-only worker entry
spec/
  src/            canonical specification (mdBook)
  records/        slice and acceptance records
stories/
  catalog/        story parity and taxonomy declarations
```

私有支持包保持主机中立边界（LN-NB-027）和 通过共享的Vite/tsconfig管道从TypeScript源解析，所以 已发布的根清单不受 `workspace:` 依赖关系。

## 使用的例子

笔记本文件是普通的Markdown用的 `:::cell` 指令:

````markdown
---
notebook:
  autorun: true
---

:::cell{#calc lang="ts"}

```ts
const answer = 6 * 7;
display(`The answer is ${answer}.`);
```

:::

:::cell{#query lang="sql"}

```sql
SELECT count(*) AS note_count FROM lapis.notes;
```

:::
````

交互式输入使用 `viewof` 细胞;目标依赖关系重新运行 下游细胞在变化。

## 故事书和本地文档

运行本地目录（默认为端口7040）：

```sh
pnpm storybook
pnpm storybook:stop
pnpm storybook:restart
```

构建静态目录：

```sh
pnpm build-storybook
```

规范规范存在于 `spec/src`． 更喜欢qmd支持的搜索 用于定位要求和指导，并保持接线后的健康 工具更新:

```sh
pnpm spec:search -- "panel group"
pnpm spec:search -- "worker transport" --semantic
pnpm spec:index
pnpm exec spec-validator doctor
pnpm spec:check
```

### CI和局部宇称

可移植验证默认为失败关闭的Docker运行器 （`scripts/validation.mjs`);Docker故障永远不会落回主机。 看到 `docs/validation.md` 用于上下文、报告和自有清理。本地的 诊断需要明确的 `LAPIS_NOTEBOOK_VALIDATION_RUNTIME=native` 覆盖。

`pnpm test:storybook` 按顺序运行Storybook Vitest项目 碎片，每个碎片都有一个新的浏览器进程和一个worker，镜像 间歇编排器传输中断的任务缓解。保持 可用于诊断的非批处理命令。

CI运行验证、规范、质量、单元、构建、发布和 故事书交互和静态构建通道在每个拉请求和推 来 `main`，并将静态目录发布到GitHub Pages `main`.

### 刷新本地开发依赖项

当兄弟存储库存在时， `.pnpmfile.cjs` 安装本地 用于开发验收的包快照。这些快照需要 在同级源或公共导出更改后刷新。如果故事书 报告存在于所属存储库中的丢失文件，停止它并 刷新快照：

```sh
pnpm storybook:stop
pnpm install --lockfile=false --force
pnpm test
pnpm test:storybook
pnpm storybook
```

此临时本地验证设置将保留注册表锁定文件 不变。根据发布的注册中心验证版本和CI 依赖关系。

预览继承了DM Sans变量和源代码Pro变量从 设计核心，匹配青金石主机。

## 发布和确认

常用验证命令：

```sh
pnpm spec:first
pnpm spec:check
pnpm check
pnpm test
pnpm build
pnpm publint
pnpm test:storybook
pnpm build-storybook
pnpm validation:all
```

## 进一步的阅读

| 资源 | 使用 |
| --- | --- |
| [`spec/src/plugins/notebook/index.md`](https://npmcn.com/package/%40lapis-notes/lapis-plugin-notebook/spec/src/plugins/notebook/index.md) | 规范插件规范 |
| [`spec/src/plugins/notebook/runtime.md`](https://npmcn.com/package/%40lapis-notes/lapis-plugin-notebook/spec/src/plugins/notebook/runtime.md) | 执行、面板和设置运行时 |
| [`spec/src/spec-governance.md`](https://npmcn.com/package/%40lapis-notes/lapis-plugin-notebook/spec/src/spec-governance.md) | 治理、验证和发现规则 |
| [`spec/src/verification.md`](https://npmcn.com/package/%40lapis-notes/lapis-plugin-notebook/spec/src/verification.md) | 需求验证证据 |
| [`docs/validation.md`](https://npmcn.com/package/%40lapis-notes/lapis-plugin-notebook/docs/validation.md) | Docker验证上下文和报告 |
| [`AGENTS.md`](https://npmcn.com/package/%40lapis-notes/lapis-plugin-notebook/AGENTS.md) | 贡献者和代理工作流 |
| [`PROVENANCE.md`](https://npmcn.com/package/%40lapis-notes/lapis-plugin-notebook/PROVENANCE.md) | 遗留端口的来源和排除 |

## 常见问题

### @lapis-notes/lapis-plugin-notebook 是什么？

可执行\.notebook。md笔记本与反应细胞和丰富的输出青金石笔记

### 如何安装 @lapis-notes/lapis-plugin-notebook？

在项目目录运行 npm install @lapis-notes/lapis-plugin-notebook，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：svelte（^5\.0\.0）、@lapis-notes/ui（^0\.1\.6）、@codemirror/view（^6\.43\.8）、@lapis-notes/api（^0\.2\.4）、@codemirror/state（^6\.7\.1）、@codemirror/search（^6\.7\.1）、@codemirror/commands（^6\.10\.4）、@codemirror/language（^6\.12\.4）、@lapismd/design-core（^0\.9\.0）、@lapis-notes/markdown（^0\.2\.1）、@codemirror/autocomplete（^6\.20\.3）、@codemirror/lang-markdown（^6\.5\.2）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @lapis-notes/lapis-plugin-notebook 支持 TypeScript 吗？

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

### @lapis-notes/lapis-plugin-notebook 支持 ESM 还是 CommonJS？

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

### @lapis-notes/lapis-plugin-notebook 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=22。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @lapis-notes/lapis-plugin-notebook 可以商用吗？

@lapis-notes/lapis-plugin-notebook 使用 AGPL-3\.0-or-later 许可。最严格的 Copyleft：除分发外，通过网络向用户提供基于它的服务也需要开源对应源码。闭源 SaaS 使用前务必评估。以上为概括，不构成法律意见，请以许可原文为准。

### @lapis-notes/lapis-plugin-notebook 还在维护吗？

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

