Перейти к содержимому

Словарь терминов

Единый словарь: если термин встречается в документации, его определение здесь, и оно одно. Отдельно отмечены перегруженные термины — те, что в разных местах значат разное.

Блок — переиспользуемая единица содержимого страницы: Liquid-шаблон, CSS, JS и схема полей. Один и тот же блок стоит на разных страницах с разным наполнением: значения полей задаются в момент, когда блок ставят на страницу.

Тип блока (block_type) — как заполняется содержимое:

Тип Что значит
schema обычный блок: значения полей заполняются строго по схеме. Значение по умолчанию
markdown блок с визуальным редактором текста: в значениях появляется зарезервированный ключ _markdown со строкой Markdown, которая при рендере превращается в HTML и приходит в шаблон как {{ content }}. Рядом с ним у блока могут быть и обычные поля

Markdown понимается в диалекте GFM: таблицы, зачёркивание, автоссылки. Подробнее — Markdown в блоках.

Ревизия блока — неизменяемый снимок содержимого блока: шаблон, стили, скрипт, схема, changelog, автор и дата. Сохранение блока не перезаписывает предыдущее состояние, а добавляет ревизию. У блока есть указатель на текущую.

Версия блока — пара чисел мажор.минор у ревизии. Минорная растёт при любых совместимых правках; мажорная — только когда из схемы пропало поле (удалено или переименовано), потому что страницы могут потерять настройки. Первая ревизия — 1.0. См. Ревизии и версии.

Схема полей — описание настроек блока: имена полей, типы, подписи, значения по умолчанию, обязательность, группировка по вкладкам. Именно она превращает кусок разметки в настраиваемый блок. Полный справочник — Схема полей.

Значения полей — заполненная по схеме структура для конкретного вхождения блока на страницу. В API это placeholder_values, в шаблоне — props.

Пресет блока — сохранённый набор заполненных значений, чтобы не заполнять форму заново. См. Пресеты.

Коллекция блоков — именованная упорядоченная подборка блоков. Инструмент организации, с областью видимости не связан.

Liquid — язык шаблонов. Работает дважды: на сервере при публикации и в браузере при предпросмотре, разными движками. Оба настроены мягко: неизвестная переменная и неизвестный фильтр дают пустую строку, а не ошибку. См. Liquid: основы.

Плейсхолдер — место в шаблоне, куда подставляется значение поля: {{ props.title }}. Поля доступны только через props; {{ title }} не выведет ничего.

Переменные сайта — значения уровня сайта с синтаксисом @имя. Подставляются в уже отрендеренный HTML, поэтому работают и в блоках, и в макетах; неизвестное имя заменяется пустой строкой. См. Переменные сайта.

Дизайн-токены и тема — цветовая схема магазина, синхронизированная с витрины. Блок, использующий токены, перекрашивается вместе с сайтом.

Страница — упорядоченный набор блоков внутри сайта плюс SEO-поля и связь с опубликованной страницей на витрине.

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

Папка страниц — группировка страниц внутри сайта. Вложенность произвольной глубины; папка принадлежит одному сайту, перенос между сайтами запрещён. Папки необязательны — большинство страниц лежат в корне. См. Папки.

Макет — обёртка страницы: шапка, футер, общая структура. Это документ вида «Макет», собранный из блоков вокруг лэйаута; содержимое страницы приходит в его шаблон переменной {{ content }}, которую заполняет витрина. См. Что такое макет.

Лэйаут — блок с ролью layout: единственный блок верхнего уровня документа-макета. В его шаблоне обязательны {{ content }} и {{ cms_assets_head }}.

Сайт — представление магазина внутри PageCraft: провайдер публикации и его настройки, переменные, хранилище медиа, синхронизированные темы и источники данных. Страница обязана принадлежать сайту, иначе её некуда публиковать. Сайты создаются в интерфейсе PageCraft; через публичное API их можно только перечислить и настроить.

Источник данных — именованный поставщик живых данных с витрины: товары рубрики, содержимое корзины и подобное. У источника есть стабильный идентификатор, схема параметров (params_schema) и ссылка на тип результата.

