Профилирование

Статья создана
Обновлена 5 декабря 2025 г.

Текст размечается с помощью условных операторов или переменных. При сборке в каждый выходной документ подставляются только нужные фрагменты текста.

Организация проекта

  1. В корне проекта создайте папку common с исходными файлами.

  2. В корне проекта создайте папки для каждой версии документа. Например, android и ios для разных платформ.

  3. В папках для версий документов настройте конфигурационные файлы.

Пример организации структуры:

project_name
├── common  # папка с файлами проекта
│   ├── ru # языковая папка
│   │   ├── index.md
│   |   ├── presets.yaml
│   |   └── toc.yaml
|   └── en  # языковая папка
│       ├── index.md
│       ├── presets.yaml
│       └── toc.yaml
├── document_name_1  # Папка собираемого документа, например android, windows или tld-com
│   ├── .yfm
├── document_name_2
│   ├── .yfm
├── document_name_3
|   ├── .yfm

Шаг 1. Добавьте пресеты переменных

Cоздайте файл presets.yaml. Общий файл располагается в корневой директории проекта и содержит все переменные для каждого условия профилирования.

Значения переменных, которые установлены по умолчанию, поместите в пресет default. Он является обязательным.

Уникальные значения поместите в отдельные пресеты для каждого условия профилирования.

Пример файла presets.yaml для разных платформ
default: # набор значений по умолчанию
  locale: ru
  platform: browser

ios: # набор значений для ios
  platform: ios

android: # набор значений для android
  platform: android

Обычно условия профилирования называют product, platform, audience, но можно использовать и любые другие имена, которые приняты в вашем проекте.

Узнайте больше

Шаг 2. Разметьте текст документа

Текст размечается с помощью условных операторов или переменных.

Важно

Если текст размечен с помощью переменных, то в файле presets.yaml должны быть пресеты для каждого варианта профилирования. При сборке значения переменных берутся из пресета default и пресета, который указан в конфигурационном файле .yfm в параметре varsPreset.

Условия для профилирования могут быть составными. Несколько условий объединяются с помощью операторов or или and.

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

Три фрагмента, которые отличаются для каждой платформы:

{% if platform == "ios" %}
Скачайте приложение в [App Store](https://www.apple.com/ios/app-store/).
{% endif %}

{% if platform == "android" %}
Скачайте приложение в [Google Play](https://play.google.com).
{% endif %}

{% if platform == "browser" %}
Откройте страницу в браузере.
{% endif %}

Фрагмент можно отнести к нескольким платформам:

{% if platform == "ios" or platform == "android" %}
Скачайте приложение.
{% endif %}

Фрагмент должен отображаться для определенной платформы и только в выбранном регионе:

{% if platform == "browser" and locale == "ru" %}
Откройте страницу example.ru.
{% endif %}

Шаг 3. Разметьте оглавление документа

Оглавление документа toc.yaml размечается при помощи условного оператора when:

when: условие == "значение"
Примеры

Две страницы, которые отображаются для разных платформ:

- name: Обзор iOS
  href: iOS-overview.md
  when: platform == "ios"
- name: Обзор Android
  href: android-overview.md
  when: platform == "android"

Одна страница отображается для нескольких платформ:

- name: Обзор
  href: overview.md
  when: platform == "ios" or platform == "android"

Страница должна отображаться для определенной платформы и только в выбранном регионе:

- name: Обзор
  href: overview.md
  when: platform == "ios" and locale == "ru"

Шаг 4. Настройте конфигурационные файлы

Конфигурационные файлы необходимы для правильной сборки и публикации проекта.

Файл .yfm

В конфигурационный файл .yfm добавьте следующие параметры сборки:

apply-presets: true
varsPreset: "имя-пресета"

В поле varsPreset укажите имя пресета из шага 1.