Pull to refresh

Типограф для TinyMCE

Reading time3 min
Views6.9K
Заметно, что на Хабре в последнее время всё чаще поднимается вопрос типографики, и это не может не радовать, ибо «оттипографленные» тексты и читать приятнее, и выглядят они куда аккуратнее обычных. Да и в целом создается ощущение, что автор заботился о своих читателях.

Примерно год–полтора назад я написал свой плагин для популярного редактора TinyMCE, который умел типографить тексты посредством веб-интерфейса типографа Студии Лебедева. С того времени плагин успешно используется в проектах студий Nimax и Artilleria. После недавнего поста я решил таки его опубликовать, а также немного его усовершенствовал — добавил Типограф тов. spearance, а также Типограф студии Муравьёва. Способ типографирования можно выбрать непосредственно перед «операцией».

Усовершенствованный типограф я сегодня и представляю на суд публики.




Возможности:


  • Возможность выбора типографа
  • Корректно обрабатывает выделенный текст
  • Работает через веб-интерфейс, поэтому мгновенно воспринимает все багфиксы используемых движков (хотя, с другой стороны, это может стать минусом, если на хостинге PHP урезан в правах и не сможет установить соединение)
  • Для случая, когда PHP урезан — можно использовать типограф студии Муравьёва, он локален
  • Мультиязычный интерфейс (пока только русский и английский)
  • Сразу видно результат, непосредственно в поле редактирования
  • Если что-то пойдет не так — можно отказаться от результатов работы плагина
  • Корректно работает с кодировками

Установка:


  1. Скачиваем PHP скрипт Студии Лебедева для работы с их типографом
  2. Скачиваем Типограф студии Муравьёва
  3. Распаковываем оба скрипта куда-нибудь так, чтобы в каталоге оказались файл remotetypograf.php и каталог Jare (с файлом Typograf.php)
    Важное замечание! — в данный момент версия 2.0.0-rc2 типографа Студии Муравьёва имеет метку BOM во многих файлах, что может приводить к ошибкам вида preg_match() [function.preg-match]: Compilation failed: nothing to repeat at offset на ряде серверов. Также из-за этого метка BOM попадает в выходной поток backend-скрипта, добавляя в контент пустой тег «P»«/P». Типограф обучен бороться с этой проблемой, вырезая метку из ответа сервера (спасибо юзеру pixxxel). Проблема с preg функциями решается банальным приведением файлов к обычному UTF-8 без метки (уж не знаю как это связано, но работает)
  4. Для ленивых — в этом архиве есть оба скрипта, однако возможно это будут не самые свежие версии, но там устранена проблема с BOM
  5. Распаковываем архив с плагином в папку плагинов TinyMCE (например /tinymce/plugins/)
  6. В файле /tinymce/plugins/typograf/typograf.php правим константу MCETYPOGRAF_ENGINES, чтобы указывала на папку с типографами
  7. При инициализации прописать плагин в plugins и theme_advanced_buttonsX, например:
    tinyMCE.init({

    "plugins": "…table,advimage,advlink,typograf",
    "theme_advanced_buttons1": "…pagebreak,|,spellchecker,typograf,|,advcode…"
  8. Опционально, если пользуетесь TinyMCE.Compressor, то плагин надо также прописать и в конфиг-файл компрессора в plugins

Планируемые фичи:


  • Расширение круга движков
  • Поддержка типографирования текстов на разных языках. Пока что оба используемых плагина не позволяют задать язык или напрямую символы кавычек. Тов. spearance обещал сделать это в 3й версии своего типографа, от Лебедева пока ничего не известно

Известные баги:


  • При слишком хитром выделении (через несколько ячеек таблицы, к примеру), может заглючить объект Range, с этим я еще работаю…

P.S. Теоретически баг может сидеть в любой программе ;) Любой фидбэк ценится.
P.P.S. Комментарии к коду внутри плагина не по-русски… Писал так — еще не перевел.
Tags:
Hubs:
+36
Comments30

Articles

Change theme settings