0 Пользователей и 1 Гость просматривают эту тему.
  • 258 Ответов
  • 149072 Просмотров
*

Physicist

  • Глобальный модератор
  • 984
  • 194 / 0
  • Рябов Денис
Плагин «Русская типографика» позволяет сделать текст ваших статей более удобными для восприятия, в частности:

  • производится замена обычных кавычек "" на елочки «» и лапки „“ (для вложенных);
  • неразрывный пробел перед тире (тире в начале строки может быть только в случае прямой речи), само тире из коротенького «минуса» - становится «нормальным» —;
  • вставляется неразрывный пробел между инициалами и фамилией (теперь не будет «Пушкин» на одной строке, а «А.С.» — на другой);
  • вставляется неразрывный пробел после сокращений (ул. Ленина), арабских (38 попугаев) и римских цифр (XXVIII съезд), перед некоторыми сокращениями (пять руб.), в устоявшихся сокращениях (и т.д., и т.п., и др.);
  • телефонный номер обрамляется тегами <nobr>;
  • и др.

Приму любые предложения и пожелания по доработке мамбота.

Добавлено в версии 1.1:

  • многие настройки можно включать/отключать в настройках мамбота;
  • убираются пробелы перед знаками пунктуации;
  • 1/2, 1/4 и 3/4 заменяются на &frac12;, &frac14; и &frac34;;
  • возможность прикреплять короткие слова к последующим, а частицы — к предыдущим словам;
  • возможность выдавать символы типа «, … и т.д. (имеющиеся в кодировке windows-1251) в виде &laquo;, &hellip; и т.д.
  • и др.

Добавлено в версии 1.2:

  • теперь мамбот не затрагивает содержимое тегов.

Версия 2.0

Возможности мамбота значительно расширились — в настройках содержится более 50-ти параметров, среди которых добавились (по сравнению с предыдущей версией):
  • не разрывать слова при помощи неразрывного пробела / тега nobr / стиля white-space:nowrap;
  • настраиваемые символы тире и короткого пробела;
  • не разрывать номера телефонов;
  • не разрывать числа, разбитые на разряды (например, 1 000 000);
  • не разрывать двойные слова (например, два-три, из-за);
  • не отрывать абревиатуру формы собственности от названия организации;
  • различные автозамены символов;
  • исправление некоторых пунктуационных ошибок;
  • и многое другое.

Исправлено в версии 2.0.4:
  • исправлена ошибка с обработкой научных степеней (до этого, например, «к.ф.-м.н.» заменялось на «к. к. н.»);
  • исправлена обработка заголовков для J1.5 и J1.6 (теперь там не используется <nobr>).

Текущая версия плагина доступна на https://github.com/dryabov/rustypo.

ВНИМАНИЕ!
Убедительная просьба: если у вас текст статей стал как-то неправильно или странно выводиться после установки мамбота — вышлите мне образец этого текста (вместе с html-тегами) на e-mail или через Личные сообщения на этом форуме.

« Последнее редактирование: 02.07.2012, 03:29:11 от Physicist »
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Мамбот "Русская типографика"
« Ответ #1 : 31.01.2007, 00:29:57 »
гы, а я ведь тоже когда-то такой мамбот писал, и забыл про него... вот же память старческая...  так, ну давай тогда хоть идеями (и если нужно кодом) поделюсь, пусть будет один но мощный:

1. Заменять три точки на …
2. Заменять дроби 1/2, 1/4, 3/4 на &frac14;, &frac12; &frac34;
3. Заменять x между двух цифр на &times;
4. Заменять повторяющиеся пробелы на один
5. (c) лучше заменять на &copy;, аналогично (r) на &reg; и (tm) на &trade;
6. Убирать пробелы перед знаками препинания
7. Убирать пробелы после открывающих и перед закрывающими скобками

