Некоторые сведения о BBcode в SMF.

Автор RXL, 29 декабря 2006, 11:19:46

« назад - далее »

0 Пользователи и 2 гостей просматривают эту тему.

RXL

Некоторые сведения о BBcode в SMF.

Версия для www.simplemachines.ru от 29.12.2006.
Оригинал: http://club.shelek.ru/viewart.php?id=274
В статье упоминается SMF версии 1.1RC2, но написанное так же относится к текущей версии - 1.1.1. Конечно, возможны какие-либо изменения и расширения правил - я это еще не проверял.
RXL



Специальные символьные конструкции для разметки текста - BBcode - называются по имени движка phpBB, в котором были реализованы. Идея оказалась настолько удачной, что ее переняли разработчики других движков. Сегодня я расскажу об использовании BBcode в движке SMF (Simple Machines Forum) версии 1.1RC2.


Прямые ссылки на описание кодов:




Некоторые сведения о BBcode в SMF.

Все теги набираются в нижнем регистре.

Все теги классифицированны по типам.

Типы (из комментария в 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/], [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]

То же, но по-русски:

  • Без параметров. Текст между тегами может содержать другие теги.
  • Необрабатываемый параметр. Текст между тегами может содержать другие теги.
  • Обрабатываемый параметр. Текст между тегами может содержать другие теги.
  • Без параметров. Текст между тегами может содержать любой текст - он не обрабатывается.
  • Одиночный тег без параметров.
  • Необрабатываемый параметр-список. Текст между тегами может содержать другие теги.
  • Необрабатываемый параметр-список. Текст между тегами может содержать любой текст - он не обрабатывается.
  • Необрабатываемый параметр. Текст между тегами может содержать любой текст - он не обрабатывается.

Необрабатываемый текст может содержать конструкции, похожие на BBcode, но не обрабатываемые движком.

Также теги могут иметь дополнительные именованные параметры.



Теги, поддерживаемые SMF 1.1 RC2.



  • Свойства текста.


    • Задание цвета

      black, blue, green, red, white - Парные теги, без параметров. Могут содержать другие теги.

      color   - Парный тег. Один параметр - цвет: слово или #rrggbb (как в HTML). Может содержать другие теги.


    • Внешний вид. Базовые свойства шрифта.
      Парные теги, без параметров. Могут содержать другие теги.


      b- жирный (bold)
      i- курсив (italic)
      u- подчеркнутый (underline)
      s- зачеркнутый (strict)
      sub- нижний индекс (subscript)
      sup- верхний индекс (superscript)


    • Внешний вид. Строчные.
      Парные теги. Могут содержать другие теги.


      abbr- аббревиатура, текст с пояснением в виде всплывающей подсказки. Параметр - всплывающий текст.
      acronym- акроним. Аналог abbr.
      move- двигающийся текст (marquee)
      tt- моноширинный (teletyped)
      grow- спецэффект с подсветкой символов. Параметр списочный: цвет,strength.
      shadow- спецэффект с тенью. Параметр списочный: цвет,положение_тени. Положение тени задается словами left, right, top, bottom или в градусах. Реально же есть всего 5 градаций: <50, <100, <190, <280 и >=280.

      move, grow и shadow по-разному работают в разных браузерах. Лучше их не применять.


    • Выравнивание текста.
      Парные теги, без параметров. Могут содержать другие теги.


      left- выравнивание текста по левому краю
      center- выравнивание текста по центру
      right- выравнивание текста по правому краю
      justify- выравнивание текста по обоим краям (в официальном релизе отсутствует - реализован на forum.shelek.com)


    • Управление шрифтами.
      Парные теги.


      font- задает тип (или имя) шрифта. Можно задать списком - используется первый поддерживаемый.
      size- задает размер шрифта числом, числом с указанием единицы измерения (pt и px) или словом (как в CSS).

      Так как браузеры по-разному обрабатывают размер шрифта, заданный без указания единицы измерения, то лучше будет всегда укзывать единицу.


    • Направление текста.

      Парные теги, без параметров. Могут содержать другие теги.

      ltr- слева направо
      rtl- справа налево

      rtl поддерживается только для языков, которые пишутся справа налево.


  • Блочные теги.


    • Простые блоки.


      code- блок исходного кода. Если код - php (содержит <?php ?>), то выполняется автоматическая встроенная в php подсветка. Текст между тегами не обрабатывается. Необязательный параметр просто копируется в заголовок блока.
      php- аналог code. Текст изначально считается php-кодом.
      pre- форматированный текст. Выводится моноширинным шрифтом. Сохраняются все пробелы. Может содержать другие теги.
      html - блок для чистого html-кода. Текст между тегами не обрабатывается.
      me- блок, оформленный согласно CSS-классу "meaction". Имеет один параметр, подставляемый в начало текста. Может содержать другие теги.
      nobbc- блок, внутри которого текст не обрабатывается.
      quote- цитирование. Может содержать другие теги. Имеет необязательные параметры (но устанавливаться должны все сразу):

                   
      • 'author' - текст - 1..192 любых символа, кроме символов "<" и ">"
      • 'link' - ссылка одного из следующих форматов:
                        [board=НОМЕР;]topic=НОМЕР[.msgНОМЕР#msgНОМЕР][;start=НОМЕР]
                        [board=НОМЕР;]action=profile;u=НОМЕР
      • 'date' - время в формате unix timestamp


    • Списки.


      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.
      li- элемент списка. Может содержать другие теги.


    • Таблицы.


      table- таблица. Может содержать только теги tr. Границы ячеек и таблицы не отображаются.
      tr- строка таблицы. Допустим только внутри table. Может содержать только теги td.
      td- ячейка таблицы. Допустим только внутри tr. Может содержать другие теги.


  • Ссылки.


    anchor- якорь (точка, на которую можно ссылаться). Имеет один параметр: идентификатор, начинающийся с латинской буквы и содержащий латинские буквы, арабские цифры, знаки '_' и '-'. В начале идентификатора может стоять символ '#'. Может содержать другие теги.
    email- ссылка на почту (mailto:). E-mail передается в параметре, иначе - используется текст между открывающим и закрывающим тегами. Может содержать другие теги.
    ftp- ссылка на ftp. Работает аналогично email.
    url- общая ссылка. Работает аналогично email. Текст между тегами не обрабатывается.
    flash- flash-объект. Параметры аналогичны параметрам email. Текст между тегами не обрабатывается.
    img- картинка. Ссылка задается между открывающим и закрывающим тегами. Текст между тегами не обрабатывается. Имеет необязательные параметры:

                 
    • alt - текст, отображаеммый при отключенных картинках
    • width - ширина
    • height - высота
    iurl- ссылка. URL задается между тегами либо параметром. В первом случае текст между тегами не обрабатывается. В последнем случае можно написать идентификатор, заданный в anchor и начинающийся с символа '#'.


  • Прочие.


    br- принудительный перевод строки. Одиночный тег без параметров.
    hr- горизонтальная линия. Одиночный тег без параметров.
    time- выводит сформатированную дату. Обязательный параметр - время формата unix timestamp. Текст между тегами не обрабатывается.


  • Дополнения для shelek.com
    Парные теги.


    h1 ... h6- заголовок. Аналог HTML заголовков.
    para- параграф (в русской терминологии - абзац) с отсупом на первой строке.
    offtop и offtopic- полушутошный блочный тег. Смысл: автор сам помечает офтоп в своих текстах, чтобы модератору было проще его вырезать.


19.08.2006 Чернышов Роман (RXL)