Типограф

Среда, 30 января 2008

«Типограф» — средство подготовки текстов к web-изданию. Форматирует текст для приведения его к более правильному с точки зрения типографики виду.



Текущая версия: 2.2.0
Online-версия
Тесты
Исходный код и тесты (PHP5)
Исходный код 1.0.6 (PHP4, не поддерживается)
Страничка проекта в Google Code.
Трекер (все ошибки пишем сюда)
SVN-репозитарий.

Если знаете, как исправить ошибки и готовы потратить на это время — пишите, дам доступ на запись в SVN.

Версия для PHP4 больше не поддерживается. Возможны проблемы с кодировками.

Авторы


Оранский Максим ( http://smee-again.livejournal.com/ )
Большая часть кода, тестирование, правила.
Макаров Александр ( http://rmcreative.ru/ )
Код, тестирование, правила, плагины для Smarty, дальнейшая поддержка.

При создании «типографа» помимо личного опыта использовались:
http://philigon.ru/
http://artlebedev.ru/kovodstvo/
http://pvt.livejournal.com/

Спасибо:
-=Ustas=-, http://vingrad.ru/@-=Ustas=-/
faZeful, http://fazeful.ru/
Naruvi (Begemot), http://priop.ru/
grasshopper
eagle
SHAman
Max
Reki
Zav
sadhaka
Алексей Волкогон

… и всем, кто пользуется типографом и сообщает об ошибках.

Отдельное спасибо Max-у за плагин к Wordpress.

Ссылки


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

Тэги: , , , , , , , , ,

Комментарии

#1 Колян 26.03.08, 15:09

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

#2 Sam 26.03.08, 15:48

Спасибо, принято.

#3 Колян 31.03.08, 13:34

Ещё наблюдение:
пишем: «в соответствии с Распоряжением Правительства РФ».
отвечает: «в соответствии с Распоряжением. Правительства РФ».

где отключить расстановку точек?

#4 Колян 31.03.08, 15:04

добавление.

„Клиника ФГУ «ФБМСЭ» согласно Лицензии…“

заменяется на

„Клиника ФГ. У «ФБМСЭ» согласно Лицензии…“

#5 Sam 31.03.08, 15:10

Спасибо. Обязательно поправлю в следующей версии.

#6 Илья 04.04.08, 01:52

При типографировании строчки вида
тел. 123-45-67 выдаёт ошибку

A PHP Error was encountered
Severity: Notice
Message: Uninitialized string offset: 3
Filename: libraries/Typographus.php
Line Number: 119

и результат не радует

[span style="white-space:nowrap"]тел: 1 (23) [/span]–45–67

#7 Sam 04.04.08, 13:12

Спасибо, поправлю в следующей версии.

#8 Илья 09.04.08, 17:36

Вот это правило не годится при наличии в тексте висячих дефисов
// Оторвать тире от слова
'~(w)- ~' => '$1 - ',

Пример:
газо- и электросварка
превращается в
газо — и электросварка

#9 Sam 09.04.08, 18:12

Поправлю. Спасибо.

#10 Илья 12.04.08, 15:14

Вот ещё баг: некоторые сокращения (например, МГУ, ГУМ и т.п.) неверно обрабатываются.
Получается МГ. У и Г. УМ соответственно.

#11 Илья 12.04.08, 16:01

Дробные числа (например, число 625,35) не должны разделяться пробелом.

P.S. Если не подписываться на комментарии при отправке поста вылетают ошибки.

#12 Sam 12.04.08, 16:59

Спасибо.

#13 Антон Иконников 15.05.08, 23:02

Время неправильно обрабатывается.(ненужных пробел после двоеточия)
Например 22:33 => 22: 33

#14 Sam 16.05.08, 03:57

Спасибо.

#15 Serhiy 18.05.08, 00:08

А будет ли вариант для других языков, например немецкого (использую UTF-8)?

#16 Sam 18.05.08, 15:51

Serhiy
Будет, если дадите описание праил немецкой типографики.

#17 Serhiy 18.05.08, 18:17

Очень детальное описание всех случаев дано в Википедии (на немецком, но там все в примерах и очень наглядно):

Для типографского текста
http://de.wikipedia.org/wiki/Geviertstrich (описание на символ вибирается справа вверху)

для Веба
http://de.wikipedia.org/wiki/Typografie_für_HTML (там внизу есть еще дополнительные линки. Часто повторы, но кое-где информация более обширная)

#18 Sam 18.05.08, 18:20

Почитаю. Шанс, что будет профиль для немецкого есть.

#19 Николай Громов (nicothin) 11.06.08, 17:13

вот бы его к WP плагином!!!

#20 Sam 11.06.08, 17:15

Есть в комплекте плагин.

#21 Николай Громов (nicothin) 11.06.08, 22:49

лично у меня при активации плагина вылетает ошибка :(

Warning: require_once(Typographus.php) [function.require-once]: failed to open stream: No such file or directory in /home/nicothin/www/site6/public_html/wp-content/plugins/TypographMachine/typograph_machine.php on line 15

Fatal error: require_once() [function.require]: Failed opening required 'Typographus.php' (include_path='.:') in /home/nicothin/www/site6/public_html/wp-content/plugins/TypographMachine/typograph_machine.php on line 15

PHP5 у меня (на Петерхосте) включается внесением двух строк в .htaccess
пробовал добавлять строки к корневой .htaccess и в .htaccess директории wp-admin - всеравно фатал еррор :(

#22 Sam 12.06.08, 16:23

Надо положить Typographus.php в /wp-content/plugins/TypographMachine/

#23 Николай Громов (nicothin) 13.06.08, 00:34

я догадался :)
буду эксперементировать с настройками хоста.

#24 Антон Иконников 25.06.08, 10:09

В таком тексте "Жопа с кавычками..." закрывающие кавычки в елочки не преобразуются.

#25 Sam 25.06.08, 13:37

Преобразуются. Проверьте: http://typo.rmcreative.ru/.

#26 Octane 05.07.08, 19:08

А почему перед тире не вставляется неразрывный пробел? Ведь тире нельзя переносить на следующую строку.

#27 Sam 06.07.08, 15:49

Должен ставится. С каким текстом проблема?

#28 Octane 06.07.08, 16:47

Когда 2 подряд идущих дефиса преобразуются в тире, то перед ним не вставляется неразрывный пробел. screenshot

#29 Ярослав 10.07.08, 10:50

Типограф перед всеми большими буквами ставит точки? Такое даже в фичах вроде не написано.
Пример: «совместно с художником Рерихом» преобразуется в «совместно с художником. Рерихом».

#30 Ярослав 10.07.08, 10:53

Да, и указанная в файле с классом ссылка http://rmcreative.ru/article/programming/typograph/ не работает.

#31 Sam 10.07.08, 12:54

Octane, Ярослав
Спасибо. В следующей версии поправлю.

#32 Денис 11.07.08, 12:56

А будут ли в следующей версии исправлены/добавлены правила, которые сейчас неадекватно работают (ошибки в тестах)? И когда примерно ждать новую версию?
Спасибо.

#33 Sam 11.07.08, 13:04

Большинство будет. Сейчас уже многое исправлено. Ну и тесты конечно же сильно пополнились.

Дат называть пока не буду…

#34 егор 13.07.08, 02:52

строка "вася - лох" типографится как "вася — лох", т.е. между словом и последующим тире не стоит неразрывного пробела.

#35 егор 13.07.08, 03:02

ещё один забавный тест: строка "Приветствуем Вас" типографится как "Приветствуем. Вас" )))

