PhpHypher

Сниппет для автоматической расстановки переносов в тексте.
Версия 1.0.3-pl
Дата выпуска 07.05.2017
Загрузки 658
Просмотры 8 256
Сниппет PhpHypher, который подключает класс для расстановки переносов от Сергея Куракина.

Пользоваться очень просто.
// Обычный вызов:
[[*content:phphypher]]

// Можно указывать длину получаемого текста.
// Лишний текст будет заменен многоточием.
[[*content:phphypher=`500`]]
Есть один параметр — exclude. Это регулярное выражение для исключения элементов из расстановки переносов. По умолчанию оно выключает основные html теги.

Слово автору:
Алгоритм Ляна-Кнута для автоматической расстановки переносов разработан в 1983 году. Автор алгоритма: Франклин Марк Лян (англ. Franklin Mark Liang), студент профессора Дональда Эрвина Кнута (англ. Donald Ervin Knuth). Впервые алгоритм был применен в издательской системе TeX, автором которой является проф. Дональд Кнут.

Алгоритм работает в два этапа. На первом этапе по словарю переносов строится относительно компактный (в сравнении с исходным словарем) набор правил, позволяющий восстановить все места мягких переносов во всех словах исходного словаря.

Второй этап — собственно расстановка переносов с использованием полученного набора правил. Практика показывает, что в большинстве случаев алгоритм позволяет найти правильные места для переносов даже в тех словах и словоформах, которые в исходном словаре отсутствовали.
Качество расстановки переносов напрямую зависит от качества набора правил, которое, в свою очередь, зависит от полноты и качества исходного словаря переносов.

Первый этап алгоритма — изготовление набора правил, так называемых «паттернов» — реализуется классической программой patgen, которая, однако, требует особого искусства в обращении.

Здесь будем говорить почти исключительно о втором этапе алгоритма Ляна-Кнута — расстановке мягких переносов с использованием готового набора правил. Вопросы первого этапа, не говоря уже о «нулевом», находятся далеко за пределами компетенции автора. Интересующиеся могут почитать учебник по patgen'у и диссертацию Франклина Ляна: Word Hy-phen-a-tion by Com-put-er.

1.0.3 (07.05.2017)

  • [#2] Updated regex for "&exclude".

1.0.2 (19.07.2016)

  • Improved default value of parameter "&exclude".

1.0.1 (19.10.2012)

  • Added parameter "&exclude".

1.0.0 (19.10.2012)

  • Initial release.

Последние обсуждения в сообществе MODX.pro