
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. Если есть желание присоединиться к проекту и усовершенствовать его или поработать над документацией — обращайтесь в инбокс