Замечания по текущему мамботу: лучше все-таки использовать неразрывный пробел, чем комбинации nobr или span (как написано в todo). Иначе текст будет сильно меняться для поисковиков это не очень хорошо.
*

Physicist

  • Глобальный модератор
  • 984
  • 194 / 0
  • Рябов Денис
Re: Мамбот "Русская типографика"
« Ответ #2 : 31.01.2007, 09:20:32 »
1. Заменять три точки на …
2. Заменять дроби 1/2, 1/4, 3/4 на &frac14;, &frac12; &frac34;
3. Заменять x между двух цифр на &times;
4. Заменять повторяющиеся пробелы на один
5. (c) лучше заменять на &copy;, аналогично (r) на &reg; и (tm) на &trade;
6. Убирать пробелы перед знаками препинания
7. Убирать пробелы после открывающих и перед закрывающими скобками
У меня бОльшая часть этого (кроме пунктов 2 и 6) и так реализована.
Замечания по текущему мамботу: лучше все-таки использовать неразрывный пробел, чем комбинации nobr или span (как написано в todo). Иначе текст будет сильно меняться для поисковиков это не очень хорошо.
Вроде бы поисковики не должны обращать внимание на тег <nobr>. А текст с неразрывными пробелами, когда выставлено выравнивание по ширине, смотрится не очень гладко.
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Мамбот "Русская типографика"
« Ответ #3 : 31.01.2007, 10:42:53 »
У меня бОльшая часть этого (кроме пунктов 2 и 6) и так реализована.
по пунктам 1, 3 и 5 я просто не увидел в мамботе html-кодов для этих символов...
*

Physicist

  • Глобальный модератор
  • 984
  • 194 / 0
  • Рябов Денис
