Ответов: 58 Просмотров: 0
|
Предлагаемые темы к обсуждению:
1.Что в BBCode является общепринятым, а что нет.
2.Различия версий BBCode и возможность их классификации.
3.Рекомендации разработчикам конвертеров BBCode.
4.Возможность унификации/спецификации разметки BBCode.
Цели обсуждения:
1.Выявить основные точки зрения по обсуждаемым вопросам.
2.Выяснить, какие шаги можно предпринять к дальнейшему расширению и углублению дискуссии о спецификации BBCode, и имеет ли смысл это делать.
В продолжении темы некоторая информация справочного характера
Назначение BBCode
1.Упрощение верстки:
* Сокращенное написание тегов ([ color ], [ i ] и т.п.).
* Комплексные теги (есть ли более понятное название?), такие как [ quote ] и [ php ], заменяющие целые нагромождения тегов HTML.
2.Удобная вставка смайликов.
3.Автоматическая нормализация кода. Как ни верстай, вывод все равно будет валидным.
4.Безопасность. Можно предоставить кому угодно без опасения о вредоносности кода.
5. BBCode предоставляет удобную возможность изменять разметку HTML не изменяя авторских текстов
BBCode часто называют разновидностью HTML. Это неправильно.
Отличия BBCode от HTML
1. В BBCode отсутствует вершина дерева тегов. Если все теги HTML обязаны быть вложены в <html>, то для BBCode это не так. Он может вообще не содержать тегов.
2.Написание тегов BBCode и тегов HTML различно. В первом теги заключаются в квадратные скобки, во втором - в угловые. В первом широко используются конструкции вида [имя_тега=некоторое_значение]. В HTML такие конструкции являются ошибочными.
3.Наборы тегов в BBCode и в HTML различны. В BBCode есть теги, которых нет в HTML и наоборот. Некоторые теги одинаково называются, но имеют различное семантическое значение, (тот же тег [ code ]).
4.Мнемоники в BBCode и в HTML различны. Если в HTML все мнемоники имеют вид &чего-то; и обозначают некоторый символ, то в BBCode мнемоники могут иметь любое написание, и несут, как правило, семантический смысл (смайлики).
5.Назначение у BBCode и HTML различно. HTML предназначен для обработки агентами пользователей, которые его визуализируют. А BBCode вообще не доходит до клиента, конвертируется в HTML на сервере
6.В HTML любая последовательность пробельных символов считается пробелом. А в BBCode все пробельные символы сохраняются. Два рядом стоящих пробела означают именно два пробела, а не один; перенос строки приводит к переносу строки.
7.В BBCode есть такое понятие, как "автоматические ссылки". В HTML его нет. Сами по себе автоматические ссылки не являются частью BBCode. Но во всех известных реализациях они поддерживаются
Особенности BBCode
1.Теги в квадратных скобках.
2.Расширяемый набор тегов. Существует "джентельменский набор" тегов, помимо которых может быть создано неограниченное множество других тегов.
3.Сохранение форматирования пробельными символами. Хотя встречаются реализации, в которых это не так.
4.Смайлики. Хотя в некоторых реализациях их преобразование является опциональным.
5.Расширяемый набор мнемоник (смайликов). Полностью аналогично тегам.
6.Автоматические ссылки. Хотя в некоторых реализациях автоматическая обработка ссылок является опциональной.
7.Отсутствие пользовательских ошибок. Это означает, что если тот или иной символ или синтаксическая конструкция не могут быть обработаны как правильная конструкция BBCode, то они будут выведены как есть. Считается, что если пользователь ввел что либо "не правильно", то он хотел ввести именно так, и нужно вывести текст именно так, как ввел пользователь. Никаких сообщений об ошибках не выводится, так как в BBCode никаких ошибок не существует.
Например, если в тексте встретился символ "[", за которым не следует имени тега, то обработчик не должен воспринимать его как спецсимвол и должен просто вывести его без сообщения об ошибке.
То же касается и правильно написанных тегов, там где они не должны обрабатываться. Например, внутри тега [ code ].
Обработчик BBCode не должен пытаться быть умнее пользователя и должен преобразовать его текст только в той части, которая оговорена правилами. А все, что не оговорено правилами, должен выводить, как оно было введено. |