Jevix — система автоматического применения правил набора текстов (типографика) разработанная в ТМ™ для собственных проектов (Хабр, Кадабра, Дрибблер), с открытым исходным кодом, наделённая способностью унифицировать разметку HTML/XML документов, контролировать перечень допустимых тегов и атрибутов и предотвращать возможные XSS-атаки в коде документов.
В связи с катастрофической нехваткой времени, не смотря на мои обещания, код версии 1.0 выложен только сегодня. Но зато он всё же вышел! Причём вместе с исправлением вчерашнего хабрабага с перечёркиванием текста.
Теперь Jevix доступен на google code. Я не поссорился с Juks — автором perl-версии (если кто что подумал) — просто с google code мне работать проще.
За написание тестового примера огромное спасибо vaart. Без него бы ничего не было.
Какие произошли изменения (копи-паст из исходника):
1.00 + Исправлен баг с закрывающимися тегами приводящий к созданию непарного тега рушащего вёрстку 1.00 RC2 + Небольшая чистка кода 1.00 RC1 + Добавлен символьный класс Jevix::RUS для определния русских символов + Авторасстановка пробелов после пунктуации только для кирилицы + Добавлена настройка cfgSetTagNoTypography() отключающая типографирование в указанном теге + Немного переделан алгоритм обработки кавычек. Он стал более строгим + Знак дюйма 33" больше не превращается в открывающуюся кавычку. Однако варриант "мой 24" монитор" - парсер не переварит. 0.99 + Расширена функциональность для проверки атрибутов тега: можно указать тип атрибута ( 'colspan'=>'#int', 'value' => '#text' ) в Jevix, по-умолчанию, определён массив типов для нескольких стандартных атрибутов (src, href, width, height) 0.98 + Расширена функциональность для проверки атрибутов тега: можно задавать список дозможных значений атрибута ( 'align'=>array('left', 'right', 'center') ) 0.97 + Обычные "кавычки" сохраняются как "e; если они были так написаны 0.96 + Добавлены разрешённые протоколы https и ftp для ссылок (a href="https://...) 0.95 + Исправлено типографирование ?.. и !.. (две точки в конце больше не превращаются в троеточие) + Отключено автоматическое добавление пробела после точки для латиницы из-за чего невозможно было написать index.php или .htaccess 0.94 + Добавлена настройка автодобавления параметров тегов. Непример rel = "nofolow" для ссылок. Спасибо Myroslav Holyak (vbhjckfd at gmail.com)
P.S. Я ни черта не понимаю в лицензиях. Посоветуйте пожалуйста. Мне бы хотелось, чтобы код мог использоваться как в open-source так и в коммерческих проектах с возможностью модификации кода, но, с указанием авторства
P.P.S. Если есть желание присоединиться к проекту и усовершенствовать его или поработать над документацией — обращайтесь в инбокс