В процессе подготовки 3-й версии Типографа написал небольшой jQuery-плагин, который обязательно войдет в релиз, способный облегчить жизнь многим разработчикам сайтов в вопросе типографики.

Задача была следующая: сделать javascript-типограф, а-ля «Punto Switcher», способный верстать нужные символы при наборе текста, не обращаясь к веб-сервису. Так же очень важно было не испортить визуально plain-текст вставками из символов мнемоников, чтобы неподготовленный человек смог спокойно влиться в процесс типографики.

Пришлось пожертвовать многим и сконцентрироваться лишь на нескольких основных правилах, которые покрывают порядка 82% потребностей в типографике (статистика собрана на основе 10 тыс. текстов, обработанных на сайте http://typograf.ru).

Пример

Что делает «Типограф»?


Верстает текст внутри текстовых полей автоматически или по запросу.
  • Умеет верстать кавычки (ёлки, лапки настраиваются);
  • тире в прямой речи;
  • спецсимволы: …, ©, ®, ™, ?;
  • умеет ставить минус между числами и ? между размерными единицами.


При типографике не трогает теги и комментарии HTML.

Ссылка на GitHub

Важно! jQuery.Typograf.js не является полноценной заменой он-лайн сервиса!

По просьбе StopDesign добавил типографику по нажатию на кнопку и откат к исходному тексту.

Комментарии (49)


  1. devpreview
    06.05.2015 19:29
    +3

    Буду краток: спасибо!


  1. Novitsky
    06.05.2015 21:07

    Что исправляет «на лету» — это хорошо.
    А, как обстоят дела с неразрывными пробелами?


    1. Spearance Автор
      06.05.2015 21:23

      До выхода 3-й версии Типографа в плагин правки вносить не планировал, банально не хватает времени. А вот после выхода подумаю в какую сторону ему расти.


      1. Novitsky
        06.05.2015 21:39

        Просто неразрывные пробелы — это достаточно важно. И их нельзя поставить с помощью клавиатуры, в отличии от тире (Alt + 0151), кавычек (Alt + 0171 и Alt + 0187) и прочего.


        1. Spearance Автор
          06.05.2015 22:00

          С неразрывными пробелами не все так однозначно. Если вы верстаете с выключкой по левому краю, то да, они нужны. Если по формату (по обеим сторонам) то лучше заключать конструкции в неразрывные, например в теги <nobr>. Тогда пробелы между союзами и предлогами будут не так явно прилеплены к словам. В описании задачи (см. начало поста) я указал, что мне бы не хотелось вставлять что-то кроме непосредственно символов.


          1. Novitsky
            06.05.2015 22:08
            +1

            <nobr> сейчас уже не используется. Лучше делать <span class="nobr">, а в CSS прописывать для него white-space: nowrap;.
            Но про выключку вы правы — неразрывные пробелы актуальны для выравнивания по левому краю. Хотя, в вебе, выравнивание по обеим сторонам встречается крайне редко и считается дурным тоном.


            1. Spearance Автор
              06.05.2015 22:18

              <nobr> конечно же устарел, хотя мне он нравился больше :)

              Выравнивания по ширине встречается часто и зависит от дизайна, а вот про дурной тон, скажу так: поменьше читайте Ководство. :)


              1. Novitsky
                06.05.2015 22:25

                поменьше читайте Ководство. :)

                :) При чем здесь Ководство? Он писал про то, что было известно и до него. Я же не настаиваю на «висячей пунктуации». )


                1. Spearance Автор
                  07.05.2015 05:41

                  Тёма человек настроения, сегодня у него многоточие правильный знак, завтра неправильный… Он одним из первых озвучил что выравнивание по ширине в вебе не модно.


                  1. Novitsky
                    07.05.2015 16:19

                    Я может неправильно выразился. Не то, чтобы не модно или дурной тон. Просто, это не практично и трудно управляемо. Чтобы выравнивание по ширине выглядело хорошо, нужно ставить переносы (как в книгах) а не пробелы. В вебе, из-за непостоянной ширины колонки, это сделать тяжело.


              1. Novitsky
                06.05.2015 22:58
                +1

                К теме про Ководство. П. Г. Гиленсон в своей книге «Справочник художественного и технического редакторов» (PDF, 219 КБ) еще в 88-м году писал:

                … не следует оставлять в конце строки предлоги и союзы, начинающие предложение, а также однобуквенные союзы и предлоги в середине предложений.

                И это пример только про переносы предлогов и союзов.
                Так что Лебедев здесь ни при чем.


                1. Spearance Автор
                  07.05.2015 05:49

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

                  Изначально не планировал сделать полностью готовый яваскрипт-типограф. Это лишь маленькая поделка к моему сайту, которой мне совсем не жаль поделиться.


                  1. Novitsky
                    07.05.2015 16:20

                    И еще раз говорю спасибо. Хорошая работа. Но все же надеюсь на дальнейшее развитие.


        1. franzose
          07.05.2015 02:05
          +1

          На маке alt + пробел.


        1. bolk
          07.05.2015 09:57
          -3

          Раскладку Бирмана поставьте себе и не мучайтесь.


          1. Novitsky
            07.05.2015 16:21

            Ставил как-то. Лично мне не понравилось.


            1. bolk
              07.05.2015 16:23

              То есть вы хотите сказать, что помнить и печатать Alt+0160 вам больше нравится?


              1. Novitsky
                07.05.2015 16:38

                То есть вы хотите сказать, что помнить и печатать Alt+0160 вам больше нравится?

                Я что-то не помню, чтобы в «Раскладке» был неразрывный пробел.
                А по поводу помнить — там тоже надо помнить, что и где находится.
                Точно также надо зажимать Alt. Правда после Alt'а надо нажать только одну клавишу, а не несколько. Но у меня это дошло до автоматизма и, к тому же, я часто использую только тире и кавычки. Не вижу смысла из-за трех знаков ставить это поделие.
                К тому же, я написал, что не понравилось лично мне.


                1. bolk
                  07.05.2015 16:44

                  Запоминать? Да вы, похоже, смысла-то раскладки и не уловили. Символы подобраны по похожести, там ничего запоминать не нужно.

                  Например:

                  » — Alt+> (знак «больше» похож на закрывающую кавычки)
                  © — Alt+c (понятно, да?)
                  ? — Alt+a (от слова approximately)
                  — — Alt+- (тире похоже на минус)

                  Догадаетесь как неразрывный пробел поставить (если по-прежнему нет, то Alt+Space).


                  1. Novitsky
                    07.05.2015 16:51

                    Понятно. Но, все таки мне удобнее «вручную», если так можно выразится.
                    И да, неразрывные пробелы я все равно не собираюсь сам проставлять (хоть Alt+Space, хоть Alt+0160), а то это уже будет смахивать на клавиатурный онанизм. )


  1. Spearance Автор
    06.05.2015 21:44

    Ровно так же Alt+0160, если мне память не изменяет ;)


    1. Novitsky
      06.05.2015 22:00

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

      Пример


      1. Spearance Автор
        06.05.2015 22:06

        На часть вопроса почему не сделал пробелы ответил чуть выше. На вторую часть ответ написан после маркера «Важно!» :)


        1. Novitsky
          06.05.2015 22:11

          Почему обязательно онлайн-сервис? Есть, например, типограф Муравьева — его можно использовать непосредственно на своем сайте. Но у вас мне понравилось исправление «на лету».

          И большое спасибо за работу! Надеюсь на дальнейшее развитие.


  1. Nesvet
    06.05.2015 21:50

    Как быть с вложенными кавычками?

    «Вы все еще кое-как верстаете в «Word-е»? — Тогда мы идем к вам!»


    1. Spearance Автор
      06.05.2015 22:03
      +1

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


      1. Nesvet
        06.05.2015 22:11

        Разве не возбраняется?


        1. Lorien_Elf
          06.05.2015 22:28
          -1

          Розенталь разрешил :)
          www.gramota.ru/spravka/letters/?rub=kav


          1. matiouchkine
            07.05.2015 08:10

            Во-первых, Дитмар Эльяшевич никгда в жизни не занимался типографикой. Во-вторых, на грамотеру копипаст из нужных мест слишком часто сочетается с воспаленной фантазией их доморощенных «экспертов».

            Никогда не ссылайтесь на грамотуру в более-менее серьезных разговорах, в общем.


            1. Lorien_Elf
              07.05.2015 11:08
              +1

              Удивительно, что вас при этом не беспокоит ссылка на википедию каментом ниже.

              Куда мне ссылаться, если Институт русского языка больше не дает справок?


              1. Spearance Автор
                07.05.2015 12:24
                -1

                Все источники что вы и после вас перечислили являются интерпретациями и разъяснениями к «Правилам русской орфографии и пунктуации», 1956 г. издания. Но простите, сколько времени прошло с момента издания этих правил?

                Вот например § 86 из этого источника утверждает что частица «то» пишется через дефис, и весьма уважаемый Дитмар Эльяшевич это подтверждает в своей книге.

                Но вот вам пример:

                Хочу платье как то, или как это.


                Русский язык — это живой организм. Он перерождается, создавая новые правила и рекомендации. Ко всем источникам по корректуре и верстке ленужно подходить с долей здравого смысла.


                1. Novitsky
                  07.05.2015 16:26
                  +1

                  В вашем примере «то», это уже не частица.


                  1. franzose
                    07.05.2015 18:40

                    Еще и запятая перед «или» лишняя.


              1. matiouchkine
                07.05.2015 16:36

                Обычно ссылаются на Мильчина orfogrammka.ru/OGL03/70091358.html

                Эстеты ссылаются на Кричевского.

                Меня вообще мало что беспокоит, но всуе помянутый Розенталь обязывает вскочить на защиту.


      1. Novitsky
        06.05.2015 22:16
        +2

        Правильно писать:

        Пушкин писал Дельвигу: «Жду Цыганов и тотчас тисну».


        1. Spearance Автор
          06.05.2015 22:29

          Это очень непростой вопрос про кавычки и в плане типографики и в плане реализации, поэтому пока останется как есть. Позже вернусь к этому вопросу.


          1. UksusoFF
            07.05.2015 12:31

            Викификатор умеет правильно ставить кавычки. Может там подсмотреть?


            1. Spearance Автор
              07.05.2015 12:40

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


    1. ingumsky
      06.05.2015 22:44

      Буква «ё» :(


      1. Spearance Автор
        07.05.2015 05:30

        Буква Ё — моя боль, т.к. в моей фамилии она присутствует. Выносить полный словарь с буквами Ёё в этот плагин не вижу смысла, а сокращать до «её» или «ещё» просто глупо.


        1. Grawl
          13.05.2015 03:45

          nodejs-ёфикатор github.com/hcodes/eyo

          безопасный словарь занимает 3 МБ, так что это только при deploy можно делать.


  1. kobezzza
    07.05.2015 10:01

    1. Spearance Автор
      07.05.2015 10:44

      Попробовал на нескольких своих примерах, после 10-ка ошибок увы, мне не подходит


      1. marapper
        07.05.2015 15:04

        Каких?


        1. Spearance Автор
          07.05.2015 15:08

          В типографике само-собой.

          Все не запомнил, но обратил внимание что тире в прямой речи не везде корректно ставит.


      1. Grawl
        12.05.2015 18:32

        А мы к себе подключили. После десятка ошибок правильно настроили. Возможности у него отличные. И не требует jQuery, лол.


        1. Spearance Автор
          12.05.2015 18:55

          Каждый Типограф найдет своего пользователя.


  1. igordata
    07.05.2015 13:45

    Чем плагин хуже апи?


  1. Spearance Автор
    07.05.2015 14:26

    в плагине с десяток правил, в апи около двухсот + есть гибкие настройки