Re: Мамбот "Русская типографика"
« Ответ #4 : 31.01.2007, 10:58:36 »
Просто они идут символами (…), а не "html-entity" (&#133 или &hellip).
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Мамбот "Русская типографика"
« Ответ #5 : 31.01.2007, 11:59:39 »
Просто они идут символами (…), а не "html-entity" (&#133 или &hellip).
мне кажется что правильнее все-таки использовать html-entity
*

Physicist

  • Глобальный модератор
  • 984
  • 194 / 0
  • Рябов Денис
Re: Мамбот "Русская типографика"
« Ответ #6 : 31.01.2007, 12:04:05 »
Мои аргументы: одна и та же выдача в браузере при меньшем размере страницы.
А ваши аргументы?
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Мамбот "Русская типографика"
« Ответ #7 : 31.01.2007, 12:12:57 »
Мои аргументы: одна и та же выдача в браузере при меньшем размере страницы. А ваши аргументы?
чаще всего страница все равно отдается сжатой, а вот теоретически возможна ситуация, когда код символа и его html-entity могут по-разному отображаться в браузере... Пользователь может просматривать страницы, игнорируя стили, и использовать при этом свой шрифт, в котором этих символов может не быть, а браузеры (насколько  я помню), при отображении html-entities используют стандартный системный шрифт... Я просто один раз с таким приколом сталкивался... Но это не принципиально, мне кажется надо просто сделать это настраиваемым (т.е. вставлять коды или entities), и остальные функции мамбота тоже вынести в настройки. Я у себя делал отключаемыми все функции, бо иногда что-то мешает, а иногда хочется чтобы работало чуть нестандартно.
*

Physicist

  • Глобальный модератор
  • 984
  • 194 / 0
  • Рябов Денис
Re: Мамбот "Русская типографика"
« Ответ #8 : 01.02.2007, 20:31:54 »
Мамбот обрабатывает текст каждый раз или после одной успешной обработки он сохраняется в БД? Если результаты работы не сохраняются, то не будет ли идеологически более правильным написать плагин к визуальному редактору, который будут выполнять те же функции, но единоразово при создании/редактировании контента? Имеет ли смысл вешать для вылавливания на лету "блох" в типографике вешать целый мамбот? Насколько он может повлиять на быстродействие?

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

А вообще я думал над тем, что Вы предлагаете: сделать аналог мамбота на javascript и «повесить» его на событие onGetEditorContents (можно плагином, но я не знаю, возможно ли плагином изменить содержимое перед отправкой — плагины писать не приходилось). Но в этом случае изменятся только вновь создаваемые статьи, а на старых это никак не отразится.
« Последнее редактирование: 01.02.2007, 20:41:35 от Physicist »
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Мамбот "Русская типографика"
« Ответ #9 : 01.02.2007, 20:38:10 »
Имеет ли смысл  для вылавливания на лету "блох" в типографике вешать целый мамбот? Насколько он может повлиять на быстродействие?
на быстродействие при включенном кэшировании сильно не скажется, а вот установка новой версии мамбота автоматически сразу дает результат, а если это будет плагин к редактору, то мне кажется это будет менее удобно. Ну не буду же я редактировать тысячу материалов чтобы они стали более правильно отображаться. А мамбот такую задачу решит быстро и просто
*

XYZ

  • Осваиваюсь на форуме
  • 48
  • 2 / 0
Re: Мамбот "Русская типографика"
« Ответ #10 : 02.02.2007, 11:51:35 »
может есть смысл заменять разрвы строк на параграфы ?
*

Physicist

  • Глобальный модератор
  • 984
  • 194 / 0
  • Рябов Денис
Re: Мамбот "Русская типографика"
« Ответ #11 : 02.02.2007, 12:54:18 »
В смысле <br /> на <p>?
Добавьте
    $text=str_replace('<br />','<p>',$text);
перед
    return trim($text);
А я, возможно, добавлю такую опцию в следующую версию.
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Мамбот "Русская типографика"
« Ответ #12 : 02.02.2007, 13:01:42 »
    $text=str_replace('<br />','<p>',$text);
ну это не совсем корректно, бо должны быть закрывающие теги... и при этом не должно быть вложенности параграфов...
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Мамбот "Русская типографика"
« Ответ #13 : 02.02.2007, 13:17:57 »
Добавлю еще несколько правил для мамбота (если какие-то уже есть, не обращайте внимания):

1. Последнее слова в абзаце привязывать к предыдущему
2. Короткие слова, записанные через дефис (например, два-три) обрамлять <nobr>
3. Знаки препинания, кавычки и скобки, оказавшися рядом с <nobr> необходимо вносить внутрь этого тега, чтобы они не отрывались.
4. Между цифрами ставить дефис, а перед цифрами именно минус
5. Не отрывать верхние и нижние индексы от предыдущих символов
6. Вставлять неразрывный пробел между числом и сокращением размерностью, чтобы не было 1кг
7. В случае многоточия после ! и ? ставится две точки, а не три, например !.. или ?..
8. Знаки процента (%) и промилле (‰) прикреплять к числам, к которым  они относятся, пробелом не отбиваются
9. Знаки градуса (°), минуты (′), секунды (″) и терции (″′) от предыдущих чисел не должны быть отбиты, а от последующих чисел должны быть отделены пробелом (10° 15′).
*

Physicist

  • Глобальный модератор
  • 984
  • 194 / 0
  • Рябов Денис
Re: Мамбот "Русская типографика"
« Ответ #14 : 02.02.2007, 13:21:28 »
ну это не совсем корректно, бо должны быть закрывающие теги... и при этом не должно быть вложенности параграфов...
Понимаю. Но большинство браузеров это не смущает. Более того, многие программы, которые сжимают html-текст, вообще выкидывают теги типа </p>, </td> и т.д.
Хотя, сделать "по-честному" будет лишь чуть-чуть сложнее. Нужно заменять <br /> на </p><p> и дополнительно проверять, чтобы текст начинался с <p> и заканчивался на </p>.
*

Physicist

  • Глобальный модератор
  • 984
  • 194 / 0
  • Рябов Денис
Re: Мамбот "Русская типографика"
« Ответ #15 : 02.02.2007, 13:26:04 »
1. Последнее слова в абзаце привязывать к предыдущему
2. Короткие слова, записанные через дефис (например, два-три) обрамлять <nobr>
3. Знаки препинания, кавычки и скобки, оказавшися рядом с <nobr> необходимо вносить внутрь этого тега, чтобы они не отрывались.
4. Между цифрами ставить дефис, а перед цифрами именно минус
5. Не отрывать верхние и нижние индексы от предыдущих символов
6. Вставлять неразрывный пробел между числом и сокращением размерностью, чтобы не было 1кг
7. В случае многоточия после ! и ? ставится две точки, а не три, например !.. или ?..
8. Знаки процента (%) и промилле (‰) прикреплять к числам, к которым  они относятся, пробелом не отбиваются
9. Знаки градуса (°), минуты (′), секунды (″) и терции (″′) от предыдущих чисел не должны быть отбиты, а от последующих чисел должны быть отделены пробелом (10° 15′).

4. Дефис между цифрами ставится.
6. Число всегда прикрепляется к последующему слову неразрывным пробелом. А вот разбивать, если изначально написано слитно, наверное, и правда стоит.

А за остальные правила спасибо. Ждите новую версию.
« Последнее редактирование: 02.02.2007, 13:32:48 от Physicist »
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Мамбот "Русская типографика"
« Ответ #16 : 02.02.2007, 15:24:39 »
Понимаю. Но большинство браузеров это не смущает.
ну мне кажется делать мамбот для соответствия текста одним правилам (типографики) и тут же нарушать другие правила (спецификацию) бессмысленно... нет, если уж делать, то делать надо все правильно...

Хотя, сделать "по-честному" будет лишь чуть-чуть сложнее. Нужно заменять <br /> на </p><p> и дополнительно проверять, чтобы текст начинался с <p> и заканчивался на </p>.
этого недостаточно... надо проверять, что внутри тега <p> нет вложенных абзацев, что нет внутри этого тега списков и некоторых других  элементов (ul, li, h, pre, code). Но это тоже весьма не сложно в реализации...
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Мамбот "Русская типографика"
« Ответ #17 : 02.02.2007, 15:40:53 »
6. Число всегда прикрепляется к последующему слову неразрывным пробелом. А вот разбивать, если изначально написано слитно, наверное, и правда стоит.
причем только для общепринятых сокращений размерностей...

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

Кстати, еще несколько пунктов:

10. Заменять => и <= на &ge; и &le;
11. Знак доллара ставить перед числом, а не после, и отбивать неразрывным пробелом.
12. Слова и последовательности длиной до 8-10 символов, написанные через дефис или короткое тире заключать в <nobr>..</nobr>
13. Кавычки, находящиеся симметрично на границах ссылки, выносить за пределы ссылки.
14. Начальные и конечные пробелы и знаки препинания внутри текста ссылки выносить за пределы ссылки.
*

Caleb

  • Осваиваюсь на форуме
  • 10
  • 0 / 1
Re: Мамбот "Русская типографика"
« Ответ #18 : 02.02.2007, 16:22:58 »
ПМСМ замена  <br> на <p> вообще не правильна и должна быть ну оччень опциональный. Очень часто возникает ситуация когда необходимы именно новые строки, а не новые абзацы.
*

Physicist

  • Глобальный модератор
  • 984
  • 194 / 0
  • Рябов Денис
Re: Мамбот "Русская типографика"
« Ответ #19 : 02.02.2007, 16:24:13 »
Можно подробнее о коротком тире? Я всегда был уверен, что есть только дефис, тире и минус :-)
В традиции русской типографики, насколько я знаю, есть только одно тире. Но вот в компьютерных кодировках есть два символа — короткое тире &ndash (–), которое короче русского, и длинное тире &mdash (—), которое длиннее русского. На практике в обычном тексте хорошо использовать второе, а, например, в диапазоне типа 1941–1945 — первое.
« Последнее редактирование: 02.02.2007, 16:29:19 от Physicist »
*

Physicist

  • Глобальный модератор
  • 984
  • 194 / 0
  • Рябов Денис
Re: Мамбот "Русская типографика"
« Ответ #20 : 02.02.2007, 16:28:11 »
ПМСМ замена <br> на <p> вообще не правильна и должна быть ну оччень опциональный. Очень часто возникает ситуация когда необходимы именно новые строки, а не новые абзацы.
Конечно это будет опционально.
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Мамбот "Русская типографика"
« Ответ #21 : 02.02.2007, 16:52:52 »
Можно подробнее о коротком тире? Я всегда был уверен, что есть только дефис, тире и минус :-)
ну дефис у буржуев и называют коротким тире (ndash)...

