Typografica (UTF8 - compatible)

Прислано: sotakone@drupal.org

пт, 12/05/2006 - 06:41

http://satrim.com/typografica.zip

Написал такой вот модуль, если кому нужен - берите %). Буду рад, если выскажите свои пожелания и сообщите о найденых ошибках. Пишите либо сюда, либо на enokatos chr(64) gmail.com.
Всего доброго, Михаил.

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано MonAmur в пт, 12/05/2006 - 09:52.

что с его помощью можно реализовать?


Опубликовано sotakone@drupal.org в пт, 12/05/2006 - 13:26.

Реализует некоторые правила экранной типографики, т.е. расставляет mdash вместо минусов, кавычки "елочки" вместо дюймов и т.д.
Подробнее об экранной типографике, можно почитать, например, у Лебедева.


Опубликовано axel в пт, 12/05/2006 - 16:17.

Аналог модуля smartypants?

--
Axel,
Darcs-репозиторий разработок для Drupal


Опубликовано sotakone@drupal.org в сб, 13/05/2006 - 03:32.

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


Опубликовано Гость (гостевой логин) в сб, 13/05/2006 - 09:56.

Я так понял, модуль правит новый контент. А существующий?
Или может более простое решение - в фильтрах друпала поставить замену и все?


Опубликовано vadbars@drupal.org в сб, 13/05/2006 - 14:14.

Да, вопрос интересный. Но проблема - надо ли каждый раз при выводе информации ее заново обрабатывать, загружая сервер. Не проще ли один раз при вводе информации ее "оттипографить"? С другой стороны, возможно, что важно иметь исходный текст "на всякий случай". (На parser.ru при обсуждении подобной проблемы пришли к выводу, что лучше хранить в базе и тот и другой варианты).


Опубликовано axel в сб, 13/05/2006 - 17:27.

Модуль пока не смотрел, он чего не как модуль-фильтр работает? Если обработка реализована стандартным для друпала образом, то для "перефильтрации" старого контента надо просто сделать truncate table {cache}. Ведь фильтры обрабатывают ноды только при их создании/изменении, а потом префильтрованный html берётся из кэша.

--
Axel,
Darcs-репозиторий разработок для Drupal


Опубликовано axel в сб, 13/05/2006 - 17:28.

Понятно, тогда это имеет смысл. Посмотрю, может пригодится для этого сайта :) - сейчас у нас smartypants стоит.

--
Axel,
Darcs-репозиторий разработок для Drupal


Опубликовано sotakone@drupal.org в сб, 13/05/2006 - 18:12.

Этот модуль - обыкновенный друпаловский фильтр, т.е. он правит новый контент, добавляемый юзером, и не трогает существующий. Хотя вполне возможно что способ "отфильтровать" уже существующий контент есть - нужно посмотреть на drupal.org.

По поводу загрузки сервера. Не знаю, как в 4.6, но в 4.7 в базе хранится и отфильтрованый, и исходный вариант, т.е. при доступе к контенту фильтр заново НЕ вызывается, а отображается кэшированая версия. Это применимо ко всем фильтрам, не только к типографике.
Как вариант, можно еще обрабатывать текст посредством web-сервиса Лебедевского типографа. Это будет слегка медленнее (идет запрос через сокеты), но и обработка будет на порядок качественнее.


Опубликовано axel в сб, 13/05/2006 - 21:05.

Понятно. А способ отфильтровать старый контент я указал выше - почистить таблицу кэша. Фильтры срабатывают при первом обращении к изменённой ноде, после контент берётся из кэша - так работают фильтры в Drupal 4.5-4.7.

--
Axel,
Darcs-репозиторий разработок для Drupal


Опубликовано sotakone@drupal.org в вс, 14/05/2006 - 17:15.

Понятно, тогда это имеет смысл. Посмотрю, может пригодится для этого сайта :) - сейчас у нас smartypants стоит.

если пригодится, то будет просто замечательно :)

Понятно. А способ отфильтровать старый контент я указал выше - почистить таблицу кэша. Фильтры срабатывают при первом обращении к изменённой ноде, после контент берётся из кэша - так работают фильтры в Drupal 4.5-4.7.

угу, спасибо, буду иметь ввиду.


Опубликовано borisvolfson@dr... в пн, 15/05/2006 - 20:02.

У меня не обрабатываются многоточия, это предусмотрено функционалом модуля? И как обработаются кавычки в таком случае:

