habrahabr

Полетели типографировать

  • понедельник, 27 декабря 2021 г. в 00:34:27
https://habr.com/ru/post/597955/
  • Типографика
  • JavaScript


Время идет, технологии меняются, а необходимость приводить тексты в порядок остается. Так и в случае с Типографом, казалось бы, что еще можно придумать?

Примерно 6 лет назад, вдохновленный PuntoSwitcher, я на коленке собрал пример Типографа на лету, тогда еще на jQuery, целью которого было править текст прямо в момент ввода.

Тогда у меня не нашлось времени плотно заниматься его развитием и проект заглох.

Добротных новых Типографов с того момента не появилось, те что есть — реализуют модель первого «статичного» Типографа, когда текст обрабатывается после полного набора. Но это же неудобно...

Те, кто попытался повторить идею типографики на лету, как в моем jQuery-примере, но с обработкой «статичным» не учли специфику набора и смещение каретки при замене символов. Например, после замены (с) на ©, три символа превращаются в один. Те, кто всё-таки учли, до сих пор не научились нормально верстать текст, повсеместно «детские» болезни и отсутствие понимания принципов.

Зачем это всё?

Не знаю как вы, я постоянно забываю типографировать тексты, даже если в редакторе есть кнопочка. Когда возвращаюсь к редактуре уже после публикации, забываю типографировать по-новой. Можно, конечно же, поставить всю типографику в автоматический режим, но тогда мы можем получить очень неожиданный результат на выходе.

Как бы ни был хорош Типограф — тексты после него нужно обязательно перечитывать

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

Что имеем?

Самое важное — Типограф всё делает при наборе или вставке текста в поля <input> или <textarea>. Специальные знаки и неразрывные пробелы вставляются готовыми символами, никаких больше мнемоников.

Как и раньше, Типограф умеет:

  • Заменять кавычки, тире, спецсимволы: …, ©, ®, ™, ₽, ±

  • Ставить простые дроби: ½, ⅓, ¼, ⅕, ⅙, ⅛, ⅔, ⅖, ¾, ⅗, ⅜, ⅘, ⅚, ⅝, ⅞

  • Ставить минус между числами и × между размерными единицами

  • Привязывать неразрывным пробелом союзы и предлоги к последующим словам, а частицы к предыдущим

  • Разрешает писать HTML и комментарии к нему

Многие правила были изменены значительно, чтобы учесть специфику набора, но предстоит еще очень много работы.

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