Как стать автором
Обновить

Комментарии 93

первая и вторая ссылка не рабоатет =\
Спасибо отзывчивости людей, я всегда знал что им можно верить =)
под какой лицензией распространяется проект. могу ли я использовать в коммерческих продуктах или продавать его модифицировав
Можно продавать проект, использующий Jevix, но не его модифицированную версию отдельно.
GPL2, по-моему
на сколько я помню GPL лицензия позволяет продавать с условием распространения исходников или я ошибаюсь
Это правда. Более подробно тут: http://ru.wikipedia.org/wiki/Gpl2

В тему по ссылке:
Цель GNU GPL — предоставить пользователю права копировать, модифицировать и распространять (в том числе на коммерческой основе) программы (что по умолчанию запрещено законом об авторских правах), а также гарантировать, что и пользователи всех производных программ получат вышеперечисленные права. Принцип «наследования» прав называется «копилефт» (транслитерация английского «copyleft») и был придуман Ричардом Столлмэном. По контрасту с GPL, лицензии собственнического ПО очень редко дают пользователю такие права и обычно, наоборот, стремятся их ограничить, например, запрещая восстановление исходного кода.

Вкратце - использовать в коммерческих проектах можно. Но, если исходник был модифицирован или дополнен, то:
1. Он должен быть доступен всем остальным как и исходный вариант.
2. К модифицированному/дополненному варианту должен прилагаться оригинал без изменений.
А почему так неуверенно? :) Ведь вы же автор PHP-версии.
Если действительно GPL2, то лично я (думаю не только я) для вас потерян как тестер и пользователь :) Хоть бы LGPL сделали.
Спасибо, погляжу
А я, вот, думал о чём-то подобном XML_HTMLSax3 который использует HTML_Safe, но не нашёл. Любопытнй проект
НЛО прилетело и опубликовало эту надпись здесь
Интересно, сложно ли его прикрутить к Друпалу или ВордПрессу?
посмотрите в сторону вот этого модуля http://drupal.org/project/htmLawed
если немного поискать, то найдется еще несколько, подобного типа
Конечные автоматы? Хорощо, хорошо)
Да. Но на PHP оно как-то не очень хорошо легло. Там ещё оптимизировать и оптимизировать...
А в чем проблема? Почему "не очень хорошо легло"?
НЛО прилетело и опубликовало эту надпись здесь
Спасибо :)
Посмотрел — очень понравилось, буду использовать в Explay :)
Было бы неплохо сослаться в таком случае
безусловно!
Я так понимаю в суперхабре Jevix используется?
НЛО прилетело и опубликовало эту надпись здесь
да, и не только там
Несмотря на красивый код, который я поизучал пару минут, проект имеет кучу багов в фильтрации, вложенные теги вообще очень большая проблема, хабр тоже этим страдает.

Вот парочку примеров

<img src=. onerror='alert(1);'>
<img<script src="http://ha.ckers.org/xss.js"></script>
Прошу прощения, на jevix.ru видать не была включена фильтрация от xss, тестировал там.
В данный момент на jevix.ru работает perl-версия, которая имеет xss-защиту "постольку поскольку"
спрашивается, нафига я оставлял вам там в формочку свой емейл, если новости раньше узнаю через хабр :)
Пообедали, сейчас будут новости :-)
у нас всегда так

аналог - по игрушке King's Bounty. Легенда о рыцаре о патчике очередном я узнал не от разрабов, а с AG :)

это менталитет, наши комьюнити рвут всех
Прикольно ))) Benchmark-ил кто-нить на производительность ))) ? Интрересно посмотреть на результаты )))
Судя по авторам, бенчмарки должны быть хороши :)
Хотя imho фильтрация и валидация пользовательского ввода - это не то, на чем нужно экономить...
Огорчу, работает пока не быстро. Но, это вопрос времени. Есть несколько проблем в производительности из-за отсутствия в PHP поддержки UTF-8. Например, нельзя обратиться к символу строки через [] даже с mbstring
А вместо [] пробовали {} )))) Или я не правельно понял )))
:) Ну да, я это и имел в виду
Вот интересно, сколько процентов HTTP-запросов к тому же хабру (не статика типа .jpg и .css) несут в себе (POST) текст топиков, который нужно парсить. Комменты не в счет, они как правило довольно простые.

0.3%? 0.1%? 0.01%? 0.001%? 0.0001%?