фирма "ООО "Ника"

---------------------------
С уважением, Борис Вольфсон


Опубликовано sotakone@drupal.org в вт, 16/05/2006 - 06:25.

"ООО "Ника" обрабатывается как «ООО «Ника», насколько я знаю, так и должно быть.

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


Опубликовано borisvolfson@dr... в вт, 16/05/2006 - 07:10.

субж

Оффтопик:
Не пора ли начать делать репозиторий русских модулей? Например, типографии русской. Очень интересует поиск по сайту с учетом русской морфологии, хотя бы простейшие реализации (чтобы окончание отрезалось).

---------------------------
С уважением, Борис Вольфсон


Опубликовано axel в вт, 16/05/2006 - 15:45.

Репозиторий будет открыт в скором времени, с доступом для всех желающих. Доступ - скорее всего BazaarNG + FTP. Больше инфы: http://bazaar-vcs.org
http://drupal.org/node/45368

Для поиска с морфологией пишу модуль для интеграции с mnogosearch. Хотя вырисовывается скорее не интеграция, а замена встроенного поиска.

--
Axel,
Darcs-репозиторий разработок для Drupal


Опубликовано Гость (гостевой логин) в вт, 16/05/2006 - 19:46.

И как очистить старый кэш? Подскажите, пожалуйста. Стоит Друпал 4.6.5.


Опубликовано vadbars@drupal.org в ср, 17/05/2006 - 07:49.

off: Эка расползлось! В цитатах переносы не работают, что ли? Или это "code"?


Опубликовано axel в чт, 18/05/2006 - 07:21.

Это "code". Как бы его ограничить по ширине для таких случаев, кто посоветует? В скроллбар запихнуть?

--
Axel,
Darcs-репозиторий разработок для Drupal


Опубликовано vadbars@drupal.org в чт, 18/05/2006 - 11:01.

Iframe?


Опубликовано sotakone@drupal.org в пт, 19/05/2006 - 07:41.

overflow: scroll;


Опубликовано borisvolfson@dr... в сб, 20/05/2006 - 07:40.

Пользовался модулем вот некоторые предложения:
- Сделать настройки (я бы хотел отключить расстановку неразрывных проблелов)
- Тире лучше ставить вот так:  —

Хотелось, чтобы в результате использования модуля страница оставалось валидной, а именно XHMTL Strict.

---------------------------
С уважением, Борис Вольфсон


Опубликовано MIR в сб, 20/05/2006 - 14:13.

Полностью поддерживаю на счет настроек и тире!
Может все-таки народ подскажит, как кэш сбросить, дабы контент профильтровался заново (если будет сделано тире)?


Опубликовано borisvolfson@dr... в сб, 20/05/2006 - 18:42.

Чтобы сбросить кеш, надо очистить таблицу cache, удобнее всего делать при помощи phpmyadmin или модуля dba.

---------------------------
С уважением, Борис Вольфсон


Опубликовано Гость (гостевой логин) в ср, 24/05/2006 - 05:49.

мне все-таки кажется, что «ООО „Ника“»,
то есть число кавычек не может быть нечетным


Опубликовано MIR в ср, 24/05/2006 - 12:12.

А с украинскими "і", "ї" и "є" не працюе!!!
Надо пофиксить бы!


Опубликовано sotakone@drupal.org в чт, 25/05/2006 - 05:11.

- Сделать настройки (я бы хотел отключить расстановку неразрывных проблелов)
Хорошо, учтем. Я думаю сделать это в следующей версии. Скорее всего, разделю на два фильтра: первый расставляет типографические символы, второй - неразрывные пробелы.

- Тире лучше ставить вот так: —
А оно вроде бы так и ставится. Нет? Если нет, то в каком случае?

Может все-таки народ подскажит, как кэш сбросить, дабы контент профильтровался заново (если будет сделано тире)?
Вроде бы модуль такой был, который пункт меню добавляет - "flush cache"

мне все-таки кажется, что «ООО „Ника“»,
то есть число кавычек не может быть нечетным

Неправда ваша. Если имеют место вложеные кавычки, то закрывающая кавычка только одна. По правилам пунктуации.

А с украинскими “і”, “ї” и “є” не працюе!!!
Надо пофиксить бы!

