Профилирование
Текст размечается с помощью условных операторов или переменных. При сборке в каждый выходной документ подставляются только нужные фрагменты текста.
Организация проекта
-
В корне проекта создайте папку
commonс исходными файлами. -
В корне проекта создайте папки для каждой версии документа. Например,
androidиiosдля разных платформ. -
В папках для версий документов настройте конфигурационные файлы.
Пример организации структуры:
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.