Это я к тому, что может не стоит так париться над производительностью...
Ухты, это ж вы с Жуксом фигачите - здорово, молодцы.
Вот только imho GPL2 - весьма спорная в данном контексте лицензия.
Ничего не понимаю в лицензиях. Хочу чтобы было можно всё, кроме продажи модифицированных версий. Посоветуйте?
Запрет продаж модифицированных версий - тоже довольно неудобная тема, она ведет к другим менее приятным ограничениям. Ничего конкретного сказать не могу, боюсь соврать...

Однако советую сразу выяснить все нюансы по GPL2 - если со временем к проекту будут подтягиваться разработчики, то для смены лицензии нужно будет получить согласие каждого участника или вырезать соответствующий код. А люди как известно имеют свойство "пропадать"...
Не хватает перевода ' в апостроф(?) для I'm, I've, I'd и т.д.
Ага, спасибо, учту
Да, и нечто вроде {code} для экранирования всего :-)
Эх, найти бы тяжелый парсер bbcode, да грамотно сделанный, да под PHP5....
Рыл, копал - слабенько, я бы сказал на троечку так...
Я не копал, просто что сразу вспоминилось.
http://xbb.uz/
Тоже реализована методом конечных автоматов...
Кстати, достаточно качественный парсер.
А чем это отличается от реформатора?
Всем :-)
Реформатор клиентское приложение на JavaScript-е для очистки и форматирования HTML кода
Jevix - серверное решение на PHP, одна из главных задач которого (кроме типографики) не пропустить вредоносный код
Насчёт вредоносного кода. Вырезание слова «скрипт» из URL'а бесит неимоверно. С учётом того, что на Хабре часто обсуждаются те же JS-скрипты, которые хранятся по URL, содержащим слово «скрипт». За вчерашний день только три ссылки руками приходилось исправлять…

Это необходимое зло, или как-то можно решить проблему?
Незнаю, какой где вы тестировали. Jevix не вырезает слово script из url
Извините, я ступивши. Спутал с нынешним Хабром, который делает это с комментариями. Тогда ждём новой версии Хабра. :)
НЛО прилетело и опубликовало эту надпись здесь
К этому привёл процесс эволюции. Задачи разные, но решать их хочется одним махом
НЛО прилетело и опубликовало эту надпись здесь
Спасибо!

В моём представлении всё должно определяться настройками(настройки определяют перечень операций), на поддержку такого количества версий нам просто не хватит сил. Ведь и кроме этого задач хватает.
А как расценивать версионность текущую 0.9 (beta) и
Jevix 0.9.5,
думаю логично было назвать 0.9.6 (beta) а то возникнет, путаница как мне кажется.
Действительно, есть такое затруднение. Дело в том, что это два полностью независимых проекта, разрабатываемых разными людьми, сидящими за одним столом, а не портирование. Возможно, лучше всего было бы так: люди, разрабатывающие на perl не обращали бы внимание на версию php и наоборот :-)

Играет ещё роль то, что в perl-версии изначально был выбран хоть и компактный и быстрореализуемый, но не совсем удачный механизм, чтобы реализовать максимально полно и эффективно всё то, что было придумано в последствии.

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

На самом деле, больший интерес вызывают реализации на других языках. Были добровольцы, но все постепенно слились.

C-библиотека могла бы решить эту проблему на корню, но такой вариант тоже вызывает некоторые сомнения по части его массового использования на shared-хостинге.
Неправильно обрабатывается знак дюйма, там где он используется по прямому назначению. Например 15" превращает в 15«. А так здорово, отличный проект, спасибо.
Да, есть такое. Постараюсь учесть
Запятая, стоящая после ссылки, считаеться частью УРЛ - небольшой баг, даже в демке он есть...
Да, спасибо.
А это не знак дюйма, это кавычка. Знак дюйма выглядит вот так: 15″. Так что из 15" надо делать 15″.
А под рельсы такого чуда не планируется?
Нужны добровольцы, мы только за.
Тыц тыц, а что думает многоуважаемый juks насчет лицензии?

Моя не думать о GPL2 как о фонтан...
в смысле я бы не подтянулся под такие сомнительные знамена веббилдинга для...
ну вы поняли...
Спасибо за ссылку
Используем в своем проекте именно HTMLPurifier — огромное количество настроек, довольно быстрая обработка, валидный код. Но он не занимается типографикой, тем более русской, поэтому думаем о внедрении чего-то типа Jevix на второй ступени обработки.
Я думаю проще плагин к HTMLPurifier написать.
вариант. надо подумать)
НЛО прилетело и опубликовало эту надпись здесь
Я попробовал обработать текст в Jevix. Обработчик почему-то поставил неразрывный пробел между предлогом из 3-х букв и последующим словом. Насколько я знаю, не отделяются от последующего слова предлоги, союзы, местоимения (и что-то еще?) из 1-й и 2-х букв. В настройках также не нашел опции для количества букв.


