Skip to content
master
Switch branches/tags
Code
This branch is up to date with master.
Contribute

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Jevix — средство для фильтрации HTML

Система автоматического типографирования и фильтрации текста с HTML/XHTML разметкой, разработанная в ТМ™ для собственных проектов с открытым исходным кодом. Изначально появился как php-версия перлового Jevix-а, сейчас проекты сильно разошлись.

Где используется

  • Проекты Тематических Медиа (Хабрахабр и др.)
  • Сообщество безвоздместного дарения Дару~дар
  • Один из ведущих русскоязычных интернет-ресурсов, посвящённых nix системам и миру Open Source NIXP.RU
  • Свободные движки для блого-социальных сетей и тематических сообществ LiveStreet, BigStreet и Explay CMS
  • Система управления сайтами Сogear на CodeIgniter
  • Многофункциональная система управления сайтами Alto CMS
  • Плагин для Codeigniter. Работает в связке с GeSHi для подсветки синтаксиса
  • Плагин для MODx CMS: домашняя страница, на GitHub
  • Компонент для удобного использования Jevix в Yii

Возможности

  • Фильтрация введённого пользователем текста с HTML разметкой на основе заданных правил о разрешённых тегах и атрибутах
  • Исправление ошибок HTML и формирование валидного HTML или XHTML кода
  • Предотвращение XSS-атак
  • Применение правил набора текстов (типографика) для русского языка

Преимущества

  • Jevix работает на '''конечном автомате''', а не на регулярных выражениях. Соответственно обратная идеология: вместо запрещающих правил разрешающие (всё что не разрешено — запрещено)
  • XSS-фильтация, валидация, обработка HTML и типографирование в одном флаконе, в одном файле

Недостатки

  • Jevix разделяет строки '''<br>'''-ами. Делать '''<p>абзацы</p>''' он не умеет, и, в существующей архитектурной концепции вряд ли научится
  • Автор больше не развивает проект, перешёл на Python и постепенно забывает синтаксис PHP. Однако PULL-реквесты приветствуются

Пример использования

<?  
require('jevix.class.php');  

$jevix = new Jevix();     //Конфигурация  
// Устанавливаем разрешённые теги. (Все не разрешенные теги считаются запрещенными.)  
$jevix->cfgAllowTags(array('a', 'img', 'strong', 'ul', 'li', 'h1', 'h2'));     // Устанавливаем разрешённые параметры тегов.  
$jevix->cfgAllowTagParams('a', array('title', 'href'));     // Устанавливаем параметры тегов являющиеся обязяательными. Без них вырезает тег оставляя содержимое.  
$jevix->cfgSetTagParamsRequired('a', 'href');     // Устанавливаем теги которые может содержать тег контейнер  
$jevix->cfgSetTagChilds('ul', 'li', true, false);     // Устанавливаем атрибуты тегов, которые будут добавлятся автоматически  
$jevix->cfgSetTagParamDefault('a', 'rel', 'nofollow');     //Парсинг  
$res = $jevix->parse('...тут...мог...бы...быть...ваш...текст...'); ?>  

Системные требования

  • PHP5
  • Модуль mbstring
  • UTF-8

Возможные настройки в .htaccess для корректной работы mbstring

php_value       mbstring.func_overload      0  
php_value       default_charset             UTF-8  
php_value       mbstring.language           Russian  
php_value       mbstring.internal_encoding  UTF-8

About

Средство для фильтрации HTML и автоматического типографирования

Resources

License

Releases

No releases published

Packages

No packages published

Languages