Общие сведения
xBB - написанная на PHP библиотека для работы с BBCode, которая является развитием библиотеки, описанной здесь.
xBB может быть использован в гостевых книгах, форумах, на досках объявлений и т.п. На этом сайте (http://www.pc.uz) поддержка BBCode в пользовательских комментариях реализована с помощью xBB. Данная документация целиком сверстана в BBCode и конвертирована в HTML с помощью xBB.
Парсер реализован несколько отлично от аналогов. Обычно такие парсеры реализуются с помощью регулярных выражений. Этот же использует метод конечных автоматов. Имеет следующий плюс: как бы ни была богата и продвинута коллекция тегов, поддерживаемая в данной реализации, скорость обработки текстов будет постоянной, так как осуществляется за фиксированное число проходов. Коллекцию тегов можно увеличивать до бесконечности, а скрипт будет выполняться одинаково быстро. Скорость его работы зависит только от величины текста и от числа тегов, используемых в конкретном тексте, но не от числа всех возможных тегов и вариантов их написания. Скрипт не парсит текст многократно для каждого тега или варианта написания тега.
В умолчальной поставке xBB поддерживает 41 тег, "автоматические ссылки", смайлы. Коллекция тегов и смайлов легко расширяема.
Теги имеют следующие особенности:
О задании наборов смайликов - смотрите главы "Быстрый старт" и "API".
Далее подробно описываются теги, поддержка которых реализована в xBB по умолчанию.
xBB может быть использован в гостевых книгах, форумах, на досках объявлений и т.п. На этом сайте (http://www.pc.uz) поддержка BBCode в пользовательских комментариях реализована с помощью xBB. Данная документация целиком сверстана в BBCode и конвертирована в HTML с помощью xBB.
Парсер реализован несколько отлично от аналогов. Обычно такие парсеры реализуются с помощью регулярных выражений. Этот же использует метод конечных автоматов. Имеет следующий плюс: как бы ни была богата и продвинута коллекция тегов, поддерживаемая в данной реализации, скорость обработки текстов будет постоянной, так как осуществляется за фиксированное число проходов. Коллекцию тегов можно увеличивать до бесконечности, а скрипт будет выполняться одинаково быстро. Скорость его работы зависит только от величины текста и от числа тегов, используемых в конкретном тексте, но не от числа всех возможных тегов и вариантов их написания. Скрипт не парсит текст многократно для каждого тега или варианта написания тега.
В умолчальной поставке xBB поддерживает 41 тег, "автоматические ссылки", смайлы. Коллекция тегов и смайлов легко расширяема.
Теги имеют следующие особенности:
- Названия тегов и атрибутов не зависят от регистра. Например,
[font=Arial size=+1], [FONT=Arial SIZE=+1] и [FoNt=Arial SiZe=+1]- равнозначно.
- Значения атрибутов могут быть закавычены "так" и 'так', либо никак не закавычены. Следующие конструкции равнозначны:
[google="BBCode"], [google='BBCode'], [google=BBCode].. Следующие конструкции НЕ равнозначны:[google="Поддержка BBCode"], [google=Поддержка BBCode]. Последний вариант будет интерпретирован скриптом как[google="Поддержка" BBCode=""].
- Теги могут быть вложенными. Но те из них, которые создают элементы блочного типа (такие как
[h1] или [table]), не могут быть вложены в строчные теги (такие как[i] или [color]). Строчные элементы закрываются, если начинается блочный. Эти ограничения обусловлены требованиями W3C.
- Теги должны быть правильно вложены. Неправильный код "
[b][i]текст[/b][/i]" будет интерпретирован скриптом как "[b][i]текст[/i][/b][/i]". Это ограничение также обусловлено требованием W3C.
- В данной реализации BBCode поддерживаются закрывающие теги вида
[/]. Такой тег закрывает последний незакрытый тег. Например,[b]текст[/b]равнозначно[b]текст[/]. Тем не менее рекомендую пользоваться именно первой формой написания.
Тогда, в случае нагромождения вложенных тегов, вам будет легче ориентроваться в коде. Кроме того, первая форма написания позволяет скрипту более корректно обрабатывать пользовательские ошибки.
- Поддерживается закрытие тега способом [тег /]. Например, конструкции
[url name=top][/url]и[url name=top /]равнозначны.
- В некоторых случаях можно не писать закрывающий тег. Например, тег
[tr](строка таблицы), будет автоматически закрыт, как только встретится очередной[tr]или закрывающий тег[/table]. Тег[hr]вообще не имеет закрывающего, интерпретируется скриптом как[hr/]. О поведении конкретных тегов смотрите их описания.
- При конвертации ББКода в HTML сохраняется форматирование пробелами. Т.е. все двойные пробелы переводятся в ' ', все переводы строк заменяются на '<br />'. Однако вокруг некоторых элементов (таких как
[h1]) игнорируются 1-2 перевода строк, так как эти элементы сами по себе создают дополнительные отступы. Это сделано для того, чтобы по возможности приблизить визуальное представление HTML к исходному ББкоду.
@l;b@r;. Поддерживаются мнемоники следующих спецсимволов:- Открывающая квадратная скобка '[' может быть мнемонизирована как
'@l;'.
- Закрывающая квадратная скобка ']' может быть мнемонизирована как
'@r;'.
- Двойная кавычка '"' может быть мнемонизирована как
'@q;'.
- Одинарная кавычка "'" (апостроф) может быть мнемонизирована как
'@a;'.
- Знак собачки '@' может быть мнемонизирован как
'@at;'.
[code], [nobb] и аналогичных. Автоматические ссылки могут быть отключены. Как это делается - смотрите главу об API.О задании наборов смайликов - смотрите главы "Быстрый старт" и "API".
Далее подробно описываются теги, поддержка которых реализована в xBB по умолчанию.
Скачать zip-архив со скриптом, тестами и набором смайликов можно здесь.




В моем случае данные из форума на phpBB из базы данных дублируются на обычную страницу, в этом случае не происходит замена bbcode`а.
надо бы ещё выравнивание прикрутить (ушёл читать на офф сайт)
Вот это вот вообще замечательно
xBB версии 0.29
Основные отличия от версии 0.28:[bdo], [big], [blockquote], [br], [cite], [del], [em], [h4], [h5], [h6], [ins], [ol], [p], [pre], [small], [strong], [ul], [var].[quote]. Контейнер div заменен на более семантически правильный blockquote.Внесены изменения в xBBEditor:
Тем не мение должен предупредить, что xBBEditor пока еще остается сырым экспериментальным приложением. Использовать его в рабочих проектах рекомендуется с большой осторожностью. Парсер xBB никак не зависит от xBBEditor-а и может быть использован в паре с любым другим редактором или без какого либо редактора.
Документацию исправлю в ближайшее время.
Что касается размеров шрифтов.
попробовал немного изменить функцию замены размера. теперь если шрифт больше семёрки то ставится не 7. А исходный шрифт делиться на три.
меня подобное вполне устроило
Я посчитал, что 7 градаций, соответствующих стандарту HTML, вполне достаточно пользователю. Причем, эти 7 градаций кажутся мне более удобными, чем указание размера шрифта в пикселях, как это предусмотрено, например, в phpBB.
К тому же возможностей у моего парсера больше, чем у любого другого. Но не факт, что другие разработчики парсеров BBCode будут стремиться к совместимости с моей либой. А значит несовместимость будет нарастать.
Но есть выход. Я стараюсь разработать достаточно гибкое API, позволяющее без особых усилий добавлять новые теги и переопределять старые. Пользуясь этим API сайтостроитель может "подогнать" либу под любую версию BBCode или создать собственную
ББКод не имеет стандарта. Он развивается и видоизменяется на всяком сколько нибудь продвинутом форуме, как угодно админам.
xBB версии 0.28
Уже несколько человек попросили поторопиться с очередной версией xBB. Главным образом из-за xBBEditor-а. И хотя он абсолютно сырой, тянуть дольше я не могу. Иначе, выход этой версии затянется на неопределенный срок.Вот основные отличия версии 0.28 от предыдущих:
[img].Документацию исправить не успел. Займусь этим немедленно.
Скачать можно на http://xbb.uz