Существуют ли какие-либо библиотеки кода, которые проверяют / конвертируют комментарии блога в строгий XHTML?

Я работаю над веб-сайтом на PHP, где люди могут оставлять комментарии, похожие на блог, и я хочу, чтобы были разрешены только определенные теги. Существуют ли какие-либо предварительно созданные библиотеки, которые обрабатывают комментарии и создают действительный код XHTML Strict? Мне нужно было бы сделать это в JavaScript, чтобы я мог сгенерировать предварительный просмотр в реальном времени, например Stack Overflow, а также в PHP, прежде чем сохранять его в базе данных MySQL.

Допустимые HTML-теги: strong, em, blockquote и links (rel = nofollow не требуется).

Один из способов - позволить людям напрямую вводить HTML-код в поле комментария, но я бы предпочел использовать простую пометку вроде этого (может быть иначе - это пример):

*strong*
_em_
[blockquote]
http://www.link.com

Я хочу, чтобы разрывы строк были преобразованы в <br />.

Есть ли библиотеки кода, которые делают это?


person Matthew James Taylor    schedule 01.07.2009    source источник


Ответы (2)


Я лично считаю, что лучше разрешить обычные html-теги. Еще одна разметка с собственными небольшими вариациями менее удобна.

Закон Якоба о взаимодействии с веб-пользователем гласит, что:

«пользователи проводят большую часть своего времени на других веб-сайтах».

Поэтому вам нужно делать это, как и на большинстве других сайтов.

Это оставляет вам:

  • HTML -> Используйте HTML Purifier, чтобы отфильтровать только те теги, которые вам нужны. Мне нравится этот метод.
  • Markdown -> Этот синтаксис похож на то, что вы хотите, и stackoverflow использует его. Вы можете проанализировать его с помощью PHP Markdown
  • BBCode -> У меня нет опыта в этом, но в php 5.2 кажется, что он уже установлен: PHP BBCode или есть более старые библиотеки разобрать его.
person elviejo79    schedule 01.07.2009
comment
Спасибо, elviejo, похоже, очиститель HTML - это именно то, что мне нужно. - person Matthew James Taylor; 01.07.2009
comment
Markdown - это то, что использует SO; Википедия использует свою более или менее уникальную разметку. - person Ben Blank; 01.07.2009

Не уверен, что это соответствует вашим потребностям, но попробуйте fckeditor или tinymce.

person jimiyash    schedule 01.07.2009
comment
Спасибо, Джейсон, но это слишком сложно - мне нужно очень простое решение, которое не требует меню элементов управления и т. Д. - person Matthew James Taylor; 01.07.2009