我想在我网站上的一些大文本上通过JavaScript实现客户端连字。 (我知道CSS3连字符,并且会在可用时使用它,但它通常不可用。)
我一直在使用Hyphenator.js,它运行良好,但非常大(我的优化,编译版本只有英文版本达到106 KB)而且非常慢。它足够大而且速度慢,我正在考虑完全删除连字符。无论如何,这只是一种奢侈。
但最近我遇到了似乎是另类的选择:Hypher。令我感到困惑的是Hypher如何让我这么多更小并做同样的事情。我想知道是否有人可以解释这一点。
Hypher也能正常工作吗?是否有任何理由使用Hyphenator.js? Hypher的自述文件有一个指向Hyphenator.js at the bottom of the page的链接,但没有一个文本解释了这些项目之间的联系。
是否有人对最有效的客户端连字符有意见?
答案 0 :(得分:9)
Hypher相对较小的主要原因是它依赖于外部加载的jQuery进行页面集成。 Hyphenator.js是完全独立的,因此必须包含更多样板来跨浏览器操作HTML。 (他们甚至重新实现了一些jQuery功能。)
公平地说,Hyphenator.js是一个相对较旧的项目,在使用大量浏览器改进的过程中并未完全重写。 (请注意,他们自豪地支持Firefox 3.0。)而且,更为慈善的是,Hyphenator.js还有更多finely-grained settings。
如果您已经在使用jQuery,并且没有使用Hyphenator.js的高级API,那么切换到Hypher可能是值得进行的改进。
答案 1 :(得分:3)
我查看了JavaScript中的连字符,发现了以下四个库:
所有四个库都使用Franklin M. Liang开发的断字算法,该算法使用匹配模式来查找单词中的断字点。如Liang的thesis中所述,该算法无法提供100%正确的连字号:
这些模式可以在袖珍词典单词列表中找到89%的连字符,基本上没有错误。