断线叉 
执行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项目前因 执行差异。 看来有些测试可能是错误的 或者用不同的 从规格裁剪.
许可证
麻省理工学院