1. Минус  (&minus; или −)
2. Дефис или короткое тире – (&150; или &ndash;)
3. Длинное тире — (&151; или &mdash;)

это пробелов 3 штуки, несчитая неразрывного (en space, em space и thin space)

еще один пункт для мамбота:

15. Заменять сноски 1, 2 и 3 в виде <sup>1</sup> и т.д. на ¹, ², ³ (коды &185;, &178;, &179)

*

Physicist

  • Глобальный модератор
  • 984
  • 194 / 0
  • Рябов Денис
Re: Мамбот "Русская типографика"
« Ответ #22 : 02.02.2007, 17:07:03 »
ну дефис у буржуев и называют коротким тире (ndash)...
Не совсем. Дефис — это то, что находится на кнопке «минус». Используется в выражениях типа 1-й, как-то и т.д.
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Мамбот "Русская типографика"
« Ответ #23 : 02.02.2007, 17:14:05 »
Не совсем. Дефис — это то, что находится на кнопке «минус». Используется в выражениях типа 1-й, как-то и т.д.
на кнопке минус имхо находится вообще неизвестно что... бо настоящий минус длиннее, а дефис или короткое тире это ndash... хоть может я и ошибаюсь...
*

Physicist

  • Глобальный модератор
  • 984
  • 194 / 0
  • Рябов Денис
