@foliojs-fork/linebreak

中文文档
1.1.2发布于 2024/03/07MITCommonJS近 30 天下载 753.3万

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

中文使用文档
文档目录5 节
  1. 为什么是叉子?
  2. 安装
  3. 示例
  4. 发展说明
  5. 许可证

断线叉 npm

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

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

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

为什么是叉子?

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

  • 将 brufs 软件包作为 devdependents 移动

安装

您可以通过 npm 安装

npm install @foliojs-fork/linebreak

示例

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 共发布 3 个版本,首次发布于 2021/07/01;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.1.2latest2024/03/072 年前
1.1.12021/08/025 年前
1.1.02021/07/015 年前

关于 @foliojs-fork/linebreak 的常见问题

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