- XBB
-
xBB — написанная на BBCode. Может быть использована в гостевых книгах, форумах, на досках объявлений и т. п.
Парсер BBCode реализован несколько отлично от аналогов. Обычно такие парсеры реализуются с помощью регулярных выражений. Этот же использует метод конечных автоматов. Имеет следующий плюс: как бы ни была богата и продвинута коллекция тегов, поддерживаемая в данной реализации, скорость обработки текстов будет постоянной, так как осуществляется за фиксированное число проходов. Коллекцию поддерживаемых тегов можно увеличивать до бесконечности, а скрипт будет выполняться одинаково быстро. Скорость его работы зависит только от величины текста и от числа тегов, используемых в конкретном тексте, но не от числа всех возможных тегов и вариантов их написания. Скрипт не парсит текст многократно для каждого тега или варианта написания тега.
xBB поддерживает более 100 тегов, «автоматические ссылки», смайлы. Коллекция тегов и смайлов легко расширяема. Включает в себя клиентскую часть - xBBEditor для редактирования текста BBCode.
Теги имеют следующие особенности
- Названия тегов и атрибутов не зависят от регистра. Например, [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/].
- При конвертации ББКода в
xBB поддерживает мнемонизацию специальных символов. Например, чтобы вывести на печать [b] без преобразования в HTML, можно ввести @l;b@r;. Поддерживаются мнемоники следующих спецсимволов:
- Открывающая квадратная скобка '[' может быть мнемонизирована как '@l;'.
- Закрывающая квадратная скобка ']' может быть мнемонизирована как '@r;'.
- Двойная кавычка '"' может быть мнемонизирована как '@q;'.
- Одинарная кавычка «'» (апостроф) может быть мнемонизирована как '@a;'.
- Знак собачки '@' может быть мнемонизирован как '@at;'.
Поддержка «автоматических ссылок» означает, что строки вида «http://какойто_uri», «https://какойто_uri», «ftp://какойто_uri», «svn://какойто_uri» и т. п., а также «www.какойто_uri» и «ящик@домен» автоматически конвертируются в соответствующие гиперссылки. Этого не происходит для содержимого таких тегов как [code], [nobb] и аналогичных. Автоматические ссылки могут быть отключены.
Лицензия
Библиотека распространяется бесплатно по лицензии GNU GPL v 2. Согласно этой лицензии ее можно свободно использовать, распространять и изменять при условии, что ваши собственные программные продукты, использующие эту библиотеку, будут распространяться по той-же лицензии GNU GPL.
Ссылки
- Сайт проекта
- Полная документация по xBB на PC.UZ
- Тестовые примеры для xBB на Prolib.Ru
- обсуждение вопросов, связанных с xBB на PHPClub.Ru
- svn://svn.prolib.ru:3692 — SVN-репозиторий xBB
Wikimedia Foundation. 2010.