# @foliojs-fork/linebreak 中文文档

规范地址：https://npmcn.com/package/%40foliojs-fork/linebreak/

版本：1\.1\.2
npm 元数据更新时间：2024-03-07T14:21:17.420Z
中文译文更新时间：2026-11-15T04:05:01.457Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：1.1 MB，10 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- 运行依赖：2 个
- 首次发布：2021-07-01T14:26:01.149Z
- 最新版本发布：2024-03-07T14:21:16.981Z
- 近 30 天下载量：7532794（2026-10-15 至 2026-11-13，npm 官方下载统计）
- 已发布版本数：3（近 12 个月 0 个）

## 中文简介

执行Unicode行断算法(UAX #14)

## 安装

```sh
npm install @foliojs-fork/linebreak
```

也可以使用：`pnpm add @foliojs-fork/linebreak`、`yarn add @foliojs-fork/linebreak`、`bun add @foliojs-fork/linebreak`

## README

# 断线叉 [![npm](https://img.shields.io/npm/v/@foliojs-fork/linebreak.svg)](https://www.npmjs.com/package/@foliojs-fork/linebreak)

执行Unicode行断算法(UAX #14)

> 断行,又称"字包",是将一行文字打入行中,使其能与"行"相适应的过程 页面、窗口或其他显示区域的现有宽度。 Unicode 线断算法执行此进程的一部分 . 考虑到输入文本,它产生了一组名为"断机会"的立场,这些立场是开始新行的适当分数. 从一组断开机会中选择实际的换行位置,不在Unicode线断开算法中涵盖, 但属于高级软件的范畴,了解文本的现有宽度和显示大小.

这是 JavaScript 执行 [Unicode 线断算法](http://www.unicode.org/reports/tr14/#SampleCode) 用于节点.js (和浏览器,我想). 目前支持Unicode 13版本. 它被使用为 [PDF Kit 软件](http://github.com/devongovett/pdfkit/) 页:1 在 PDF 文档中用行行来包装文本,但由于算法对文本的实际外观或布局一无所知, 也可以用来做其他的事情.

## 为什么是叉子?

因为原始的repo无法在npm上发布新版本 [foliojs/ 断线# 24](https://github.com/foliojs/linebreak/issues/24)。 。 。 . 这道叉与原始回波相同并保持了最新. 此叉包含这些更改 :

-   将 brufs 软件包作为 devdependents 移动

## 安装

您可以通过 npm 安装

```
npm install @foliojs-fork/linebreak
```

## 示例

```javascript
var LineBreaker = require('linebreak');

var lorem = 'lorem ipsum...';
var breaker = new LineBreaker(lorem);
var last = 0;
var bk;

while (bk = breaker.nextBreak()) {
  // get the string between the last break and this one
  var word = lorem.slice(last, bk.position);
  console.log(word);

  // you can also check bk.required to see if this was a required break...
  if (bk.required) {
    console.log('\n\n');
  }

  last = bk.position;
}
```

## 发展说明

为了使用图书馆,你不应该知道这一点,但如果你有兴趣 帮助或修复错误, 这些东西可能令人感兴趣.

-   这个 `src/classes.js` 文件自动生成自 `LineBreak.txt` 代码 数据库由 `src/generate_data.js`你应该很少需要运行这个,但 例如,如果想要更改Unicode版本,您可以这样做.
    
-   您可以使用 `npm test`。它们使用 `mocha`,并生成自 `LineBreakTest.txt` 从Unicode数据库中获取,该数据库已包含在存储库中,以进行性能 运行它们时的理由。 超过7600项测试中约有50项目前因 执行差异。 看来有些测试可能是错误的 或者用不同的 从规格裁剪.
    

## 许可证

麻省理工学院

## 常见问题

### @foliojs-fork/linebreak 是什么？

执行Unicode行断算法\(UAX \#14\)

### 如何安装 @foliojs-fork/linebreak？

在项目目录运行 npm install @foliojs-fork/linebreak，或使用 pnpm add / yarn add / bun add。

### @foliojs-fork/linebreak 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/foliojs-fork\_\_linebreak 是否存在。

### @foliojs-fork/linebreak 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @foliojs-fork/linebreak 可以商用吗？

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

### @foliojs-fork/linebreak 的下载量有多少？

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

### @foliojs-fork/linebreak 还在维护吗？

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

