@docen/layout

中文文档
0.7.0发布于 2026/09/07MITTypeScriptES Module近 30 天下载 7026

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

中文使用文档
文档目录3 节
  1. 设计
  2. 使用量
  3. 许可证

@ docen/ 铺放

npm version npm downloads npm license

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

使用时间 @docen/docx'project (Document options ~布局Doc) 并被 @docen/core画布舞台.

设计

  • 输入为 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-进步运行略宽,为突破而保守);行平面单元格内容完全计入起行.

使用量

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

许可证

版本与发布记录

@docen/layout 共发布 4 个版本,首次发布于 2026/08/31;过去 12 个月发布了 4 个版本。

版本发布日期距今
0.7.0latest2026/09/072 个月前
0.6.22026/09/022 个月前
0.6.12026/08/312 个月前
0.6.02026/08/312 个月前

关于 @docen/layout 的常见问题

@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 和提交记录判断。