Re: Мамбот "Русская типографика"
« Ответ #24 : 02.02.2007, 22:24:44 »
Если попытаться учесть в обсуждаемой программе ВСЕ правила русской типографики, этот мамбот станет настоящим монстром, т. к. эти правила представляют собой целую книгу. Сомневающихся прошу ознакомится со справочником Гиленсона, где эти правила и изложены. Эта книга является своего рода Конституцией в области вёрстки русскоязычных текстов   :-)

Уже два дня изучаю (называется "Справочник художественного и технического редакторов"), плюс, нашел Шульмейстер "Ручной набор" и еще парочку книг, до которых руки не дошли. К сожалению, далеко не все правила можно автоматизировать, но постараюсь учесть всё по-максимуму.
*

Physicist

  • Глобальный модератор
  • 984
  • 194 / 0
  • Рябов Денис
Re: Мамбот "Русская типографика"
« Ответ #25 : 04.02.2007, 21:11:52 »
Подправил замену дробей 1/2, 1/4 и 3/4 на соответствующие символы - теперь замена будет делаться только если перед дробью стоит пробел (иначе, например, 21/2 заменится на два с половиной). Текущей версии присвоен номер 1.2.1.

PS. Полным ходом идет работа над версией 2.0.
*

Sedoy

  • Давно я тут
  • 897
  • 87 / 10
  • Интересно,в какой кодировке пишут врачи?
Re: Мамбот "Русская типографика"
« Ответ #26 : 05.02.2007, 11:07:09 »
Physicist бот то что надо сенкс
а дискусии на тему "минус_тире" это ловля блох по моему, куда актуальней про <p> и <br_/>, потому как <p> по умолчанию в некоторых фичах задолбало уже :)
Что б правильно задать вопрос - нужно знать на него ответ!
FAQ по Joomla!
Где скачать шаблоны Joomla Статьи и обзоры Желаю Вам здоровья в личной жизни - живите долго и часто :)

