# @docen/layout 中文文档

规范地址：https://npmcn.com/package/%40docen/layout/

版本：0\.7\.0
npm 元数据更新时间：2026-09-07T10:41:59.117Z
中文译文更新时间：2026-11-12T13:46:16.469Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：176 kB，5 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：1 个
- 首次发布：2026-08-30T19:58:08.077Z
- 最新版本发布：2026-09-07T10:41:58.932Z
- 近 30 天下载量：7026（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：4（近 12 个月 4 个）

## 中文简介

Docen 纯 TypeScript 排版引擎——文本行断开(UAX #14 + CJK kinsoku),OOXML 段落/表格块布局,以及零 DOM 依赖的流量/固定/网格策略

## 安装

```sh
npm install @docen/layout
```

也可以使用：`pnpm add @docen/layout`、`yarn add @docen/layout`、`bun add @docen/layout`

## README

# @ docen/ 铺放

![npm version](https://img.shields.io/npm/v/@docen/layout) ![npm downloads](https://img.shields.io/npm/dw/@docen/layout) ![npm license](https://img.shields.io/npm/l/@docen/layout)

> Docen的纯TypeScript布局引擎——零 DOM,零渲染库. 内环(`text/`, (中文(简体) ), `block/`测量和分解文本并列出段落/表;外环以此为基础(`flow/` —— docx 页面打入; `fixed/` 用于 pptx 形状文本和 `grid/` xlsx 和他们的编辑一起来.

使用时间 [`@docen/docx`](https://npmcn.com/package/%40docen/docx/README.md)'project (Document options ~布局Doc) 并被 [`@docen/core`](https://npmcn.com/package/%40docen/core/README.md)画布舞台.

## 设计

-   **输入为 a `LayoutDoc` 投影,全px,样式-凸起已解.** 适配器(从Tiptap/ProseMiror的docx,从它的形状树起的pptx,从它的网格起的xlsx)转换其文档单位并精确地解决了他们的风格链;引擎从未看到过一个 `styleId`或Tiptap节点。 只有布局语义保持了他们的OOXML形状(行规则,网格投出,快活旗)——这些是这个引擎存在的执行规则.
-   **FontMetrics是测量接合.** 发动机工作来自一个单位提供的每个编码单位的预付款 `FontMetrics` 提供者(`browserFontMetrics` 通过今天的画布 2d 的测量; 无头和服务器提供者进入同一接口的插槽 。 小姐们倒回了警示——"言行".
-   **一个装入文本的打包机, 硬折叠和内嵌图片** DOM路线从未有过的统一断路器。 UAX #14行断开(linebreak.js)与CJK kinsoku,后行-空格悬空,一行缩入,浮区宽度降低,并每行OOXML行高音(准确 / at East / 多相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相.
-   **决定是约.** 相同的输入 – 相同的输出每道通路 – 被接通者所依赖的属性.

已知的界限:没有GSUB塑造(ligature subservation-进步运行略宽,为突破而保守);行平面单元格内容完全计入起行.

## 使用量

```ts
import { TextMeasurer, browserFontMetrics, layoutBlock } from "@docen/layout";

const measurer = new TextMeasurer(browserFontMetrics);
const laid = layoutBlock(paragraph, 612, { linePitchPx: 25 }, measurer);
// laid.lines — y, height, positioned items, split points
```

## 许可证

-   [麻省理工学院](https://npmcn.com/package/LICENSE) © [演示宏](https://www.demomacro.com/)

## 常见问题

### @docen/layout 是什么？

Docen 纯 TypeScript 排版引擎——文本行断开\(UAX \#14 \+ CJK kinsoku\),OOXML 段落/表格块布局,以及零 DOM 依赖的流量/固定/网格策略

### 如何安装 @docen/layout？

在项目目录运行 npm install @docen/layout，或使用 pnpm add / yarn add / bun add。

### @docen/layout 支持 TypeScript 吗？

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

### @docen/layout 支持 ESM 还是 CommonJS？

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

### @docen/layout 可以商用吗？

@docen/layout 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @docen/layout 的下载量有多少？

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

### @docen/layout 还在维护吗？

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

