Создание кастомизированной документации по YDB
Содержимое подкаталога core
подключается в разные окружения сборки документации как библиотека, для создания кастомизированной документации.
Подкаталог overlay
предназначен для кастомизирующего контента, и для OpenSource сборки является техническим, так как OpenSource сборка не содержит кастомизаций ядра.
Прокси-статьи
Файл со статьей в core
никогда не содержит контента непосредственно, а только одну или несколько инструкций include блоков этого контента, размещенных в подкаталоге _includes
. В результате, замена этого файла в overlay
не приводит к необходимости копирования контента, но позволяет сделать следующие виды его адаптации:
- Добавить дополнительный контент в начало или конец статьи
- Вставить дополнительный контент между директивами include
- Убрать из сборки часть контента исходной статьи, удалив соответствующую директиву include
Инструкции по оформлению статей в core и overlay приведены в Руководстве по созданию контента - Статьи.
TOC (Table of Contents) - содержание
TOC в документации YDB собирается из множества файлов, размещенных в директориях со статьями, которые иерархически включаются друг в друга директивой include. В результате каждый из этих файлов может быть переопределен по отдельности в адаптированной документации.
Как и для статей, для файлов TOC применяется подход с прокси, со следующей реализацией:
- Файл с пунктами меню для core называется
toc_i.yaml
. Он никогда не переопределяется вoverlay
. - Рядом с файлом
toc_i.yaml
в core находится файлtoc_p.yaml
, содержащий ссылку наtoc_i.yaml
, и предназначенный для переопределения вoverlay
. - Включение TOC других разделов делается ссылкой на файл
toc_p.yaml
. - Если в некоторой директории не требуется корректировать содержимое TOC, то никакие файлы toc* в
overlay
не создаются, что приводит к использованию toc_p --> toc_i из core при сборке. - Если в некоторой директории требуется скорректировать содержимое toc, то в
overlay
создается файлtoc_p.yaml
, в контент которого включается существовавший в core- include: { mode: link, path: toc_i.yaml }
, а выше или ниже -- дополнительные пункты для адаптированной сборки.
Хорошей практикой является исключение из toc_i.yaml пункта "Обзор" и включение его непосредственно в toc_p.yaml. Данная статья обязана быть первой в каждом подменю, и всегда имеет одно имя статьи (index.md). Включение отдельным пунктом в toc_p позволяет добавить новые статьи в адаптированной документации перед статьями из core, но с сохранением "Обзор" на первом месте:
toc_p.yaml в некотором корпоративном overlay:
items:
- name: Обзор
href: index.md
- name: Роли сотрудников
href: corp_roles.md
- include: { mode: link, path: toc_i.yaml }
- name: Корпоративная авторизация
href: corp_auth.md
Как и для статей, в core может быть заготовлено несколько файлов toc_i*.yaml, включаемых в toc_p отдельными include.
В корневом каталоге также есть пара файлов toc_i и toc_p, представляющих верхний уровень оглавления.
Так как включение файлов производится ссылками на них из родительского toc, то имя файла на самом деле технически может быть любым, и описанное выше -- только соглашение о наименованиях. Но есть один запрет:
Важно
Имя файла с TOC не может быть toc.yaml
, так как инструмент сборки ищет файлы с такими именами по всем подкаталогам, и пытается их сам добавить в TOC. Этот вариант добавления в документации YDB не используется, любое включение всегда явное директивой include из другого TOC.
Единственное исключение -- это начальный toc.yaml
, который размещается в корне сборки документации, и всегда содержит команду копирования содержимого core и перехода к обработке TOC в core: include: { mode: merge, path: core/toc_m.yaml }
.
Инструкции по оформлению TOC в core и overlay приведены в Руководстве по созданию контента - TOC.