Ох. Посмотрю, может поправлю что-нибудь. Проблема в том, что, например, "i" не входит в диапазон русских символов (А-Я), а регулярные выражения основаны именно на этом диапазоне.


Опубликовано Natalie в пт, 26/05/2006 - 18:52.

*


Опубликовано x0bbit в пн, 05/06/2006 - 06:44.

У меня не работает этот модуль =( Вновь введенный текст не форматируется. В модулях включил...


Опубликовано PanDa777 в пн, 05/06/2006 - 07:16.

А в фильтрах модуль включен(которые форматы ввода)?
Материаы новые создаются (или хотя бы таблица cache почищена)?


Опубликовано borisvolfson@dr... в пн, 05/06/2006 - 08:51.

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

---------------------------
С уважением, Борис Вольфсон


Опубликовано x0bbit в пн, 05/06/2006 - 22:08.

вот что значит я новичок =) Я и не знал, что надо было обратить внимание на фильтры. Кстати исправив (tm) почему то не распознал (c). В остальном все отлично.


Опубликовано mixa (гостевой логин) в пн, 12/06/2006 - 06:01.

Даешь поддержку украинского!!!!!!
2Автор: Когда сие возможно будет заюзать? :)


Опубликовано sotakone@drupal.org в пн, 12/06/2006 - 15:14.

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

> У меня не работает этот модуль =( Вновь введенный текст не
> форматируется. В модулях включил…
в input formats нужно его добавить. лучше - в самый конец.

> Кстати исправив (tm) почему то не распознал (c). В остальном все
> отлично.
гм. в каком именно случае он не обработал (с) ? может быть, "с" русская?

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

> 2Автор: Когда сие возможно будет заюзать?
на данный момент отсечек практически не дает ). так что можно юзать уже сейчас, да )


Опубликовано x0bbit в вт, 13/06/2006 - 11:37.

нет, я проверял "с" в (c) была латинская.


Опубликовано dyp@drupal.org в ср, 13/09/2006 - 12:47.

у меня поемуто не конвертирует " в елочки. Это так задумано или у меня глюк?


Опубликовано B.X в ср, 13/09/2006 - 12:58.

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


Опубликовано Onza в ср, 13/09/2006 - 13:14.

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


Опубликовано B.X в ср, 13/09/2006 - 13:22.

"не ставит длинные тире в начале предложений."
у меня ставит... здесь посмотрите...


Опубликовано Onza в ср, 13/09/2006 - 13:41.

Ага, но у меня почему-то не ставит. Может дело и не в модуле, тогда непонятно.


Опубликовано antazy в ср, 20/09/2006 - 19:00.

хотел скачать, а сылка битая ( можт кто-нибудь сюда upload сделает этого модуля?


Опубликовано B.X в ср, 20/09/2006 - 20:25.

Здесь можно скачать... аттачментов для комментариев не предусмотрено насколько я вижу...


Опубликовано antazy в чт, 21/09/2006 - 08:02.

спасибо


Опубликовано lexa74 в сб, 23/09/2006 - 19:53.

Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of [runtime function name](). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /home/zavedimm/htdocs/modules/typografica/typografica.module on line 104
выводит вот такую пакость как захожу в управление модулями :(


Опубликовано B.X в сб, 23/09/2006 - 22:31.

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


Опубликовано Shedko в сб, 23/09/2006 - 22:38.

Написано, что используется методика вызова функции, которая уже не используется, и просто объявлена для предотвращения ошибок. Т.е. оставлена только как временная заглушка. И эта возможность скоро будет отключена. Т.е. в одной из ближайших версиях этот модуль перестанет работать.


Опубликовано B.X в сб, 23/09/2006 - 22:40.

наверное для Друпала это ничем не грозит именно в данный момент...
для новых версий всё равно придётся делать новый модуль...


Опубликовано Shedko в сб, 23/09/2006 - 22:46.

Если работает, то да пока ничем не грозит, а то обычно такие функции deprecated ничего и не делают - т.е. не обрабатывают данные.


Опубликовано Shedko в сб, 23/09/2006 - 22:46.

Если работает, то да пока ничем не грозит, а то обычно такие функции deprecated ничего и не делают - т.е. не обрабатывают данные.


Опубликовано lexa74 в вс, 24/09/2006 - 11:11.

на всех страницах над сайтом пишет это...
как отключить непонятно...


Опубликовано B.X в вс, 24/09/2006 - 12:57.

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