Автор:
Чернышов Роман (RXL)Дата написания: 2005
Последнее изменение: 25.08.2011.
Специальные символьные конструкции для разметки текста — BBcode — называются по имени движка phpBB, в котором были реализованы. Идея оказалась настолько удачной, что ее переняли разработчики других движков. Сегодня я расскажу об использовании BBcode в движке SMF (Simple Machines Forum) версии 1.1.x
За годы эксплуатации SMF на форуме
forum.shelek.ru некоторые теги претерпели изменения и были добавлены новые. В соответствующих местах это будет отмечено знаком
[shelek]. Запрещенные на forum.shelek.ru будут отмечены знаком
[shelek]Все теги набираются в нижнем регистре.
Все теги классифицированы по типам.
Специфичная информация.
Типы (из комментария в Source/Subs.php):
- (missing): [tag]parsed content[/tag]
- unparsed_equals: [tag=xyz]parsed content[/tag]
- parsed_equals: [tag=parsed data]parsed content[/tag]
- unparsed_content: [tag]unparsed content[/tag]
- closed: [tag]...[tag /]
- unparsed_commas: [tag=1,2,3]parsed content[/tag]
- unparsed_commas_content: [tag=1,2,3]unparsed content[/tag]
- unparsed_equals_content: [tag=...]unparsed content[/tag]
То же, но по-русски:
- (missing). Простой тег. Текст между тегами может содержать другие теги. Может содержать именованные параметры.
Пример: [img width=100]image url[/img] - unparsed_equals. Необрабатываемый параметр. Текст между тегами может содержать другие теги.
Пример: [color=yellow]text[/color] - parsed_equals. Обрабатываемый параметр. Текст между тегами может содержать другие теги.
Пример: [quote=source]text[/quote] - unparsed_content. Текст между тегами может содержать любой текст - он не обрабатывается.
Пример: [email]mailbox@example.com[/email] - closed. Одиночный тег без параметров. Пример: [hr]
- unparsed_commas. Параметр-список. Текст между тегами может содержать другие теги.
Пример: [shadow=black,bottom]text[/shadow] - unparsed_commas_content. Параметр-список. Текст между тегами может содержать любой текст - он не обрабатывается.
Пример: [flash=200,100]flash url[/flash] - unparsed_equals_content. Параметр сложного формата. Текст между тегами может содержать любой текст - он не обрабатывается.
Пример: [code=main.cpp,1,10-12]code[/code]
Необрабатываемый текст может содержать конструкции, похожие на BB-code, но не обрабатываемые движком.
Также теги могут иметь дополнительные именованные параметры.
black, blue, green, red, white — Парные теги, без параметров. Могут содержать другие теги.
color — Парный тег. Один параметр — цвет: слово или #rrggbb (как в HTML). Может содержать другие теги.
Парные теги, без параметров. Могут содержать другие теги.
b — жирный (bold).
i — курсив (italic).
s — зачеркнутый (strict).
sub — нижний индекс (subscript).
sup — верхний индекс (superscript).
u — подчеркнутый (underline).
Парные теги. Могут содержать другие теги.
abbr, acronym — аббревиатура, текст с пояснением в виде всплывающей подсказки. Параметр - всплывающий текст.
grow — спецэффект с подсветкой символов. Параметр списочный: цвет,strength.
[shelek] move — двигающийся текст (marquee).
[shelek] tt — моноширинный (teletyped)
shadow — спецэффект с тенью. Параметр списочный: цвет,положение_тени. Положение тени задается словами left, right, top, bottom или в градусах. Реально же есть всего 5 градаций: <50, <100, <190, <280 и >=280.
[shelek] move, grow и shadow по-разному работают в разных браузерах. Лучше их не применять.
Парные теги, без параметров. Могут содержать другие теги.
center — выравнивание текста по центру.
justify — выравнивание текста по обоим краям.
[shelek] left — выравнивание текста по левому краю.
right — выравнивание текста по правому краю.
Парные теги.
font — задает тип (или имя) шрифта. Можно задать списком - используется первый поддерживаемый.
size — задает размер шрифта числом, числом с указанием единицы измерения (pt и px) или словом (как в CSS).
Так как браузеры по-разному обрабатывают размер шрифта, заданный без указания единицы измерения, то лучше будет всегда укзывать единицу.
Парные теги, без параметров. Могут содержать другие теги.
ltr — слева направо.
rtl — справа налево.
rtl поддерживается только для языков, которые пишутся справа налево.
code — блок исходного кода. Если код - php (содержит <?php ?>), то выполняется автоматическая встроенная в php подсветка. Текст между тегами не обрабатывается. Необязательный параметер просто копируется в заголовок блока.
h1 ... h6 — заголовок. Аналог HTML заголовков.
[shelek] html — блок для чистого html-кода. Текст между тегами не обрабатывается.
[shelek] me — блок, оформленный согласно CSS-классу "meaction". Имеет один параметр, подставляемый в начало текста. Может содержать другие теги.
[shelek] nobbc — блок, внутри которого текст не обрабатывается.
[shelek] offtop и offtopic — полушутошный блочный тег. Смысл: автор сам помечает офтоп в своих текстах, чтобы модератору было проще его вырезать.
[shelek] para — параграф (в русской терминологии - абзац) с отсупом на первой строке.
[shelek] php — аналог code. Текст изначально считается php-кодом.
pre — форматированный текст. Выводится моноширинным шрифтом. Сохраняются все пробелы. Может содержать другие теги.
quote — цитирование. Может содержать другие теги. Имеет необязательные параметры (но устанавливаться должны все сразу):
- 'author' - текст - 1..192 любых символа, кроме символов "<" и ">"
- 'link' - ссылка одного из следующих форматов:
[board=НОМЕР;]topic=НОМЕР[.msgНОМЕР#msgНОМЕР][;start=НОМЕР]
[board=НОМЕР;]action=profile;u=НОМЕР - 'date' - время в формате unix timestamp
li — элемент списка. Может содержать другие теги.
list — Задает список. Может содержать только теги li. В параметре type можно указать внешний вид списка: none, disc, circle, square, decimal, decimal-leading-zero, lower-roman, upper-roman, lower-alpha, upper-alpha, lower-greek, lower-latin, upper-latin, hebrew, armenian, georgian, cjk-ideographic, hiragana, katakana, hiragana-iroha, katakana-iroha.
table — таблица. Может содержать только теги tr. Границы ячеек и таблицы не отображаются.
td — ячейка таблицы. Допустим только внутри tr. Может содержать другие теги.
tr — строка таблицы. Допустим только внутри table. Может содержать только теги td.
anchor — якорь (точка, на которую можно ссылаться). Имеет один параметр: идентификатор, начинающийся с латинской буквы и содержащий латинские буквы, арабские цифры, знаки '_' и '-'. В начале идентификатора может стоять символ '#'. Может содержать другие теги.
email — ссылка на почту (mailto:). E-mail передается в параметре, иначе - используется текст между открывающим и закрывающим тегами. Может содержать другие теги.
flash — flash-объект. Параметры аналогичны параметрам email. Текст между тегами не обрабатывается.
ftp — ссылка на ftp. Работает аналогично email.
img — картинка. Ссылка задается между открывающим и закрывающим тегами. Текст между тегами не обрабатывается. Имеет необязательные параметры:
- alt - текст, отображаеммый при отключенных картинках
- width - ширина
- height - высота
Специально для
forum.shelek.ru были добавлены следующие модификации тега img:
iurl — ссылка. URL задается между тегами либо параметром. В первом случае текст между тегами не обрабатывается. В последнем случае можно написать идентификатор, заданный в anchor и начинающийся с символа '#'.
url — общая ссылка. Работает аналогично email. Текст между тегами не обрабатывается.
br — принудительный перевод строки. Одиночный тег без параметров.
hr — горизонтальная линия. Одиночный тег без параметров.
time — выводит сформатированную дату. Обязательный параметер - время формата unix timestamp. Текст между тегами не обрабатывается.
...