#36 Sam 13.07.08, 23:24

егор
Спасибо, исправлю в следующей версии.

#37 Денис 18.07.08, 18:24

На данный момент «типограф» умеет
— Заменять два-четыре знака точки подряд - на знак многоточия.
— Заменять от 2-х до 5-и точек подряд на троеточие.

Не многовато ли? :)

#38 Sam 18.07.08, 18:42

Многовато :) Спасибо.

#39 егор 27.07.08, 00:08

ну так чо там с новой версией? как часто вобще они выходят? )

#40 Sam 27.07.08, 13:18

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

#41 Пётр 03.08.08, 14:35

Спецсимволы введённые с клавиатуры (« » “ ” — … © ™ ' ®) не обрабатываются, а должны заменяться на соответствующий код (« » “ ” — … © ™ ' ®).

#42 Антон Иконников 05.08.08, 12:16

Вот в таком тексте все пробелы и переводы строки сжираются:

Смайл :(
Жопа

#43 Sam 05.08.08, 15:24

Пётр, Антон Иконников
Внёс в todo.

#44 Антон Иконников 06.08.08, 11:34

А еще типограф простое русское слово ЗАГС не любит.

Вообще, как мне кажется, очень много проблем в типографе от того, что он пытается решить задачу исправления всего и вся, в частности всевозможных опечаток (например, тоже удаление любых пробельных символов после скобки). Мне думается, что это в корне неверно. Типограф должен облегчать жизнь пользователю, которому очень неудобно при наборе текста вставлять длинные тире и неразрывные пробелы. А вот пытаться исправлять текст за теми, кто искренне верит, что перед запятой надо пробел ставить, бесполезно.

#45 Денис 06.08.08, 11:45

Антон Иконников, такие мелочи, как пробел перед запятой можно бы и исправить, это улучшает читабельность текстов, а вот что-то серьёзное, типа разбивка тел. номера на составляющие - явно лишнее и должно включаться опционально...
Предлагаю сделать базовый функционал (замены знаков, расстановка кавычек, неразрывных пробелов) по умолчанию, а все остальное - пусть включается набором методов или параметров...?

#46 Sam 06.08.08, 13:37

А почему бы и не сделать…

#47 brainsolid 07.08.08, 20:44

Установил вашу версию плагина для Wordpress. Со своими задачами плагин справляется на ура, но есть одна неполадка. После активации плагина ломается вывод текста, который реализован через функцию excerpt: вместо 55 слов выводится вдвое больше. Буду очень признателен, если вы поможете устранить эту мелочь - она-то мелочь, но очень портит жизнь.

#48 Sam 08.08.08, 12:42

Версия WordPress какая?

#49 Александр М. 09.08.08, 02:24

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

#50 Антон Иконников 09.08.08, 10:35

Я бы в строках 313, 314 (в версии 2.1.0) заменил s на один пробел (может быть еще табуляцию добавить). Тогда типограф не будет удалять переводы строк, если строка начиналась или оканчивалась скобкой, что мне кажется излишним.

#51 brainsolid 09.08.08, 12:05

Sam, WP последний, 2.6

#52 brainsolid 09.08.08, 12:06

я случайно подписался на комментарии, отпишите меня, пожалуйста.

#53 Пётр 09.08.08, 15:45

Присоединяюсь к brainsolid, отпишите от комментариев.

#54 Александр М. 09.08.08, 18:41

Sam, у тебя в инфо написано, что ты работаешь на позиции Java Developer-а. Допускаю, что тебе вполне по силам будет реализовать версию Типографа Ява-скриптом. В таком случае к штатному редактору WP (TinyMCE) можно добавить кнопку "Оттипографить". После обработки Типографом можно будет тут же внести корретировки в случаях нежелательной обработки или ошибок. После чего, нажав кнопку "Сохранить", готовый и правильный текст добавится в базу и будет опубликован.

Нечто подобное делает уже упомянутый мной Кавычкер (http://mbyte.org.ua/ - не понимаю почему ссылки на него вырезаются?), но к его недостатку можно отнести то, что он типографит одновременно с нажатием кнопки "Сохранить". Это лишает автора возможности исправить ошибки в оттипографленном тексте.

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

В идеале хотелось бы редакторонезависимой возможности типографить, т.к., лично у меня, нет возможности использовать, являющийся более распространенным в настоящее время редактор - TinyMCE. Я использую FCKEditor For Wordpress - http://wordpress.org/extend/plugins/fckeditor-for-wordpress-plugin/

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

p.p.s.: не хочешь сделать описания ограничений в комментариях? Непостижимым, для меня, образом из моих комментариев некоторые ссылки вырезались полностью, а некоторые былы заменены ссылками на эту (?!) статью. Да и форматирование работатет как-то не совсем очевидным образом.

#55 Антон Иконников 10.08.08, 11:00

В правилах преобразования дефисов в длинное тире (строки 350-353) ошибка - съедаются переводы строк в прямой речи. Например,

Вася:
- Иду в лес!

#56 Sam 12.08.08, 16:07

Все, кто хочет отписаться — снимайте галочку «Подписаться на комментарии» и напишите что-нибудь. Знаю, что не очень удобно, но пока так…

Александр М.
Java Developer — это не про JavaScript ;) Реализовать могу, но времени нужно прилично. Если сделаю, то не очень скоро.

На кавычкер ссылки порезались случайно. Правда ;)

