Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Клуб профессиональных программистов :: Выпуск #17




Специальные символьные конструкции для разметки текста - 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. Текст между тегами не обрабатывается.

Данная статья написана в редакторе SMF и сформатированна с использованием BBcodes.

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

А теперь прощаемся с Вами до следующего выпуска.

                                        С уважением, команда Клуба.




В избранное