Re: Мамбот "Русская типографика"
« Ответ #27 : 05.02.2007, 12:24:55 »
11. Знак доллара ставить перед числом, а не после, и отбивать неразрывным пробелом.
Знак доллара по мнению Лебедева в русском языке должен ставиться после числа
http://www.artlebedev.ru/kovodstvo/74/

Цитата:
Как бы соблазнительно ни выглядел доллар слева от суммы, писать его в русских текстах можно только справа.  (Исключение могут составлять финансовые и биржевые тексты, но это отраслевой стандарт, который не может распространяться на остальные области.)
В русском языке единица измерения, стоящая перед значением, означает примерно столько: «долларов сто». А не писать пробел перед знаком доллара, это все равно что писать 50руб. Так себе может позволить упражняться в типографике только продавщица продмага с трафаретом и шариковой ручкой. (Исключение тут составляют финансовые документы, где отсутствие пробела страхует от приписки лишних цифр.)
*

Physicist

  • Глобальный модератор
  • 984
  • 194 / 0
  • Рябов Денис
Re: Мамбот "Русская типографика"
« Ответ #28 : 05.02.2007, 14:55:14 »
ОФФТОП: Лично я считаю, что в джумле давно пора ввести второй файл CSS для печати, чтобы он также был доступен для редактирования, как и основной. Ведь стили могут быть разными даже в плане типографики: для печати, нелишним было бы делать красную строку (отступ в первой строке текста, обрамлённого тэгами <p></p>) и установить вертикальные отступы над/под абзацем равными нулю. А вот на экране как раз можно обойтись стандартным поведением тега <P>. Несмотря на то, что оно представляет собою способ оформления абзацев в английской школе типографики, всё же для чтения с экрана он более удобен, и упрямое следование традициям тут может быть просто вредным.

Ну, это можно сделать через шаблон, добавив соответствующий стилевой файл: после строки
Код
<link href="/templates/<?php echo $cur_template; ?>/css/template_css.css" rel="stylesheet" type="text/css" />
добавить
Код
<link href="/templates/<?php echo $cur_template; ?>/css/template_css_print.css" rel="stylesheet" type="text/css" media="print" />
Правда, редактировать template_css_print.css придется вручную.
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Мамбот "Русская типографика"
« Ответ #29 : 05.02.2007, 18:11:56 »
Не знаю, как остальные, но лично я склонен согласиться с тем, что знак доллара нужно помещать после суммы и отбивать неразрывным пробелом, разумеется.
ну позиция не так принципиальна, как неразрывный пробел между суммой и символом валюты... пусть будет в конце, но неразрывный нужен обязательно.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Мастерю плагин для админки - оплата налом или по карте при самовывозе

Автор kkmspb

Ответов: 0
Просмотров: 319
Последний ответ 27.08.2024, 15:39:37
от kkmspb
Плагин LVSpoiler - спойлеры с динамической загрузкой изображений

Автор Arkadiy

Ответов: 449
Просмотров: 95719
Последний ответ 20.04.2024, 21:10:33
от Beer
Плагин StopKids для маркировки сайта знаком 18+ для Joomla 1.5-3.x

Автор ecolora

Ответов: 40
Просмотров: 20639
Последний ответ 19.03.2023, 18:55:08
от ecolora
Компонент Commedia и плагин mp3browser для медиа-сайтов

Автор ecolora

Ответов: 557
Просмотров: 121141
Последний ответ 13.03.2023, 00:25:14
от ecolora
Плагин seoLinks

Автор alexandr-spb

Ответов: 0
Просмотров: 1736
Последний ответ 26.01.2023, 23:08:41
от alexandr-spb