Однако, знаете, не все так просто.

Гиленсон, 1988: «В книжных изданиях не следует оставлять в конце строки предлоги и союзы, начинающие предложение, а также однобуквенные союзы и предлоги в середине предложений. В журнальных, газетных, информационных изданиях и изданиях оперативной полиграфии допускается оставлять в конце строки однобуквенные пред¬логи и союзы внутри предложений, а также трехбуквенные предлоги, начинающие предложение.»

Шульмейстер, дату не знаю: «1. В конце строки нельзя оставлять предлоги из одной — трех букв, если они начинают предложение, т. е. идут после точки, восклицательного или вопросительного знака, многоточия, точки с запятой, например: В || кассе, У || реала, До || начала, При || формате. 2. Весьма нежелательно оставлять в конце строки однобуквенные союзы и предлоги (в, к, и, с, у и др.), даже если они не начинают предложения.»

Лебедев, 2000: «Чтобы слова не перескакивали нежелательным образом, их нужно «привязывать» к соседним словам неразрывным пробелом. Строгих правил по поводу перенесения слов нет, все они носят рекомендательный характер. Каждый раз нужно вникать в смысл текста и привязывать предлоги и союзы к следующему за ними слову, а частицы — к предыдущему.»
Надо же, наверно парсер научился расставлять неразрывные пробелы пока я ехал домой :)
Вы, наверное, тестировали Jevix на сайте, а там перловый вариант
Я, если честно, вообще не поддерживаю идею с неразрывными пробелами
К сожалению, мы пока до всех этих тонкостей не добрались. Веб-интерфейс сейчас отделяет русские предлоги неразрывным пробелом. У меня были сомнения на тему того, надо ли просто отделять слова от одного до трёх символов.
Как минимум это надо задавать в настройках. Прилепление трёхбуквенных слов к следующему имеет смысл только в том случае, когда они стоят в начале предложения. А так желательно не отрывать одно- и двухбуквенные предлоги от следующего слова (а также местоимения «я», «ты», «он», «она» — но это уже опционально), а также частицы «же», «бы», «ли» — от предыдущего.
Javix на порядок лучше http://www.artlebedev.ru/tools/typograf/ и http://typograf.ru/

Так держать!

В нем я нашел пока лишь одну ошибку:
При обработке такого вот текста
httр://ya.ru, бла-бла

Получим
<a href="httр://ya.ru,">httр://ya.ru,</a> бла-бла
Было бы неплохо сделать английскую версию страницы, а также добавить возможность включать английские правила типографики. Например распознавать текст «That's it--30" monitor»
Локализация страницы предусмотрена, надо только перевести строковые данные
1) Еще не плохо бы было автоматически разбивать на абзацы (тег ), я как понял в онлайн версии (перловой) это есть, а вот в пхп нету, там несколько так и остаются
2) Может я что то не так делаю, но когда прописываешь вложенные теги, например для ul: $jevix->cfgSetTagChilds('ul', array('li'), true, true);
то jevix оставляет только 1 вложенный li, а остальные удаляет (видимо потому, что ставит автоматом br после каждого li, а br является не разрешенным тегов в контейнере ul, и jevix удаляет не только этот br, а и все, что после него до закрывающего тега контейнера)
а если это отключить, то тогда он после каждого li ставит еще и br, всмысле делает так
ul
li br
li br
/ul
вот тут эти br вообще не нужны
Спасибо, я проверю. Скоро планирую выпустить ещё одну бету перед релизом
"на абзацы (тег )" имелся ввиду тег p
"там несколько так и остаются" имелось ввиду br
И еще, так как ссылки не всегда корректно обрабатываются (я про автоматическое подсвечивание), то стоит сделать параметр в конфигурации обрабатывать ссылки или нет, а то сейчас пришлось клас править, а это не гуд.
И, как мне кажеться, можно бы было ко всем автоматом добавленных тегов (таким как br,p, авт. подсвечивание и др.) опционально сделать так что бы можно было им задать какой нить стиль, класс, или какой другой интдефикатор, что бы при обратном преобразование, для редактирования записи, когда нет визивига (например форма коммента), что бы можно было эти теги удалить для вывода в форму редактирования.
А распозновать SQL инъекции и удалять их есть возможность?
Это задача обёртки для доступа к БД
Насколько я понял эти данные (в большинстве случаев) идут в базу после обработки Jevix так может расширить функиционал Jevix по этому поводу?

Обертка обрабатывает «плохие запросы», а нам нужно исключить их без дальнейшей обработки или писать в базу как обычный текст.

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