# @cto\.af/linebreak 中文文档

规范地址：https://npmcn.com/package/%40cto.af/linebreak/

版本：5\.0\.0
npm 元数据更新时间：2026-10-25T17:08:56.741Z
中文译文更新时间：2026-11-11T03:44:17.137Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：57.3 kB，13 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=22
- 运行依赖：1 个
- 首次发布：2023-05-27T22:45:29.202Z
- 最新版本发布：2026-10-25T17:08:56.416Z
- 近 30 天下载量：32208（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：18（近 12 个月 2 个）

## 中文简介

UAX # 14 的 Unicode 断行算法

## 安装

```sh
npm install @cto.af/linebreak
```

也可以使用：`pnpm add @cto.af/linebreak`、`yarn add @cto.af/linebreak`、`bun add @cto.af/linebreak`

## README

# @cto.af/行断

执行Unicode 线断算法 [14号未爆炸弹药](https://www.unicode.org/reports/tr14/). 执行情况 最初开始为刷新 [换行符](https://github.com/foliojs/linebreak) 软件包, 仍然共享 一小段测试驱动代码 与该项目。 其余的已经 重写以支持完全基于规则的方法,从 统一码18.0.0版本 从该文件:

> 断行,又称字包,是断行的过程 将文字部分划入行,使其与可用宽度a 页面、窗口或其他显示区域。 Unicode 线断算法 执行这一过程的一部分。 在输入文本的情况下,它会产生一组 所谓“断机会”的位置,是适当的起点 一条新线 从一组中选择实际的换行位置 断开机会不在Unicode线断开算法中, 但属于高级软件的范畴 可用宽度和文本的显示大小.

## 安装

```sh
npm install @cto.af/linebreak
```

## API 密码

创建并使用新的规则对象 :

```js
import {Rules} from '@cto.af/linebreak'
const r = new Rules({string: true});
for (const brk of r.breaks('my input string')) {
  console.log(brk.string); // "my ", "input ", "string"
  console.log(brk.pos); // 3, 9, 15
  console.log(brk.required); // false, false, true
}
```

这个 `string` 在构建器中,您可以将输入切入到 弦,而不是你必须做切口。 你只能这样 需要休息的位置, 这就是为什么这不是默认的. 累赘的 `Break` 对象也有一个 `required` 字段.

您可以调整将适用的规则:

```js
import {Rules, PASS} from '@cto.af/linebreak'
const r = new Rules();
r.replaceRule('LB25', (state) => PASS); // Do something more interesting that this!
```

还有一些其他便利功能可用于修改规则. A 类 很少有规则相互影响,因为.. 规格文本。 兹将这些意见保留在以下各点: 来源. 如果您要替换或删除一条现行规则,请 肯定会考虑这些互动关系.

## API 文档

完整的 API 文档是 [可用](http://cto-af.github.io/linebreak/)。 。 。 .

## 遵守UAX #14

该套装打算与UAX #14完全一致. 现在通过 **全体** 会 议 日 程 和 议 程 [测试](https://www.unicode.org/Public/18.0.0/ucd/auxiliary/LineBreakTest.txt) 由Unicode出版.

可以通过添加和去除规则来进行其他裁剪.

## 许可证

麻省理工学院

* * *

[![Tests](https://github.com/cto-af/linebreak/actions/workflows/node.js.yml/badge.svg)](https://github.com/cto-af/linebreak/actions/workflows/node.js.yml) [![codecov](https://codecov.io/gh/cto-af/linebreak/graph/badge.svg?token=OyXDzCGY0Q)](https://codecov.io/gh/cto-af/linebreak)

## 常见问题

### @cto\.af/linebreak 是什么？

UAX \# 14 的 Unicode 断行算法

### 如何安装 @cto\.af/linebreak？

在项目目录运行 npm install @cto\.af/linebreak，或使用 pnpm add / yarn add / bun add。

### @cto\.af/linebreak 支持 TypeScript 吗？

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

### @cto\.af/linebreak 支持 ESM 还是 CommonJS？

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

### @cto\.af/linebreak 需要什么版本的 Node\.js？

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

### @cto\.af/linebreak 可以商用吗？

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

### @cto\.af/linebreak 的下载量有多少？

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

### @cto\.af/linebreak 还在维护吗？

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

