29-11-2005 03:45 Администрации Journals.ru
Feature request, который вам не понравится.

Кратко
Вместо vB-кода хочу HTML.

Очевидные проблемы
1. Обратная совместимость.
1.1. Все прошлые записи не должны испортиться;
1.2. Юзеры, не желающие HTML, должны иметь возможность и дальше писать так же, не заметив нововведения.
2. Безопасность. Чтоб никто ничего страшного не натворил.
3. Дизайн. Вы тоже представили комментарий в своём дневнике, написанный 50-м размером Comic Sans MS, розовым по ярко-зелёному?

Предлагаемое решение
1. В Настройках дневника «Настройках сайта» добавить переключатель: «Использовать при разметке записей/комментариев vB-код или HTML?» По умолчанию он у всех установлен на «vB-код». В соответствии с положением переключателя будет обрабатываться текст юзера при добавлении записи/комментария. (Что значит «обрабатываться»? Да просто сохранять текст, как есть (как и раньше), но с правильным флагом (см. след. пункт).) «Гости», не имеющие настроек, остаются в vB-коде.

2. Для каждой записи и комментария сохранять флаг, в какой системе записан данный текст. Соответственно, при выводе на экран HTML-текста мы ничего преобразуем, а при выводе vB-текста делаем ту же замену vB->HTML, что и сейчас. (Все уже написанные на момент введения этой фичи тексты, естественно, имеют флаг «vB-код».)

Что мы получим
Учитывая дефолтные установки юзеров и прошлых записей/комментариев, мы решаем проблему обратной совместимости (1.1 и 1.2).

Что касается безопасности (проблема 2), то можно поступать, как в ЖЖ: выкусывать JavaScript, Flash, и вообще всё, кроме конкретного указанного набора тегов разметки (достаточно широкого, я надеюсь) — второй параметр strip_tags() как раз для этого. Для большей надёжности можно заглянуть в код многочисленных Anti-XSS-парсеров, написанных на PHP.

Теперь о гипер-дизайне (проблема 3). Основные раздражители — размер и цвет. Решение первое (сложное): не давать изменять размер и цвет явно, а только с помощью логической разметки (соответственно, нужно заранее подготовить юзеру набор логических тегов (h1, h2, h3 etc.) для разных извращений). Решение второе (простое): ни-че-го не делать — чтоб изменить цвет/размер, ещё и знания нужны, да и первого же удаления хозяином дневника страшного комментария с просьбой «больше так не делать» должно хватить (в ЖЖ, например (вы уж простите за очередное упоминание), я не замечал толп вандалов, гадящих подобным образом в комментариях).

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

P.S. Спасибо, что прочитали. Знаю, что прошу слишком многого. Если есть непонятные (для вас или для меня) моменты, напишите.

// Написано в журнале support, там тоже можно комментировать.
Tags: [ geek ] [ journals.ru ]
Комментарии:
Камрад
Имеет смысл толко при наличии полнофункционального клиента, или открытия интерфейся к ж.ру, что бы организовалась поддержка сторонними клиентами.

29-11-2005 12:51
Камрад
Тварь, я не пользуюсь клиентом и вряд ли буду пользоваться 3rd-party-клиентами, если они появятся. Хочу HTML в веб-интерфейсе. И для меня это несомненно имеет некоторый смысл.

Камрад
caliban
Извращенец

Закрыть