Про комментарии учту. Вообще в качестве разметки используется bbcode, принятый на форумах. HTML запрещён полностью.

Всем
Огромное спасибо за ценные замечания.

Антон Иконников
Отдельное спасибо.

#57 Пётр 12.08.08, 20:20

Робокоп.

#58 Антон Иконников 16.08.08, 09:29

- У меня тоже нет, — сказала лиса, — а я хвост в прорубь закинула, вот на него и наловила.
После третьего тире появляется лишняя запятая, видимо из-за союза а.

#59 Денис 21.08.08, 14:35

Sam, а может все таки не будем за пользователем ничего исправлять (я про добавление запятых)?! Это не цель типографа... Тем более, что есть случаи в которых исправления в орфографии/пунктуации текста нежелательно вообще!

#60 Sam 21.08.08, 14:53

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

#61 егор 21.08.08, 22:20

предлагаю перевести всё-таки скрипт в utf-8 и заменять на реальные символы а не на « и пр., а то после htmlspecialchars() становится всё ужасно... ну и я конечно тоже против проверки орфографии и пр., нужна только замена тире, кавычек и многоточия...

#62 егор 21.08.08, 22:20

правка:
заменять на реальные символы « а не на « и пр.

)))

#63 егор 21.08.08, 23:18

не преобразуется последняя кавычка

компания "говно"

#64 Sam 22.08.08, 14:17

егор
Может быть поможет:


$typo->setOpt(self::HTML_ENTITIES, false);

#65 Igor 17.09.08, 09:37

info - файл для 6-го друпала следующий:

; $Id: typographus.info,v 1.0 2007/09/25 13:03:33 rmcreative Exp $

name = Typographus
description = Форматирует текст для приведения его к более правильному с точки зрения типографики виду.
package = "Фильтры форматов ввода"
dependencies[] = filter
core = 6.x
project = "typographus"
version = 1.0

Поправьте. А так вроде работает. Только не понял, расстановка nobr иногда глючит почему-то только локально на Денвере.

#66 Igor 17.09.08, 09:43

Пардон, уже оказывается поправлено, я давно скачивал.

#67 Суханов Дмитрий 17.10.08, 18:55