Тип результата — описание формы данных, которые возвращает источник, плюс заглушка (stub) — готовый пример этой формы. Несколько источников могут возвращать один тип.

Слот привязки (binding slot) — объявленное в схеме блока место под данные: какой тип результата ожидается, какие источники допустимы и какой из них подставляется по умолчанию. Наличие слотов делает блок SSR-блоком.

Привязка (binding) — назначение источника слоту у конкретного блока на странице, вместе с параметрами запроса: { "<слот>": { "source": "<id>", "params": { … } } }.

Слот композиции (slot) — объявленная в схеме блока область под другие блоки: {{ slots.<имя> }} в шаблоне выводит собранный HTML вложенных блоков. Блок с непустым slots называется контейнером — две колонки, табы, аккордеон. Не путать со слотом привязки: тот даёт данные ({{ data.<имя> }}), этот — вложенную вёрстку. Подробности — Схема полей и Сборка страницы.

Подробности — Биндинги и слоты и Реестр источников.

Область видимости (scope)private (блок или макет виден только владельцу) или global (общая библиотека, видна всем). Новый блок создаётся приватным, форк чужого — тоже.

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

Форк — копия чужого блока или макета в свою коллекцию для доработки. Ответ на ситуацию «в общем блоке чего-то не хватает»: вместо правки общего блока — своя копия. У исходника хранится счётчик форков, у копии — ссылка на источник.

Устаревший (deprecated) — пометка «пользоваться не рекомендуется» у блока или источника данных. Из списков и поиска он пропадает, существующие страницы продолжают работать. См. Устаревание и апгрейды.

Тег — метка для фильтрации в библиотеке. Теги блоков и теги макетов — раздельные справочники, общие для всех пользователей.

Избранное — личная пометка блока или макета, независимая от владения и области видимости.

Провайдер публикации — реализация выкладки собранной страницы во внешнюю систему. Основной — 4CMS; есть также FTP, но он не развивается.

SSR (серверный рендеринг) — сборка HTML на стороне PageCraft: шаблоны блоков рендерятся с их значениями и данными, результат оборачивается в макет. См. SSR-блоки.

Живой URL — адрес опубликованной страницы на витрине.

4CMS — eком-платформа 4partners, целевая система для публикации.

API-ключ — способ аутентификации внешнего клиента в публичном API /api/v1/*. Строка вида pb_ + 64 шестнадцатеричных символа, передаётся заголовком Authorization: Bearer pb_…. Создаётся в интерфейсе, хранится только в виде хеша — показать повторно нельзя. Действует от имени своего владельца и видит только его данные. См. API-ключи.

Скилл (agent skill) — пакет инструкций для ИИ-агента, который PageCraft раздаёт по /.well-known/agent-skills/. Агент читает скилл и узнаёт правила системы, вместо того чтобы их угадывать. См. Скиллы.

Харнесс — среда, в которой работает агент: Claude Code, Cursor и подобные.

«Слот» значит разное:

Где встречается Что значит
bindingSlots в схеме блока место под данные из источника
{{ content }} в шаблоне макета единственное место, куда вставляется HTML всех блоков страницы

Слоты вложенных блоков (блок внутри блока) в PageCraft не реализованы.

«Публикация» значит два разных действия:

  • публикация страницы — выкладка на витрину через провайдера;
  • публикация блока — заявка на попадание в общую библиотеку.

В документации первое называется «публикация страницы», второе — «заявка в библиотеку».


Источники: backend/src/Entity/Block.php, backend/src/Entity/BlockRevision.php, backend/src/Entity/PageBlock.php, backend/src/Entity/PageFolder.php, backend/src/Entity/Site.php, backend/src/Entity/DataSource.php, backend/src/Entity/DataResultType.php, backend/public/block-schema.json, backend/src/Service/BlockVersionService.php, backend/src/Service/Block/BlockPlaceholderSchemaBuilder.php, backend/src/Service/Block/ForkBlockService.php, backend/src/Service/ApiKey/CreateApiKeyService.php, backend/src/Service/PageFolder/UpdatePageFolderService.php, backend/src/Publishing/BlockRenderer.php, backend/src/Publishing/LayoutRenderer.php.