Это правда. Более подробно тут: http://ru.wikipedia.org/wiki/Gpl2
В тему по ссылке:
Цель GNU GPL — предоставить пользователю права копировать, модифицировать и распространять (в том числе на коммерческой основе) программы (что по умолчанию запрещено законом об авторских правах), а также гарантировать, что и пользователи всех производных программ получат вышеперечисленные права. Принцип «наследования» прав называется «копилефт» (транслитерация английского «copyleft») и был придуман Ричардом Столлмэном. По контрасту с GPL, лицензии собственнического ПО очень редко дают пользователю такие права и обычно, наоборот, стремятся их ограничить, например, запрещая восстановление исходного кода.
Вкратце - использовать в коммерческих проектах можно. Но, если исходник был модифицирован или дополнен, то:
1. Он должен быть доступен всем остальным как и исходный вариант.
2. К модифицированному/дополненному варианту должен прилагаться оригинал без изменений.
А почему так неуверенно? :) Ведь вы же автор PHP-версии.
Если действительно GPL2, то лично я (думаю не только я) для вас потерян как тестер и пользователь :) Хоть бы LGPL сделали.
Несмотря на красивый код, который я поизучал пару минут, проект имеет кучу багов в фильтрации, вложенные теги вообще очень большая проблема, хабр тоже этим страдает.
Огорчу, работает пока не быстро. Но, это вопрос времени. Есть несколько проблем в производительности из-за отсутствия в PHP поддержки UTF-8. Например, нельзя обратиться к символу строки через [] даже с mbstring
Вот интересно, сколько процентов HTTP-запросов к тому же хабру (не статика типа .jpg и .css) несут в себе (POST) текст топиков, который нужно парсить. Комменты не в счет, они как правило довольно простые.
0.3%? 0.1%? 0.01%? 0.001%? 0.0001%?
Это я к тому, что может не стоит так париться над производительностью...
Запрет продаж модифицированных версий - тоже довольно неудобная тема, она ведет к другим менее приятным ограничениям. Ничего конкретного сказать не могу, боюсь соврать...
Однако советую сразу выяснить все нюансы по GPL2 - если со временем к проекту будут подтягиваться разработчики, то для смены лицензии нужно будет получить согласие каждого участника или вырезать соответствующий код. А люди как известно имеют свойство "пропадать"...
Всем :-)
Реформатор клиентское приложение на JavaScript-е для очистки и форматирования HTML кода
Jevix - серверное решение на PHP, одна из главных задач которого (кроме типографики) не пропустить вредоносный код
Насчёт вредоносного кода. Вырезание слова «скрипт» из URL'а бесит неимоверно. С учётом того, что на Хабре часто обсуждаются те же JS-скрипты, которые хранятся по URL, содержащим слово «скрипт». За вчерашний день только три ссылки руками приходилось исправлять…
Это необходимое зло, или как-то можно решить проблему?
В моём представлении всё должно определяться настройками(настройки определяют перечень операций), на поддержку такого количества версий нам просто не хватит сил. Ведь и кроме этого задач хватает.
Действительно, есть такое затруднение. Дело в том, что это два полностью независимых проекта, разрабатываемых разными людьми, сидящими за одним столом, а не портирование. Возможно, лучше всего было бы так: люди, разрабатывающие на perl не обращали бы внимание на версию php и наоборот :-)
Играет ещё роль то, что в perl-версии изначально был выбран хоть и компактный и быстрореализуемый, но не совсем удачный механизм, чтобы реализовать максимально полно и эффективно всё то, что было придумано в последствии.
Было бы, конечно, здорово привести всё к общему знаменателю. Правда, стоит признать, что востребованность perl-версии, в разы ниже.
будет ли развиватся версия на perl? (в силу большей востребованности php версии) если нет, то можно поставить более логичную версию, и написать что "начиная с версии такой то, проект базируется на php"
Не знаю, мне сложно оценить востребованность. Надо думать, что перл сейчас по-настоящему применяется только в "большой тройке", где, собсвенно, этот проект и родился.
На самом деле, больший интерес вызывают реализации на других языках. Были добровольцы, но все постепенно слились.
C-библиотека могла бы решить эту проблему на корню, но такой вариант тоже вызывает некоторые сомнения по части его массового использования на shared-хостинге.
Неправильно обрабатывается знак дюйма, там где он используется по прямому назначению. Например 15" превращает в 15«. А так здорово, отличный проект, спасибо.
Используем в своем проекте именно HTMLPurifier — огромное количество настроек, довольно быстрая обработка, валидный код. Но он не занимается типографикой, тем более русской, поэтому думаем о внедрении чего-то типа Jevix на второй ступени обработки.
Я попробовал обработать текст в Jevix. Обработчик почему-то поставил неразрывный пробел между предлогом из 3-х букв и последующим словом. Насколько я знаю, не отделяются от последующего слова предлоги, союзы, местоимения (и что-то еще?) из 1-й и 2-х букв. В настройках также не нашел опции для количества букв.
Однако, знаете, не все так просто.
Гиленсон, 1988: «В книжных изданиях не следует оставлять в конце строки предлоги и союзы, начинающие предложение, а также однобуквенные союзы и предлоги в середине предложений. В журнальных, газетных, информационных изданиях и изданиях оперативной полиграфии допускается оставлять в конце строки однобуквенные пред¬логи и союзы внутри предложений, а также трехбуквенные предлоги, начинающие предложение.»
Шульмейстер, дату не знаю: «1. В конце строки нельзя оставлять предлоги из одной — трех букв, если они начинают предложение, т. е. идут после точки, восклицательного или вопросительного знака, многоточия, точки с запятой, например: В || кассе, У || реала, До || начала, При || формате. 2. Весьма нежелательно оставлять в конце строки однобуквенные союзы и предлоги (в, к, и, с, у и др.), даже если они не начинают предложения.»
Лебедев, 2000: «Чтобы слова не перескакивали нежелательным образом, их нужно «привязывать» к соседним словам неразрывным пробелом. Строгих правил по поводу перенесения слов нет, все они носят рекомендательный характер. Каждый раз нужно вникать в смысл текста и привязывать предлоги и союзы к следующему за ними слову, а частицы — к предыдущему.»
Надо же, наверно парсер научился расставлять неразрывные пробелы пока я ехал домой :)
Вы, наверное, тестировали Jevix на сайте, а там перловый вариант
Я, если честно, вообще не поддерживаю идею с неразрывными пробелами
К сожалению, мы пока до всех этих тонкостей не добрались. Веб-интерфейс сейчас отделяет русские предлоги неразрывным пробелом. У меня были сомнения на тему того, надо ли просто отделять слова от одного до трёх символов.
Как минимум это надо задавать в настройках. Прилепление трёхбуквенных слов к следующему имеет смысл только в том случае, когда они стоят в начале предложения. А так желательно не отрывать одно- и двухбуквенные предлоги от следующего слова (а также местоимения «я», «ты», «он», «она» — но это уже опционально), а также частицы «же», «бы», «ли» — от предыдущего.
Было бы неплохо сделать английскую версию страницы, а также добавить возможность включать английские правила типографики. Например распознавать текст «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: опубликована php-версия 0.9 (beta)