<a href='' class="all">"квант"</a> тра тата <a href='' class='all'>"квант"</a>

заменяет на

<a href='' class="all">«квант»</a> тра тата <a href='' class='all'>«квант"</a>

#68 Sam 17.10.08, 18:59

Суханов Дмитрий
Спасибо.

#69 Dr.Death 17.10.08, 22:23

Сдается с 20 октября -> Cдается с. 20 октября
думаю ошибка

#70 Dr.Death 17.10.08, 22:26

пл. – 125 м2, 4 этаж -> пл. – 125 м. 2, 4 этаж :(

#71 Dr.Death 17.10.08, 22:28

3/8этажного -> 3/8этажного
з.ы. пока хватит :)

#72 Sam 17.10.08, 22:29

Dr.Death
Спасибо. Конфликт правил вышел…

#73 Антон Иконников 20.10.08, 11:08

А еще логично, как мне кажется, применять пользовательский SafeBlock до встроенных, а не после. Например потому, что иначе пользовательский блок, выполненный в виде комментариев (&lt;!-- no typo --&gt;) обрабатываться не будет.

#74 Михаил 24.10.08, 15:45

С WordPress 2.6.3 отказывается работать, точнее активироваться, так как вызывает фатальную ошибку...

#75 Егор Вербицкий 27.10.08, 15:36

А случайно не планируется реализация правил со страницы http://typograf.ru/flog/, например:
* Расстановка дефиса перед -то, -либо, -нибудь
* Расстановка дефиса перед -ка, -де, -кась
и другие? Было бы классно!

Очень хочется новой версии :))

#76 Sam 27.10.08, 15:45

Планируется, но тут надо очень аккуратно делать…

#77 Егор Вербицкий 27.10.08, 16:48

Жду с нетерпением :)

#78 Михаил 27.10.08, 18:39

На Word Press 2.6.3 кто нибудь тестил?
Или это у меня только он не хочет работать?

#79 Sam 27.10.08, 18:41

Тестили. Не работает с последним WP. Попробую зафиксить…

#80 Михаил 27.10.08, 18:46

Спасибо буду очень ждать.

#81 Филатов Дмитрий 07.11.08, 19:12

Неправильно обрабатываются строки вида:
10×10

На выходе какая-то ботва:
10Ч10

#82 Sam 10.11.08, 17:47

Филатов Дмитрий
Вот такое зафиксить не очень просто т.к. корёжит символ iconv ещё при инициализации типографа…

#83 Филатов Дмитрий 10.11.08, 18:15

Можно попробовать перед iconv заменять такие символы на энтити.
Хотел прикрутить ваш типограф к себе вместо своего, но такие моменты сразу оттолкнули...

#84 Sam 10.11.08, 19:08

Кстати, да… попробую.

#85 Igor 11.11.08, 19:55

Сделал на твоем классе плагин к редактору FCK.
Подобрать здесь.
http://drupal.ru/files/typograf2.zip

#86 Sam 11.11.08, 20:11

Спасибо. Включу в следующую версию.

#87 Михаил 12.11.08, 03:12

Igor под какую версию FCK сделан плагин?
У меня движок использует FCK, но он не хочет работать с плагином...

#88 Михаил 12.11.08, 04:45

