NHyphenator - C# библиотека для автоматической расстановки переносов

Когда-то давно, я уже выкладывал пост про библиотеку NHypehnator, которая позволяет автоматически расставлять мягкие переносы в тексте.

Времени с тех пор прошло уже много, кроме того, я внес ряд изменений, так что считаю, что не лишним будет напомнить о проекте новой статьей :)

О том, что такое мягкий перенос, зачем он нужен и как работает, можно по-прежнему прочитать в старом посте.

Изменения

А теперь об изменениях:

  1. Добавлен мультитаргет, теперь нугет-пакет подходит и для .NET Framework 4.0 и для .NET Standard 2.0.
  2. Изменена лицензия на Apache 2.0
  3. Добавлена возможность загрузки своих паттернов из файла, без необходимости лезть в код библиотеки.

С первыми двумя пунктами вопросов думаю не будет, а вот про третий пункт расскажу подробнее.

new PatternsLoader()

Первоначально, библиотека создавалась для вполне определенных целей, поэтому в ней сразу были зашиты паттерны переносов для Английского и Русского, другого было и не надо. Однако, со временем оказалось, что зашитые паттерны, без возможности загрузить их из файла - большая проблема для многих.

В результате был переработан механизм загрузки данных – теперь есть IHyphenatePatternsLoader, который можно реализовать самому или воспользоваться готовым FilePatternsLoader. Сами файлы паттернов для разных языков можно взять отсюда, файлы .pat.txt содержат паттерны, .hyp.txt - исключения.

Итого, теперь для создания хипенатора надо написать две строки, вместо одной – гибкость всегда чего-то да стоит.

var loader = new new FilePatternsLoader($"{patterns_path}", $"{exceptions_path}");
Hypenator hypenator = new Hypenator(loader);
var result = hypenator.HyphenateText(text);

Для тех, кому нужны стандартные паттерны для русского или английского – можно воспользоваться загрузчиком данных, который загрузит паттерны из ресурсов в самой библиотеки:

new ResourceHyphenatePatternsLoader(HyphenatePatternsLanguage.Russian);

Ссылки

Установить можно из нугета https://www.nuget.org/packages/NHyphenator

Install-Package NHyphenator

Поставить звездочку можно на гитхабе https://github.com/alkozko/NHyphenator


comments powered by HyperComments
Яндекс.Метрика