Какую библиотеку JavaScript следует использовать для расстановки переносов на стороне клиента?

Я хотел бы реализовать расстановку переносов на стороне клиента с помощью JavaScript для некоторых больших текстов на моем сайте. (Я знаю о переносах в CSS3 и буду использовать их вместо них, когда они доступны, но обычно они недоступны.)

Я использовал Hyphenator.js, и он работает хорошо, но очень большой (моя оптимизированная, скомпилированная сборка с просто английский выходит до 106 Кб) и довольно медленно. Он достаточно большой и медленный, поэтому я подумываю полностью отказаться от переносов. В любом случае это просто роскошь.

Но недавно я наткнулся на альтернативу: Hypher. Что меня сбивает с толку, так это то, как Hypher может мне намного меньше и делать то же самое. Мне интересно, может ли кто-нибудь это объяснить.

Hypher работает так же хорошо? Есть ли причина использовать вместо него Hyphenator.js? В файле readme Hypher есть ссылка на Hyphenator.js внизу страницы, но ни один из текст объясняет связь между этими проектами.

Есть ли у кого-нибудь мнение о наиболее эффективной расстановке переносов на стороне клиента?


person davidtheclark    schedule 02.06.2013    source источник


Ответы (2)


Основная причина сравнительно небольшого размера Hypher заключается в том, что он полагается на загружаемый извне jQuery для интеграции страниц. Hyphenator.js полностью автономен и, следовательно, должен включать гораздо больше шаблонов для управления HTML в браузерах. (Они даже повторно реализуют некоторые функции jQuery.)

Честно говоря, Hyphenator.js - это относительно старый проект, который не был полностью переписан, чтобы воспользоваться преимуществами существенных улучшений браузера. (Обратите внимание, что они с гордостью поддерживают Firefox 3.0.) И, более мягко говоря, Hyphenator.js имеет гораздо больше тонкие настройки.

Если вы уже используете jQuery и не используете расширенный API Hyphenator.js, переход на Hypher может оказаться полезным улучшением.

person mjk    schedule 01.09.2014

Я посмотрел на расстановку переносов в JavaScript и нашел следующие четыре библиотеки:

  • hy-phen: это чистая библиотека JavaScript, разработанная Евгением Тюриным с 2016 года с использованием лицензии MIT. Вам предлагается функция JavaScript, которую можно вызывать для переноса строк. Вам нужно только включить основной файл JavaScript и файл желаемого языка, чтобы использовать его.
  • Hypher: чистая библиотека JavaScript, разработанная Брэмом Штайном с 2011 года с использованием лицензии «Three Clause BSD». Вам предлагается два метода JavaScript, которые можно вызывать для переноса строк. Его можно установить только с помощью Node.js или jQuery.
  • Hyphenator.js: реализация JavaScript / HTML, разработанная Матиасом Натером с 2008 года с использованием лицензии MIT. Проект прекращен с 2018 года. Это не так просто включить в ваш проект - вам нужно сначала использовать инструмент Merge & Pack, чтобы создать файл JavaScript, который затем можно будет включить. Он автоматически сканирует HTML-страницу и добавляет переносы к выбранным HTML-элементам. Не существует функции JavaScript, которую можно было бы вызвать для переноса строк вручную.
  • Hyphenopoly.js: является последующим проектом Hyphenator.js и разрабатывается с 2016 года Матиасом Натером с использованием Лицензия MIT. Он отказался от некоторых функций Hyphenator.js и стал немного проще в использовании. Тем не менее, он работает точно так же, что означает, что нет функции JavaScript, которую можно было бы вызвать для переноса строк вручную.

Все четыре библиотеки используют алгоритм расстановки переносов, разработанный Франклином М. Лиангом, который использует шаблоны сопоставления для поиска точек переноса в словах. Этот алгоритм не обеспечивает 100% правильную расстановку переносов, как указано Ляном в его тезисе:

Эти шаблоны находят 89% дефисов в списке слов карманного словаря без ошибок.

person Krisztián Balla    schedule 04.02.2019