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

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

    Примерно год–полтора назад я написал свой плагин для популярного редактора 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. Комментарии к коду внутри плагина не по-русски… Писал так — еще не перевел.
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 30
    • 0
      с вордпрессом дружит? пару месяцев назад пробовал подобный плагин и он не заработал, были проблемы с кодировкой.
      • +2
        По-идее, должен. Возьметесь проверить?
        • 0
          в ближайшее время попробую и отпишу.
      • 0
        В подобном плагине на TinyMCE были проблемы с 1251-ой кодировкой.
        В UTF-8 все прекрасно работало.
        Тут как?
      • 0
        Спасибо интересно =)
        но было б круто если все форматирование было на стороне сервера ;)
        • +2
          Напутал — на стороне клиента, с помощью только JS скрипта.
          • +2
            Естественно лучше всего на стороне юзера делать такие преобразования. И типографы такие есть, в эту сторону, в том числе, плагин и будет развиваться.
        • 0
          На стороне сервера локально прикрутил типограф Муравьёва.
        • 0
          По моему, зло то, что текст для типографирования передается каким-то сторонним сервисам.
        • 0
          1. UTF-8?
          2. Работает ли без выделения?
        • 0
          remotetypograf.php?
          • 0
            Это скрипт Студии Лебедева — качать отсюда: www.artlebedev.ru/tools/typograf/webservice/
            • 0
              спс…

              второе. второй аргумент simplexml_load_file строка, а не константа ( тем болье неопределенная )
            • –2
              слышу, слышу
              • +2
                погу поклястся тут было два ваших комента!
                • +2
                  Не, вроде не писал )))
            • 0
              Кстати, какая лицензия ГПЛ? или что то другое?
            • 0
              wp plugin
              made.com.ua/typography.rar

              1) слегка переделал ваш плагин
              -> в части сохранения стейта выбраных типограф енджинов
              -> Сhange Language изменено на Change Typography Engine (признавайтесь что брази за основу плагина? мне интресно)
              ->

              2) все упаковано в 1 файл. (тут уж извиняйте пришлось закодироват бейсом64 ваш плагин, такова у меня привычка делать плигины из 1 файла)

              3) оформленно в плагин.

              время от вермени получаю ошибку что ответа нет, скорее всего перепишу серверсайд, потому как не нравится.
              муравьев отсуствует — так как его сначала в посте небыло =)

              как то так…
              • 0
                «Сhange Language изменено на Change Typography Engine (признавайтесь что брази за основу плагина? мне интресно)»

                Плагин писался с нуля по оф. вики :) Изначально он был «двуязычным» — при типографировании можно было выбрать именно язык, но т.к. Лебедевский типограф с языками не дружит, преобразовывалось это костылями в бакенде, которые хреново работали. А вчера я его просто переписал под разные движки и освежил вцелом.

                «в части сохранения стейта выбраных типограф енджинов» — надо бы и мне реализовать
              • 0
                Установил типограф.
                Типографирует только движок Spearance, два остальных вместо js-alert «Save changes?» выдают «GENERAL» и не типографируют.

                Есть подозрение, что это изза того, что «на хостинге PHP урезан в правах и не сможет установить соединение».

                Или я не прав?

                На сайте кодировка 1251

                Спасибо
                • 0
                  Плагин в неподдерживаемом состоянии уже давно, странно что за 2 или 3 года он вообще хоть что-то типографит ))) будет время — проверю, что да как.
                  • 0
                    Понятно. :)
                    В любом случае спасибо за ответ!
                    • 0
                      Типографит и еще как! Спасибо.

                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.