Настройка конфигурации коллекций Decap CMS

Наша компания занимается разработкой, поддержкой и обслуживанием сайтов любой сложности. От простых одностраничных сайтов до масштабных кластерных систем построенных на микро сервисах. Опыт разработчиков подтвержден сертификатами от вендоров.

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Предлагаемые услуги
Показано 1 из 1 услугВсе 2065 услуг
Настройка конфигурации коллекций Decap CMS
Простая
от 1 рабочего дня до 3 рабочих дней
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    874
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    851

Настройка конфигурации коллекций Decap CMS

Коллекции — центральный элемент config.yml. Каждая коллекция определяет тип контента: где хранятся файлы, как они называются, какие поля доступны редактору. Правильно настроенные коллекции — разница между CMS, которой удобно пользоваться, и набором непонятных полей.

Два типа коллекций

Folder collection — список однотипных записей (статьи, кейсы, вакансии):

collections:
  - name: blog
    label: Блог
    folder: content/blog
    create: true
    delete: true
    slug: "{{slug}}"
    fields:
      - { label: Заголовок, name: title, widget: string }
      - { label: Контент, name: body, widget: markdown }

Files collection — фиксированный набор страниц (главная, о нас, контакты):

  - name: pages
    label: Страницы
    files:
      - label: Главная страница
        name: home
        file: content/home.yaml
        fields:
          - { label: Заголовок hero, name: hero_title, widget: string }
          - { label: Подзаголовок, name: hero_subtitle, widget: text }
      - label: О компании
        name: about
        file: content/about.md
        fields:
          - { label: Заголовок, name: title, widget: string }
          - { label: Контент, name: body, widget: markdown }

Виджеты полей

Полный набор для реальных проектов:

fields:
  # Базовые
  - { label: Строка, name: title, widget: string, required: true }
  - { label: Текст, name: description, widget: text }
  - { label: Число, name: order, widget: number, value_type: int, default: 0 }
  - { label: Булево, name: featured, widget: boolean, default: false }
  - { label: Дата, name: date, widget: datetime, format: "YYYY-MM-DD" }

  # Выбор из списка
  - label: Категория
    name: category
    widget: select
    options:
      - { label: Новости, value: news }
      - { label: Кейсы, value: cases }
      - { label: Аналитика, value: analytics }

  # Медиафайл
  - { label: Обложка, name: cover, widget: image, required: false }

  # Markdown-редактор
  - label: Контент
    name: body
    widget: markdown
    modes: [rich_text, raw]

  # Список строк
  - { label: Теги, name: tags, widget: list, required: false }

  # Вложенный объект
  - label: SEO
    name: seo
    widget: object
    collapsed: true
    fields:
      - { label: Meta title, name: title, widget: string, required: false }
      - { label: Meta description, name: description, widget: text, required: false }
      - { label: OG Image, name: og_image, widget: image, required: false }

  # Список объектов
  - label: Преимущества
    name: features
    widget: list
    fields:
      - { label: Иконка, name: icon, widget: string }
      - { label: Заголовок, name: title, widget: string }
      - { label: Описание, name: description, widget: text }

Шаблон имени файла

slug определяет имя создаваемого файла. Доступны шаблонные переменные:

# Дата + slug из заголовка
slug: "{{year}}-{{month}}-{{day}}-{{slug}}"
# Результат: 2025-03-15-my-first-post.md

# Только slug
slug: "{{slug}}"

# Кастомное поле
slug: "{{fields.id}}-{{slug}}"

Сортировка и фильтрация в списке

- name: team
  label: Команда
  folder: content/team
  create: true
  sortable_fields: ['name', 'position', 'order']
  view_filters:
    - label: Только активные
      field: active
      pattern: true
    - label: Менеджеры
      field: department
      pattern: management
  view_groups:
    - label: По отделу
      field: department

Связанные коллекции через relation

  - label: Автор
    name: author
    widget: relation
    collection: team
    search_fields: ['name', 'position']
    value_field: name
    display_fields: ['name', 'position']

В Markdown-файле сохранится имя автора как строка. Если нужен ID — меняем value_field: "{{slug}}".

Вложенные записи с иерархией

- name: docs
  label: Документация
  folder: content/docs
  create: true
  nested:
    depth: 3
    summary: "{{title}}"
  meta: { path: { label: Путь, widget: parent-path } }

Это включает отображение документации как дерева в боковой панели — полезно для технической документации или каталогов.

Условные поля

fields:
  - label: Тип блока
    name: type
    widget: select
    options: [text, video, gallery]
  - label: Текст
    name: text
    widget: markdown
    condition:
      field: type
      value: text
  - label: URL видео
    name: video_url
    widget: string
    condition:
      field: type
      value: video

Поле condition скрывает/показывает поле в зависимости от значения другого поля.

i18n коллекций

i18n:
  structure: multiple_files
  locales: [ru, en]
  default_locale: ru

collections:
  - name: services
    label: Услуги
    folder: content/services
    create: true
    i18n: true
    fields:
      - { label: Заголовок, name: title, widget: string, i18n: true }
      - { label: Слаг, name: slug, widget: string, i18n: duplicate }
      - { label: Контент, name: body, widget: markdown, i18n: true }

i18n: duplicate означает, что поле копируется из основной локали и не переводится. Файлы хранятся как content/services/ru/service-name.md и content/services/en/service-name.md.

Сроки

Конфигурация коллекций для сайта с 5–8 типами контента: 4–8 часов. С i18n, conditional fields, relation-виджетами и проверкой на реальных данных: 1–2 дня.