Почему-то &times; заменяется на Ч .
При повторном редактировании страницы очень убивает ={

#89 Igor 12.11.08, 08:42

Версия
FCKeditor 2.6.3

#90 Igor 12.11.08, 08:45

Т.к. настраивал на Друпале - проверю, может что специфичное от друпала прикрутил. Поправлю - отпишусь.

#91 Сергей 12.11.08, 09:30

не понимает букву ё в кавычках: "всё" превращается в «всё"

#92 Igor 12.11.08, 09:35

Проверил, немного подправил поиск файла типографа typographus.php
Кстати, важно плагин пока работает только с кодировкой UTF-8.
Ссылка на обновленный файл.
http://drupal.ru/files/typograf2_0.zip

#93 Сергей 12.11.08, 10:03

to Igor:
никак не могу завести ваш плагин :( (Денвер, FCK 2.6.3, с Друпал 6.6 и без него)
картинка http://drop.io/ozid9vp/asset/fck-tipo , фаербаг говорит ошибка.

#94 Igor 12.11.08, 10:36

Извиняюсь, считаем ЭТО alfa версией, не проверял на др броузерах. Сейчас проверил - заработало только на ослике.

#95 Михаил 12.11.08, 13:02

По поводу FCK пришлось пока просто на выход повесить php typograf нужно проект запускать, потом уже если не будет решений можно писать плагин.
По поводу "всё" превращается в «всё", это касается не только буквы Ё, такая проблема есть еще в примере:
«Федерации Любителей Декоративных Животных (клубы „ОЛМС“, „Москва“, „Морские свинки Петербурга“, „ШиКС“,
изначально Федерации Любителей Декоративных Животных была в "".

#96 Лютиков 19.11.08, 10:06

Пробелы перед смайликами удаляет.

#97 Антон Иконников 19.11.08, 12:24

- Прямая речь!
Вставляет лишний пробел перед тире.

#98 Антон Иконников 21.11.08, 13:33

Не совсем уверен, что все правильно описываю, но все же...

Типографим следующую строку:
"Умирает старый еврей - признанный в округе мастер заварки чая. Собрались вокруг родственники и уговаривают его: - Не дай умереть твоему искусству вместе с тобой, расскажи тайну своего мастерства."

Как я понял, правило обработки прямой речи в строке 376 файла Typographus.php должно было перенести "- Не дай умереть..." на новую строку. Но этого не происходит.

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

#99 Дмитрий Хайретдинов 22.11.08, 19:04

Пишу
«Убирает лишние знаки??»
Получаю
«Убирает лишние знаки??»
(двойной знак в конце стоки)

#100 Сергей М. 25.12.08, 16:45

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

#101 Sam 25.12.08, 16:51

Поддерживаем. Помощь не помешает. Стучите в асю/jabber/email.

#102 Александр М. 27.12.08, 11:42

Редакторонезависимая кнопка на Яве "Оттипографить текст" еще в проекте? Очень нужна! Хотелось бы видеть :)

#103 Sam 27.12.08, 12:55

Александр М.
Пока не в поекте. Есть уже готовый типограф на JS: devanagari. Можете попробовать прикрутить его.

#104 Igor 31.12.08, 17:48

Доделал (точнее переделал полностью) плагин для FCK на базе этого (и 2-х других) типографа.
Смотрим тут: Типограф - плагин к FCK

#105 afgm 26.01.09, 21:13

не такого знака троеточие
http://gramota.ru/spravka/buro/29_206370

#106 anup 13.02.09, 04:45

Прежде всего, спасибо за отличный модуль! :)

Вот только использование W в выражении

'/(?<=s|^|W)('.$prepos.')(s+)/i' => '$1'.$sym['nbsp'],

на некорых сборках pcre, (в частности на той, которую я использую), работает не корректно. Т.е. приводит к тому, что неразрывный пробел вставляется почти между всеми словами.

Было бы хорошо, если бы типограф работал вне зависимости от W.

Пока что, я в своей версии |W просто убрал.

#107 anup 13.02.09, 05:39

Но главная проблема в том, что не работает модификатор i в preg_replace.
Если использовать UTF-8, то там предусмотрен ключ u, который помогает обойти проблемы с русскими буквами. А в WINDOWS-1251, например, получается, что все предлоги в начале предложений (т.е. написанные с большой буквы) типограф не обнаруживает и неразрывный пробел после них, следавательно, не ставит.

#108 Sam 13.02.09, 12:52

anup
Спасибо. Проблема известная. Ядро уже переписано на UTF-8. Осталось портировать правила…

#109 Sergant 17.02.09, 13:32

Прежде всего, спасибо за Ваши труды!
Продукт нужный и полезный, но не типографит средних текстов, к примеру:
"<P>За последний месяц киевский мэр охватил дополнительной платой практически все, что есть в Киеве. Начиная от медицинских услуг, заканчивая похоронами. Черновецкий даже раскошелился на <A href="...">торжественную церемонию похорон "любимых бабушек" по особому сценарию.</A></P><P>В распоряжении "Украинской правды" оказалось еще одно официальное распоряжение Киевской городской администрации, подписанное лично Леонидом Черновецким о новых инициативах столичной мэрии по наполнению городского бюджета.</P><P>При первоначальном прочтении письмо больше напоминает выдержку какого-то сюрреалистического романа о животных.</P><P><I>"п.2 Немедленно дать предложения по создание мониторинговой группы, которая будет контролировать звонки по всей Украине. Программа за телефонные звонки по Украине за консультации по котикам – 1 млрд. грн. Дайте мне каждый в отдельности концепцию, как мы сможем добывать звонки со всей Украины.</I></P><P><I>п.2 Берзиной и Панченко доложить немедленно, как они собираются создавать мониторинговую группу типа 051 или все переключить на 051?</I></P><P align=left><B><I>К. Бектурсунову<BR></I></B><I><BR>Дать рекламу по всей Украине, чтобы звонили Берзиной платно и выясняли, как котику животик вылечить.</I></P>"

Результат работы - строка в 0 символов...
Ну и конечно, хочеться увидеть UTF-8 версию.

#110 T-34 28.02.09, 21:18

Еще хочется, чтобы слова, написанные через дефис, заключались в nobr

#111 Роман 01.03.09, 13:01

Обнаружил небольшой баг: Если в тексте встречаются 2 подряд идущие переводы строк (<br><br> или <br /><br />) -- класс возвращает пустую строку вместо текста

#112 kosenka 02.03.09, 11:34

может я чего не понимаю, но не сработало на тексте:

"'ФОТКУ НЕ ПРИНИМАТЬ!!! И НЕ ОТКЛОНЯТЬ!!!'"

как я понимаю, должно было получиться:

&laquo;'ФОТКУ НЕ&nbsp;ТРОГАТЬ!!! НЕ&nbsp;ПРИНИМАТЬ&nbsp;И&nbsp;НЕ&nbsp;ОТКЛОНЯТЬ!!!'&raquo;

но не получилось :(

#113 Sam 12.03.09, 14:30

kosenka
Это какой-то уж очень странный входной текст. Что должна означать комбинация «"'»?

#114 Antonio 13.03.09, 04:59

А плагин «Типограф» для миранды планируется?

#115 Sam 13.03.09, 15:50

Нет.

#116 Liri 18.03.09, 17:04

Если закрывающая кавычка стоит перед пробелом с "и" ("бла-бла" и бла-бла), пробелом с открывающей скобкой ("бла-бла" (бла-бла)), точкой в конце текста она преобразуется не в &raquo;, а в &quot;.

#117 Sam 18.03.09, 18:27

Liri
В онлайн-версии подтверждается?

#118 Liri 19.03.09, 15:24

Sam
В онлайн-версии, вроде все заменилось нормально.

#119 Sam 19.03.09, 20:13

Код в архиве и в онлайн версии один… какая кодировка использовалась?

#120 Liri 23.03.09, 16:20

Sam
Кодировка UTF-8.

#121 Sam 23.03.09, 17:22

В онлайн она же…

#122 idle 15.04.09, 13:00

Максим, Александр, а как вам такое:

Создать на диске С: компьютера №11 папку с именем “Рабочая”.


превращается в

Создать на диске С: компьютера №11 папку с именем «Рабочая”.



Или такое:

Тема падения и духовного возрождения человека в произведениях Ф.М. Достоевского. (По роману «Преступление и наказание» или «Идиот».) <em>Тема маленького человека» в романе Ф.М. Достоевского «Преступле ние и наказание». </em>


превращается в

Тема падения и духовного возрождения человека в произведениях Ф.М. Достоевского. (По роману «Преступление и наказание» или «Идиот“.) <em>Тема маленького человека» в романе Ф.М. Достоевского «Преступле ние и наказание». </em>

#123 Sam 15.04.09, 15:42

idle
Подтверждаю. Баги. Править надо…

#124 Dr.Holerik 11.05.09, 14:01

Воспользовался Типографом. Сначала обработал пару текстов, заметил свои ошибки. Попробовал обработать html-код… удивительно — обрабатывает! Это просто гигантский плюс! Однако с представлением всей этой разметки косяки — при совпадении #id и .class они конфликтуют с элементами RMCreative. Это выглядит следующим образом.
Полагаю, стоит изолировать обрабатываемый html от CSS RMCreative, возможно написать специальные стили.
Так же странно, что не сохраняется форматирование html. Это было бы актуально.

P. S. Спасибо за замечательный инструмент для приведения страниц к корректному виду. Рад буду видеть Типограф с возможностью интерфейсной настройки форматирования и вставки символов.

#125 Dr.Holerik 11.05.09, 16:21

При обработке некоторых страниц одна и та же ошибка PHP:


A PHP Error was encountered

Severity: Notice

Message: iconv() [function.iconv]: Detected an illegal character in input string

Filename: libraries/typographus.php

Line Number: 176

#126 Graker 08.06.09, 16:52

Добрый день.

Скачал исходники Типографа, сделал модуль под Drupal6 (только удалил часть правил). Оставшиеся правила (копирайты-трейдмарки, многоточия, плюс-минусы, кавычки, тире с неразрывными пробелами, проценты, IP, короткое тире, удаление лишних пробелов) сделал опциональными. Настраиваются опции через админку друпала, там же сделал добавление сейф-блоков, работает все в UTF-8, жестко, без iconv. Обозвал получившийся модуль Lite-версией 0.5.

Собственно, интересуюсь у начальника сайта: Александр, можно ли мне на своем сайте выложить исходники сделанного модуля? Понятно, со ссылками к вам, сюда.

#127 Sam 08.06.09, 17:07

Graker
Выкладывайте.

#128 Graker 08.06.09, 22:06

Спасибо.

Выложил: http://graker.ru/typofilter .

#129 illusive 18.06.09, 20:49

Есть проблемы с типографикой хтмл размера с статью, например, вообще не типографит следующий код:


<p style="text-align: center;"><img title="Зенд Сервер" src="/articles/67/zend-server-ce-screens.gif" alt="Зенд Сервер" /></p><p><a title="Zend Server Community Edition" href="/goto/?url=http://www.zend.com/community/zend-server-ce" target="_blank">Zend Server </a>от компании <a title="Zend Technologies" href="/goto/?url=http://zend.com/" target="_blank">Zend Technologies</a> стал общедоступным! Используя <a title="Zend Server Community Edition" href="/goto/?url=http://www.zend.com/community/zend-server-ce" target="_blank">Zend Server</a>
Вы получаете грамотно настроенный веб-сервер с оригинальной панелью
управления сервером, которая предоставляется ввиде веб-интерфейса.
Продукт ориентирован на интеграцию с другими продуктами <a title="Zend Technologies" href="/goto/?url=http://zend.com/" target="_blank">Zend</a>, что идеально подходит для <a title="Zend Framework Community Site" href="/goto/?url=http://framework.zend.com/" target="_blank">Zend Framework</a> программистов.</p><p>Используя эту сборку Вы будете экономить кучу времени - установщик сделает множество задач за Вас.</p><p>Основные фичи:</p><ul><li>Веб-интерфес для управления сервером. Все для Ваших удобств и комфорта</li><li>Качественная подборка серверного ПО, которое предназначено для установки на продакшн сервер!</li><li>Также есть и кроссплатформенные сборки под Mac, Linux, Windows</li><li>Базовая оптимизация серверной конфигурации для увеличения производительности и уровня безопасности.</li><li>Поддержка самых восстребованых баз данных.</li><li>Обновления и хот-фиксы</li><li>Интерграция с Zend Studio</li><li>Высокая производительность и экономия системных ресурсов</li></ul><p>Одной
из наиболее интересных вкусностей для администраторов серверов является
возможность автоматической установки патчей и хот-фиксов для Zend
Server, что позволит поддерживать <strong>ПО сервера</strong> в актуальном состоянии без лишнего труда.</p><p>Так как <strong>Zend Server</strong>
ориентирован и на установку для продакшн серверов, то основной упор
разработчики сделали на *nix подобные системы. Ну и не зря, как
свидетельствует статистика 75% разработчиков пишут программный код на
Windows, а продакшн версии, 95% разработчиков, размещают на
*nix-подобных системах.</p><p>Если Вы работаете с <em>Zend Framework</em>,
то я могу Вас обрадовать - он включен в поставку продукта. Программное
обеспечение сервера сконфигурировано и оптимизировано также и для
работы <strong>ZF</strong>, то позволит <strong>ускорить работоспособность</strong> Ваших ресурсов довольно существенно:</p><ul><li>Уменьшение потребления памяти</li><li>Меньше активных сетевых соединений</li><li>Существенно меньше обращений к базе данных</li></ul><p>По предварительных <a title="Замеры производительности Zend Server" href="/goto/?url=http://2bits.com/articles/benchmarking-zend-server-community-edition-drupal.html" target="_blank">подсчетах</a> производительность <em>Zend Server</em> на <strong>15%</strong>
выше от производительности связки PHP+APC! И это только комьюнити
версия, интересно что творится в коммерческой? И при тестировании не
использовался <strong>Zend Framework</strong>, если же учесть тот факт, что под
фреймворк тоже есть оптимизации и заточенные решения, то логично, что
производительность проектов на <span style="text-decoration: underline;">Zend Framework</span> вырастет еще больше!</p><p>&nbsp;</p><p><img style="margin: 10px; float: right;" title="Zend Framework" src="/articles/67/zf.jpg" alt="Zend Framework" width="100" height="105" /></p><p>В
плане маркетинга, компания позиционирует данный продукт как
корпоративный, поэтому регулярные обновления/исправления гарантируются,
что тоже является не мало важным аспектом. <strong>Zend Server</strong> также призван популяризировать продукты <span style="text-decoration: underline;">Z</span><span style="text-decoration: underline;">end </span><span style="text-decoration: underline;">Technologies</span>,
компания использует такой ход чтобы максимально завоевать рынок пока на
нем нет крупных игроков, т.е. компания использует свое выгодное
положение и покоряет все новые пространства.</p><p>&nbsp;</p><p>Как всегда Zend не перестает меня удивлять и как всегда буду изучать новые фичи и инструменты от Zend!</p><p>&nbsp;</p><p>Не
успеваеш изучить одно, как выходит что-то другое. Действительно
компания Zend сделала очень многое для поддержки PHP и его развития!</p>

#130 Сергей 06.07.09, 14:22

Спасибо за типограф!

Единственное пожелание: в функции apply_rules необходимо сделать проверку на возвращаемое значении preg_replace.
Т.к. очень часто возникает ошибка PREG_BACKTRACK_LIMIT_ERROR, в результате чего типограф возвращает значение NULL и весь переданный текст теряется. Сегодня потратил несколько часов прежде чем понял, в каком месте ошибка.

Подробнее об ошибке: http://ru.php.net/manual/en/function.preg-replace.php#84285

#131 alexander 11.08.09, 09:41

Проблемы с текстом вида:

СРОЧНО!!!Продам шикарное белоснежное свадебное платье!Купленное в магазине "БЕЛАЯ ЛЕБЕДЬ"(за 35 т.р) в феврале 2009г. перчатки,бижутерия,шубка.Состояние идеальное,после хим. чистки.Размер 42-46(корсет регулируется)Очень пышное!

Ошибки:
1) Непарные кавычки вокруг "Белая Лебедь"
2) Не проставлены пробелы до/после точек и скобок

