Файл products.yml#

Список карточек на главной задаётся YAML-файлом data/portal/data/products.yml. Пример структуры:

- name: "Мой продукт"
  slug: "my-product"
  description: "Краткое описание"
  docs:
    - title: "Руководство"
      url: "/docs/my-product/guide/"
    - title: "API"
      url: "/docs/my-product/api/"

Поле url должно совпадать с реальным путём статики под data/<slug>/... и префиксом /docs/ в браузере.

Поиск#

На портале поиск фильтрует карточки по названию продукта (клиентский JavaScript, без сервера).

Тема и статика#

Стили и скрипты портала — в data/portal/static/. Внешние CDN в поставке не используются.

Публикация из CI#

Процесс publish-api в контейнере с Caddy принимает ZIP статики, обновляет products.yml и пересобирает портал Hugo. Примеры pipeline — ci-templates/gitlab-ci.yml и ci-templates/github-actions-product-docs.yml.