Поделиться через


Текстовые функции

TextBlock предоставляет некоторые дополнительные функции для форматирования и локализации текста.

Markdown (вариант CommonMark)

Встроенная функция разметки адаптивных карточек реализована за счет поддержки CommonMark, разновидности синтаксиса Markdown.

Примечание

RichTextBlock не поддерживает Markdown, но предлагает широкий набор параметров конфигурации текста непосредственно в TextRun.

Поддерживается

Стиль текста Markdown
Жирный **Bold**
Наклонный _Italic_
Маркированный список - Item 1\r- Item 2\r- Item 3
Нумерованный список 1. Green\r2. Orange\r3. Blue
Гиперссылки [Title](url)

Не поддерживается

  • Заголовки
  • таблицы;
  • образы,
  • все, что не указано в таблице выше.

Пример разметки Markdown

Приведенный далее код визуализирует текст с такой разметкой:

markdown screenshot

{
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "type": "AdaptiveCard",
    "version": "1.0",
    "body": [
        {
            "type": "TextBlock",
            "text": "This is some **bold** text"
        },
        {
            "type": "TextBlock",
            "text": "This is some _italic_ text"
        },
        {
            "type": "TextBlock",
            "text": "- Bullet \r- List \r",
            "wrap": true
        },
        {
            "type": "TextBlock",
            "text": "1. Numbered\r2. List\r",
            "wrap": true
        },
        {
            "type": "TextBlock",
            "text": "Check out [Adaptive Cards](https://adaptivecards.io)"
        }
    ]
}

Форматирование и локализация даты и времени

Иногда часовой пояс получателя карточки неизвестен, поэтому в адаптивных карточках реализованы функции форматирования DATE() и TIME() для автоматической локализации времени на целевом устройстве.

Пример отображения даты и времени

{
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "type": "AdaptiveCard",
    "version": "1.0",
    "body": [
        {
            "type": "TextBlock",
            "text": "Your package will arrive on {{DATE(2017-02-14T06:00:00Z, SHORT)}} at {{TIME(2017-02-14T06:00:00Z)}}",
            "wrap": true
        }
    ]
}

На карточке из этого примера будет отображено следующее:

Your package will arrive on Tue, Feb 14th, 2017 at 6:00 AM (Ваша посылка прибудет во вторник 14 февраля 2017 г. в 06:00).

Правила для функций даты и времени

Существуют некоторые требования к правильной интерпретации даты и времени на разных платформах. Если эти требования не соблюдать, будет отображаться необработанная строка.

  1. Регистр учитывается (нужно использовать только прописные буквы).
  2. Не должно быть пробелов между {{, }} или круглыми скобками.
  3. Нужно строго соблюдать требования к форматированию стандарта RFC 3389 (см. примеры ниже).
  4. Необходимо указать допустимое значение даты и времени.

Допустимые форматы

  • 2017-02-14T06:08:00Z
  • 2017-02-14T06:08:00-07:00
  • 2017-02-14T06:08:00+07:00

Параметры форматирования даты

Для отображения даты можно использовать дополнительные параметры форматирования.

Формат Пример
COMPACT (по умолчанию) "13.02.2017"
SHORT "Пн 13 февраля 2017 г."
LONG "Понедельник 13 февраля 2017 г."