簡體   English   中英

我應該使用哪個JavaScript庫進行客戶端連字?

[英]Which JavaScript library should I use for client-side hyphenation?

我想在我的網站上的一些大文本上通過JavaScript實現客戶端連字。 (我知道CSS3連字符,並且會在可用時使用它,但它通常不可用。)

我一直在使用Hyphenator.js ,它運行良好,但是非常大(我的優化,編譯版本只有英文版本達到106 KB)而且非常慢。 它足夠大而且速度慢,我正在考慮完全刪除連字符。 無論如何,這只是一種奢侈品。

但最近我遇到了似乎是另一種選擇: Hypher 令我感到困惑的是,Hypher如何讓我這么小,做同樣的事情。 我想知道是否有人可以解釋這一點。

Hypher也能正常工作嗎? 是否有任何理由使用Hyphenator.js? Hypher的自述文件在頁面底部有一個指向Hyphenator.js的鏈接,但沒有一個文本解釋了這些項目之間的聯系。

有沒有人對最有效的客戶端連字法有什么看法?

相比之下,Hypher如此小的主要原因是它依賴於外部加載的jQuery來進行頁面集成。 Hyphenator.js是完全獨立的,因此必須包含更多樣板來跨瀏覽器操作HTML。 (他們甚至重新實現了一些jQuery功能。)

公平地說,Hyphenator.js是一個相對較舊的項目,在利用瀏覽器大量改進的過程中還沒有完全重寫。 (請注意,他們自豪地支持Firefox 3.0。)更重要的是,Hyphenator.js有更多細粒度的設置

如果您已經在使用jQuery,並且不使用Hyphenator.js的高級API,那么切換到Hypher可能是值得改進的。

我在JavaScript中看了一下連字符,發現了以下四個庫:

  • hy-phen :是自2016年以來由Yevhen Tiurin使用MIT許可證開發的純JavaScript庫。 您將獲得一個JavaScript函數,您可以調用連字符串。 您只需要包含主JavaScript文件和所需的語言文件即可使用它。
  • Hypher :自2011年以來由Bram Stein使用“Three Clause BSD”許可證開發的純JavaScript庫。 您可以使用兩種JavaScript方法來調用連字符串。 它只能使用Node.js或jQuery安裝。
  • Hyphenator.js :自2008年以來由Mathias Nater使用MIT許可證開發的JavaScript / HTML實現。 該項目自2018起停止使用。要包含在項目中並不是那么簡單 - 首先需要使用Merge&Pack工具來創建一個可以包含的JavaScript文件。 它會自動掃描HTML頁面並為選定的HTML元素添加連字符。 沒有JavaScript函數可以調用手動連字符串。
  • Hyphenopoly.js :是Hyphenator.js的后續項目,自2016年起由Mathias Nater使用MIT許可證開發。 它刪除了Hyphenator.js的一些功能,使用起來有點簡單。 然而它的工作方式相同,這意味着沒有可以調用手動連字符串的JavaScript函數。

所有四個庫都使用由Franklin M. Liang開發的連字算法,該算法使用匹配模式來查找單詞中的連字點。 該算法沒有提供梁在他的論文中所述的100%正確的連字符:

這些模式在口袋字典單詞列表中找到89%的連字符,基本上沒有錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM