Декабрь 19, 2019 Просмотры 22 просмотра

xBB v. 0.24 - PHP-библиотека для работы с BBCode. Часть 1. Общие сведения

  1. Общие сведения
  2. Список тегов
  3. Быстрый старт
  4. API
  5. Применение CSS
  6. Условия использования и инсталляция

Общие сведения

xBB - написанная на PHP библиотека для работы с BBCode, которая является развитием библиотеки, описанной здесь.

xBB может быть использован в гостевых книгах, форумах, на досках объявлений и т.п. На этом сайте (http://www.pc.uz) поддержка BBCode в пользовательских комментариях реализована с помощью xBB. Данная документация целиком сверстана в BBCode и конвертирована в HTML с помощью xBB.

Парсер реализован несколько отлично от аналогов. Обычно такие парсеры реализуются с помощью регулярных выражений. Этот же использует метод конечных автоматов. Имеет следующий плюс: как бы ни была богата и продвинута коллекция тегов, поддерживаемая в данной реализации, скорость обработки текстов будет постоянной, так как осуществляется за фиксированное число проходов. Коллекцию тегов можно увеличивать до бесконечности, а скрипт будет выполняться одинаково быстро. Скорость его работы зависит только от величины текста и от числа тегов, используемых в конкретном тексте, но не от числа всех возможных тегов и вариантов их написания. Скрипт не парсит текст многократно для каждого тега или варианта написания тега.

В умолчальной поставке xBB поддерживает 41 тег, "автоматические ссылки", смайлы. Коллекция тегов и смайлов легко расширяема.

Теги имеют следующие особенности:

  1. Названия тегов и атрибутов не зависят от регистра. Например, [font=Arial size=+1], [FONT=Arial SIZE=+1] и [FoNt=Arial SiZe=+1] - равнозначно.

  2. Значения атрибутов могут быть закавычены "так" и 'так', либо никак не закавычены. Следующие конструкции равнозначны: [google="BBCode"], [google='BBCode'], [google=BBCode].. Следующие конструкции НЕ равнозначны: [google="Поддержка BBCode"], [google=Поддержка BBCode]. Последний вариант будет интерпретирован скриптом как [google="Поддержка" BBCode=""].

  3. Теги могут быть вложенными. Но те из них, которые создают элементы блочного типа (такие как [h1] или [table]), не могут быть вложены в строчные теги (такие как [i] или [color]). Строчные элементы закрываются, если начинается блочный. Эти ограничения обусловлены требованиями W3C.

  4. Теги должны быть правильно вложены. Неправильный код "[b][i]текст[/b][/i]" будет интерпретирован скриптом как "[b][i]текст[/i][/b][/i]". Это ограничение также обусловлено требованием W3C.

  5. В данной реализации BBCode поддерживаются закрывающие теги вида [/]. Такой тег закрывает последний незакрытый тег. Например, [b]текст[/b] равнозначно [b]текст[/]. Тем не менее рекомендую пользоваться именно первой формой написания. Attention Тогда, в случае нагромождения вложенных тегов, вам будет легче ориентроваться в коде. Кроме того, первая форма написания позволяет скрипту более корректно обрабатывать пользовательские ошибки.

  6. Поддерживается закрытие тега способом [тег /]. Например, конструкции [url name=top][/url] и [url name=top /] равнозначны.

  7. В некоторых случаях можно не писать закрывающий тег. Например, тег [tr] (строка таблицы), будет автоматически закрыт, как только встретится очередной [tr] или закрывающий тег [/table]. Тег [hr] вообще не имеет закрывающего, интерпретируется скриптом как [hr/]. О поведении конкретных тегов смотрите их описания.

  8. При конвертации ББКода в HTML сохраняется форматирование пробелами. Т.е. все двойные пробелы переводятся в '&nbsp;&nbsp;', все переводы строк заменяются на '<br />'. Однако вокруг некоторых элементов (таких как [h1]) игнорируются 1-2 перевода строк, так как эти элементы сами по себе создают дополнительные отступы. Это сделано для того, чтобы по возможности приблизить визуальное представление HTML к исходному ББкоду.
xBB поддерживает мнемонизацию специальных символов. Например, чтобы вывести на печать [b] без преобразования в HTML, можно ввести @l;b@r;. Поддерживаются мнемоники следующих спецсимволов:

  1. Открывающая квадратная скобка '[' может быть мнемонизирована как '@l;'.

  2. Закрывающая квадратная скобка ']' может быть мнемонизирована как '@r;'.

  3. Двойная кавычка '"' может быть мнемонизирована как '@q;'.

  4. Одинарная кавычка "'" (апостроф) может быть мнемонизирована как '@a;'.

  5. Знак собачки '@' может быть мнемонизирован как '@at;'.
Поддержка "автоматических ссылок" означает, что строки вида "http://какойто_uri", "https://какойто_uri", "ftp://какойто_uri", "www.какойто_uri" и "ящик@домен" автоматически конвертируются в соответствующие гиперссылки. Этого не происходит для содержимого таких тегов как [code], [nobb] и аналогичных. Автоматические ссылки могут быть отключены. Как это делается - смотрите главу об API.

О задании наборов смайликов - смотрите главы "Быстрый старт" и "API".

Далее подробно описываются теги, поддержка которых реализована в xBB по умолчанию.

Скачать zip-архив со скриптом, тестами и набором смайликов можно здесь.


Просмотры 22 просмотра

Статистика просмотров страницы:

  • за последние 3 месяца (Май 2022 - Июль 2022) - 4;
  • за последний год (Август 2021 - Июль 2022) - 19;

Отзывы

Админ
Отлично!
Март 28 Админ

Статьи и обзоры Все статьи

По итогам каждого года появляются всякого рода рейтинги, где перечисляются ...
Когда производительности персонального компьютера становится недостаточно, владелец может без проблем ...
Медицина считается одной из самых сложных и наукоемких отраслей, чья ...
Веб-сайт считается успешным, если он располагается на первых страницах поисковой ...