Настройки YFM-проекта
В зависимости от используемого инструмента вы можете задать стандартные настройки YFM-проекта одним из способов:
- в файле конфигурации;
- в качестве параметра функции (Transformer);
- через ключи запуска (Builder).
Файл конфигурации
В файле конфигурации можно задать:
По умолчанию используется файл .yfm
в корне документа. При сборке можно указать путь до другого файла с помощью ключа запуска --config
.
Структура
Файл конфигурации .yfm
содержит список всех параметров в формате YAML:
parameter: value
parameter: value
parameter
— имя задаваемой настройки;value
— значение настройки.
Параметры
Корневая секция параметров
Параметр |
Описание |
Тип и значение по умолчанию |
|
Разрешить использование html-элементов в разметке. |
|
|
Применять ли пресеты переменных. |
|
|
Переносить строки по символу перевода каретки. |
|
|
Разрешить блоки кода с условиями с помощью операторов. |
|
|
Массив языков, участвующих в сборке. |
— — |
|
Подключить файл линтера. |
|
|
Включает очистку HTML-разметки от потенциально опасных элементов в |
|
|
Формат файлов итоговой сборки. |
|
|
При значении |
|
|
Убрать из оглавления все объекты, отмеченные атрибутом |
|
|
Собирать одностраничную сборку из всех файлов проекта. |
|
|
Cтрогий режим сборки, все предупреждения YFM отображаются как ошибки. |
|
|
Имя пресета переменных, который необходимо использовать при сборке. |
— |
docs-viewer
Секция параметров
Название |
Описание |
Тип и значение по умолчанию |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Конфигурация для модуля аналитки. |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Настройки аналитики Google Tag Manager. |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Идентификатор Google Tag Manager в формате GTM. |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Тип уведомления перед отправкой событий |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Отключить использование переменных. |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Иконка во вкладке браузера. Можно использовать любую ссылку на изображение, подходящее под стандартные требования к фавиконкам. |
— |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Язык по умолчанию для локализации. |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Массив языков, отображаемых в интерфейсе документации. Язык по умолчанию при открытии страницы — первый элемент в массиве. Пример структуры проекта с несколькими языками
Полный список поддерживаемых языков
Важно Языки, не включённые в список, отображаться не будут. Если структура проекта содержит языковые папки, то указывать параметр обязательно, даже если в проекте используется только один язык. |
— |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Преобразовывать ссылкоподобные строки в ссылки. Пример ссылки: https://diplodoc.com/ru или diplodoc.com/ru. |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Настройки логотипа:
Если логотип для темной темы не указан, используется изображение для светлой темы. Для указанных выше параметров можно настроить определенные логотипы для разных языков документации. ПримерыОдин логотип для всех языков:
Отличающиеся логотипы для разных языков:
В этом примере при переходах по ссылкам с указанием языкового каталога будут отображаться Примеры ссылок и отображаемых логотипов:
|
— — |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Номер счетчика Яндекс Метрики. Можно подключить несколько счетчиков:
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Запрет на индексирование внешними роботами. Рекомендуется использовать до публичных запусков, чтобы документ не отображался в поисковиках. |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Формирует URL-адрес проекта. Требования:
Важно Есть три зарезервированных имени, которые нельзя указывать в качестве значения
|
— |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Генерировать дополнительные якоря, совместимые с GitHub. |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Выбор темы оформления: светлая или темная. По умолчанию доступны обе. Можно отключить одну из них, указав используемую по умолчанию, например:
|
|
resources
Секция параметров
Название |
Описание |
Тип и значение по умолчанию |
|
Разрешить загрузки пользовательских ресурсов в статически сгенерированные страницы. |
|
|
Разрешить использовать статический контент (например, файлов изображений, CSS или JS). |
|
|
Список разрешенных ресурсов. |
— — |
|
Управление Content Security Policy (CSP). Пример структуры
Данная конфигурация преобразуется в HTML-тег вида:
Ключи объекта соответствуют поддерживаемым директивам CSP. Система не проверяет корректность указанных значений — они берутся из |
— |
search
Секция параметров поиска Чтобы добавить поиск в документацию, явно пропишите секцию search
в файле .yfm
.
Diplodoc поддерживает в режиме статической сборки документации два типа интеграции поиска:
По умолчанию поиск отключён — для его появления настройте секцию search
.
Общие параметры
Параметр | Описание | Тип | Значение по умолчанию |
---|---|---|---|
provider |
Выбор поисковой системы. Варианты: local — локальный поиск (Lunr.js);algolia — облачный поиск на базе Algolia. |
string | — (поиск не подключён) |
provider: local
)
Параметры для локального поиска (Параметр | Описание | Тип | Значение по умолчанию |
---|---|---|---|
tolerance |
Глубина расширения совпадений: 0 — только полное совпадение слова; 1 — совпадение по префиксу ( word* );2 — совпадение по любой подстроке слова ( *word* ). |
number | 2 |
confidense |
Режим ранжирования результатов:phrased — выше ранжируются результаты по длине найденной фразы;sparsed — выше ранжируются результаты по количеству найденных слов. |
string | phrased |
provider: algolia
)
Параметры для поиска через Algolia (Параметр | Описание | Тип | Значение по умолчанию |
---|---|---|---|
appId |
Algolia App ID. Обязательный параметр для облачного поиска. |
string | — |
apiKey |
Секретный Admin API Key для индексации. Рекомендуется передавать через переменные среды или CLI. |
string | — |
indexName |
Имя индекса в Algolia. | string | docs |
index |
Если true , индекс будет автоматически загружаться в Algolia после сборки.Если false , только создаётся локальный индекс. |
bool | false |
searchApiKey |
Search API Key. Клиентский ключ для поиска на фронте. Без него облачный поиск не работает на клиенте. |
string | search-api-key |
api |
Путь к js-API поиска на клиенте. | string | _search/api.js |
indexSettings |
Настройки индекса Algolia. | object | — |
querySettings |
Настройки параметров поиска Algolia. | object | — |
Примеры настройки поиска
Локальный поиск:
search:
provider: local
tolerance: 2
confidense: phrased
Поиск через Algolia:
search:
provider: algolia
appId: <ВАШ_APP_ID>
indexName: docs
index: true
searchApiKey: <ВАШ_SEARCH_API_KEY>
indexSettings:
searchableAttributes:
- title
- content
- headings
querySettings:
hitsPerPage: 10
attributesToRetrieve:
- title
- content
- url
Примечания
- Для активации поиска обязательно добавьте секцию
search
и укажитеprovider
. - Для больших проектов рекомендуется облачный поиск Algolia.
- Не публикуйте
apiKey
от Algolia в публичных репозиториях или продакшн-конфигурациях — используйте переменные среды либо CLI-параметры.
.yfm
Пример файла # Корневая секция параметров
strict: true
breaks: false
singlePage: true
apply-presets: true
varsPreset: 'external'
needToSanitizeHtml: true
langs: ['en', 'ru']
# Секция параметров вьюера (docs-viewer)
docs-viewer:
project-name: project-name
no-index: true
langs: ['en', 'ru']
metrika: 678489
themes: [light]
favicon-src: https://raw.githubusercontent.com/yandex-cloud/yfm-documentation/master/_images/logo_blue_32x32.png
# Настройки логотипа
logo-options:
url: https://diplodoc.com/docs/{lang}/
src: https://storage.yandexcloud.net/docs-external/yfm-documentation/_images/logo.svg
src-dark: https://storage.yandexcloud.net/docs-external/yfm-documentation/_images/logo.svg
src-mobile: https://storage.yandexcloud.net/docs-external/yfm-documentation/_images/logo.svg
src-mobile-dark: https://storage.yandexcloud.net/docs-external/yfm-documentation/_images/logo.svg
src-preview: https://storage.yandexcloud.net/docs-external/yfm-documentation/_images/share-logo-dark.svg
# Если логотипа нет, то вместо него можно задать текст
title: Yandex Flavored Markdown
# Секция ресурсов
resources:
csp:
- "frame-src":
- "https://test.site"