#132 Sam 11.08.09, 13:33

Спасибо.

#133 Тормоз 30.08.09, 17:41

Эх, такая клёвая штука могла бы быть.
Но, открыв код радость пропала.
Зачем вообще нужны какие-то ещё кодировки кроме UTF-8?
Сам файл явно в cp1251 и там ещё в нём что-то про неё написано.
Грустно немного, потому что часто натыкался на твой блог из поиска по интересным техническим вопросам.

#134 Sam 30.08.09, 18:25

> Зачем вообще нужны какие-то ещё кодировки кроме UTF-8?
Писалось давно. Следующая версия будет с UTF-8.

#135 Павел 30.10.09, 16:26

>Телеканал "2*2 на Волге" переходит под контроль "СТС-медиа".
типографируется в
>Телеканал "2×2 на Волге» переходит под контроль «СТС-медиа».

Решил изменением регулярки для слова
>$word = '[a-zA-Zа-яА-Я_]';
на
>$word = '[a-zA-Zа-яА-Я0-9_]';

Вроде ничего сломаться не должно

#136 Павел 03.11.09, 12:00

“Незнаю”
типографируется в
«Незнаю”

Исправил добавлением в $_sym двух элементов:
'lquote3' => '“',
'rquote3' => '”',

и правкой переменной $any_quote
$any_quote = "(?:$sym[lquote]|$sym[rquote]|$sym[lquote2]|$sym[rquote2]|$sym[lquote3]|$sym[rquote3]|&quot;|")";

