1Bot |
Отправлено: 9 августа 2009 — 07:40
|
Super Member
Покинул форум
Сообщений всего: 773
Дата рег-ции: Апр. 2009
Откуда: Днепропетровск
Репутация: 69
|
Предлагаемые темы к обсуждению:
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 не должен пытаться быть умнее пользователя и должен преобразовать его текст только в той части, которая оговорена правилами. А все, что не оговорено правилами, должен выводить, как оно было введено.(Отредактировано автором: 9 августа 2009 — 07:41) |
|
|
1Bot |
Отправлено: 16 августа 2009 — 08:26
|
Super Member
Покинул форум
Сообщений всего: 773
Дата рег-ции: Апр. 2009
Откуда: Днепропетровск
Репутация: 69
|
Описание возможных тегов для расширения ExBB Codes
[ sub ] - нижний индекс. Аналог HTML-ного < sub >
[ sup ] - верхний индекс. Аналог HTML-ного < sup >
[ del ] - зачеркнутый текст. Аналог HTML-ного < del class="exbb" >
[ ins ] - тег для выделения добавленных кусков текста (в противоположность тегу [ del ], выделяющему исключенные куски текста). Эквивалент HTML-ного < ins class="exbb" >
[ justify ] - выровнять текст по ширине. Этот тег эквивалентен < div class="exbb" align="justify" > в HTML
[ font ] - указать шрифт. Аналог HTML-ного <font>. Поддерживает также атрибуты color, size и face
Примеры:
[ font=Arial ]текст[/ font ]
[ font=Verdana color=red ]текст[/ font ]
[ font face=Tahoma size=+2 ]текст[/ font ]
[ nobb ] - тег, внутри которого не происходит конвертации ББКода в HTML, не работают "автоматические ссылки" и не вставляются смайлы
[ bbcode ] - тег для подсветки ББКода. Внутри [ bbcode ] теги BBCode, смайлики, и "автоматические ссылки" не транслируются в HTML, а посвечиваются
[ h1 ] - заголовок первого уровня. Эквивалент HTML-ного < h1 class="exbb" >
[ h2 ] - заголовок второго уровня. Эквивалент HTML-ного < h2 class="exbb" >
[ h3 ] - заголовок третьего уровня. Эквивалент HTML-ного < h3 class="exbb" >
[ h4 ] - заголовок четвертого уровня. Эквивалент HTML-ного < h4 class="exbb" >
[ h5 ] - заголовок пятого уровня. Эквивалент HTML-ного < h5 class="exbb" >
[ h6 ] - заголовок шестого уровня. Эквивалент HTML-ного < h6 class="exbb" >
[ p ] - тег, контейнер абзаца. Нужен для тех, кому небезразлична семантическая правильность набираемых текстов. Эквивалент HTML-ного < p class="exbb" >
[ table ] - таблица. При конвертации переводится в < table class="exbb" >. Поддерживаются атрибуты border, width, cellspacing, cellpadding и align, аналогичные HTML-ным. В [ table ] могут быть вложены только теги [ caption ] (заголовок) и [ tr ] (строка).
Пример:
[ table align=center cellspacing=0 cellpadding=5 ]
[ caption ]Заголовок[/ caption ]
[ tr ]
[ th ]Столбец 1
[ th ]Столбец 2
[ tr ]
[ td align=center colspan=2 ]Строка
[ /table ]
[ caption ] - заголовок таблицы. Эквивалент HTML-ного < caption class="exbb" >. Может содержаться только в теге [ table ]
[ td ] - ячейка таблицы. Аналог HTML-ного < td >. Может быть вложен только в [ tr ]. При конвертации переводится в < td class="exbb" >. Поддерживаются атрибуты width, height, align, valign, colspan и rowspan, аналогичные HTML-ным
[ th ] - заголовок столбца таблицы. Аналог HTML-ного < th >. Может быть вложен только в [ tr ]. При конвертации переводится в < th class="exbb" >. Поддерживаются атрибуты width, height, align, valign, colspan и rowspan, аналогичные HTML-ным
[ tr ] - строка таблицы. Аналог HTML-ного < tr >. Может быть вложен только в [ table ]. Может содержать только [ th ] и [ td ]. При конвертации переводится в < tr class="exbb" >(Отредактировано автором: 27 марта 2010 — 13:42) |
|
|
|