Хотелось бы узнать у автора - это правка ничего не сломает?

#137 Павел 03.11.09, 12:32

Так же типограф не знаком с кавычками-сущностями такими как ” и “ - исправляется вышеуказанным образом.

#138 Павел 03.11.09, 12:33

ldquo; и rdquo;

#139 Sam 03.11.09, 16:27

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

#140 hexes 11.12.09, 07:18

#134 Sam 30.08.09, 18:25
> Зачем вообще нужны какие-то ещё кодировки кроме UTF-8?
Писалось давно. Следующая версия будет с UTF-8.

ОЧЕНЬ ждем!!!
Подключил к CakePHP из за смены локали БД стала отдавать даты в "корявой" локали, и их перестал принимать strtotime... Версия с UTF без смены локали очень бы помогла!

#141 idle 17.12.09, 07:42

Александр, в исходном коде типографа орфографические ошибки, н.п. «припенания». Ай-яй.
Возможно есть смысл выложить исходники на более распространенный svn-хостинг? В том же код.гугл issue-трекер более понятен, чем на Ассембле. Вот в него бы и запихать накопившиеся репорты. И на него бы ссылаться отсюда.

#142 Sam 18.12.09, 00:47

Да, пожалуй, стоит. Займусь в ближайшее время.

#143 Onore 03.02.10, 12:55

Будет ли в новой версии с UTF-8 работать существующий плагин для FCKeditora?
И когда же ожидать новую версию...

#144 Sam 04.02.10, 12:32

Работать будет. Скоро будет собрана ещё одна не UTF-версия. Когда будет готова UTF пока сказать не могу.

#145 Женя 16.02.10, 14:06

А как сделать такую же страничку — http://rmcreative.ru/typograph/? :)

#146 Максим 20.02.10, 00:25

Подскажите пожалуйста можно ли подключить typograp на сайт написан на php или html!? a не на wordpress, drupal и т.д., если можно то как???

#147 Sam 20.02.10, 13:12

Можно. Смотрите API, разбирайтесь. Сайты бывают разные.

#148 Максим 21.02.10, 15:28

Если кто знает подробнее распишите пожалуйста! а сайт просто на html написан.

#149 Sam 22.02.10, 14:06

Если просто на HTML, возможности подключить типограф нет.

#150 Максим 22.02.10, 20:23

а если в php то как? я все перелопатил не получается у меня никак...(((

#151 Sam 23.02.10, 00:38

Вот на этой странице всё описано. То есть берёте свой текст и прогоняете через метод process.

Оставить комментарий




Подписаться на RSS

Интересное

Разделы

  1. (5)
  2. (11)
  3. (6)
  4. (9)
  5. (6)
  6. (6)
  7. (16)
  8. (59)
  9. (264)
  10. (51)
  11. (16)
  12. (12)
  13. (37)
  14. (5)
  15. (10)
  16. (14)
  17. (18)
  18. (12)
  19. (6)
  20. (8)
  21. (7)
  22. (29)
  23. (62)
  24. (18)
  25. (64)
  26. (5)
  27. (193)
  28. (56)
  29. (6)
  30. (18)
  31. (72)
  32. (27)
  33. (65)
  34. (32)
  35. (10)
  36. (5)
  37. (6)
  38. (5)
  39. (309)
  40. (11)
  41. (6)
  42. (12)
  43. (8)
  44. (18)
  45. (6)
  46. (15)
  47. (114)
  48. (18)
  49. (6)
  50. (8)
  51. (66)
  52. (16)
  53. (6)
  54. (17)
  55. (5)
  56. (26)
  57. (7)
  58. (27)
  59. (7)
  60. (12)
  61. (11)
  62. (118)
  63. (31)
  64. (5)
  65. (18)
  66. (22)
  67. (9)
  68. (6)
  69. (8)
  70. (41)
  71. (10)
  72. (6)
  73. (12)
  74. (8)
  75. (5)

Друзья