База знаний

Все инструкции от А до Я по работе с системой и ее архитектурой

1. Начало работы

Добро пожаловать в meloddyCMS! Платформа предназначена для легкого и интуитивного управления контентом ваших сайтов без необходимости знать программирование.

Регистрация и Вход

Вы можете самостоятельно зарегистрироваться на платформе. Для этого нажмите кнопку «Начать работу» на главной странице сайта или перейдите по ссылке https://meloddy-crm.ru/login.html?mode=register. Создайте свой аккаунт администратора, указав имя, действующий email и надежный пароль.

Личный профиль

В любой момент вы можете изменить свое отображаемое имя или адрес электронной почты. Для этого перейдите в раздел «Настройки» (вкладка «Профиль») в левом боковом меню панели управления.

2. Дашборд и Проекты

После входа вы попадаете на Дашборд. Это ваш главный пульт управления.

  • Статистика: Верхние плашки показывают общую сводку по вашему аккаунту: сколько у вас сайтов, сколько на них загружено изображений и какой объем на диске они занимают.
  • Активные проекты: Здесь в виде красивых карточек отображаются ваши сайты. По клику на кнопку редактирования вы перейдете в режим визуального редактора.
  • Последняя активность: Лента событий, показывающая, какие файлы изменялись в последнее время. Вы можете фильтровать ее по периоду (сегодня, неделя, месяц) и по конкретному сайту.

В карточке каждого проекта есть кнопка с тремя точками (...). При нажатии на неё откроется меню управления конкретным сайтом (настройки, SEO, аналитика и действия).

3. Визуальный редактор

Это главная фишка meloddyCMS. Вы редактируете сайт прямо поверх его реального дизайна.

Как менять текст

Наведите мышку на любой текст. Если он обвелся пунктирной линией, значит его можно изменить. Просто кликните по нему, сотрите старый текст и напишите новый. Форматирование (жирность, размер) сохранится автоматически.

Как менять картинки

Аналогично наведите на фотографию, логотип или иконку. По клику откроется стандартное окно вашего компьютера для выбора файла. Выберите новое изображение, и оно моментально загрузится на сайт.

Черновики и публикация

Когда вы вносите изменения, они сохраняются только для вас в виде черновика. Посетители сайта их не видят! Чтобы выкатить изменения на боевой сайт, обязательно нажмите фиолетовую кнопку «Опубликовать» на верхней панели редактора.

4. Настройки сайта и SEO

В дашборде, нажав (...) на карточке проекта, вы попадете в детальную панель управления сайтом, разделенную на несколько вкладок:

  • Вкладка «Настройки»: Здесь вы можете переименовать проект внутри CMS, добавить описание для клиентов, привязать собственный домен и загрузить favicon (иконку сайта).
  • Вкладка «Обзор»: Раздел детальной аналитики. Выводит количество просмотров и кликов, график визитов за неделю, статистику по типам устройств/браузеров посетителей, а также историю последних изменений.
  • Вкладка «SEO & Интеграции»: Важнейший блок для продвижения. Здесь настраиваются файл robots.txt, генерируется ссылка на авто-обновляемую карту сайта sitemap.xml, подключается ID счетчика Яндекс Метрики (с поддержкой Вебвизора) и привязываются уведомления в Telegram.
  • Вкладка «Доступ & Бэкапы»: Позволяет привязать сайт к коду вашего разработчика, настроить периодичность автобэкапов (каждый день, неделю или месяц), а также вручную создавать, скачивать и восстанавливать резервные копии проекта.
  • Вкладка «Опасная зона»: Служит для переноса прав владения сайтом на другой email или полного удаления проекта из CMS.

5. Заявки с сайта (Лиды)

Система может перехватывать данные с форм обратной связи на вашем сайте и моментально отправлять их вам в мессенджер.

Настройка Telegram

Чтобы бот присылал вам уведомления:

  1. Найдите в Telegram и запустите нашего официального бота: @meloddyCMS_bot (нажмите «Запустить» / Start).
  2. В меню бота запросите код для привязки нового сайта (бот выдаст вам короткий шестизначный код).
  3. В панели управления CMS в карточке нужного сайта нажмите три точки (...), выберите вкладку «SEO & Интеграции».
  4. В блоке «Уведомления в Telegram» введите полученный из бота код и нажмите «Подключить».
  5. Готово! Теперь все заявки с форм этого сайта будут мгновенно присылаться ботом прямо в ваш чат.

6. Создание из шаблонов

Если ваш разработчик подготовил для вас шаблоны, вы найдете их в Дашборде на вкладке «Шаблоны».

Чтобы развернуть новый сайт, достаточно нажать кнопку на карточке шаблона, ввести название нового проекта (ID) и подтвердить. CMS сама создаст точную копию этого шаблона в виде отдельного проекта, в котором вы сразу же сможете менять контент через визуальный редактор!

7. Управление файлами и медиатекой

В meloddyCMS встроен продвинутый, но простой в использовании Файловый менеджер. Доступ к нему осуществляется через главное меню в левой панели или по клику на кнопку «Файлы» в карточке нужного проекта.

Загрузка и организация

Вы можете перетаскивать файлы картинок, документов (PDF, DOCX) прямо в окно файлового менеджера. Все они будут бережно сохранены в структуре папок вашего сайта.

  • Оптимизация картинок: При загрузке через визуальный редактор система автоматически сжимает тяжелые фотографии, подгоняя их под веб-стандарты без видимой потери качества. При загрузке через Файловый менеджер файлы загружаются «как есть» — это полезно для документов.
  • Лимиты и квоты: Каждому проекту выделяется определенный объем дискового пространства на сервере (отображается на плашке дашборда). Если место заканчивается, вы можете удалить старые неиспользуемые скриншоты или архивы.

Использование подпапок

Для поддержания порядка создавайте отдельные папки, например /docs для PDF-инструкций и /images/blog для картинок новостей. Это предотвратит кашу в корневой папке.

8. Работа с лидами и встроенной CRM

Все контакты клиентов, которые заполняют формы на ваших сайтах, сохраняются во встроенную микро-CRM систему.

Панель «Заявки» (Канбан-доска)

В главном меню перейдите в раздел «Заявки». Вы увидите доску со столбцами, представляющими этапы воронки продаж:

  1. Новые: Сюда попадают только что отправленные формы. Они подсвечиваются ярким цветом.
  2. В работе: Перетащите карточку сюда, когда начали общение с клиентом.
  3. Завершено: Успешно закрытые сделки.
  4. Отказ: Спам или нецелевые запросы.

Вы можете кликнуть на любую карточку лида, чтобы увидеть полные детали: дату отправки, страницу, с которой пришла заявка, и все заполненные поля формы. Также внутри карточки можно оставлять текстовые заметки для менеджеров.

Экспорт данных

При необходимости выгрузить базу лидов для рассылки или анализа, воспользуйтесь кнопкой «Экспорт в Excel (CSV)». Файл скачается моментально.

9. Домены и SSL-сертификаты

По умолчанию ваши проекты доступны на служебных поддоменах вида site-123.meloddy.ru. Для боевого запуска необходимо привязать собственный домен.

Шаги для подключения домена:

  1. Купите домен у любого регистратора (Reg.ru, Ru-Center, Beget и др.).
  2. В панели управления регистратора перейдите в настройки DNS и добавьте следующую запись:
    • Тип: A, Имя (Хост): @ (или пустое), Значение (IP): 195.209.214.15
    • Тип: CNAME, Имя (Хост): www, Значение: ваш-домен.ru.
  3. В дашборде meloddyCMS нажмите на три точки (...) у вашего проекта, выберите вкладку «Настройки», введите имя домена и сохраните.

Автоматический SSL-сертификат (HTTPS)

Система сама отслеживает обновление DNS-записей и в течение 15 минут после привязки бесплатно выпустит SSL-сертификат Let's Encrypt для безопасного соединения HTTPS.

10. Управление пользователями и правами доступа

meloddyCMS поддерживает разграничение прав доступа. Это позволяет безопасно давать доступ разным специалистам.

Роли в системе

  • Администратор (Owner): Обладает полным доступом ко всем настройкам, созданию новых проектов, привязке доменов, оплате и управлению пользователями.
  • Клиент (Client Editor): Может заходить в визуальный редактор своих проектов, менять тексты и изображения, работать с CRM (заявками), просматривать аналитику. У него нет прав на удаление проектов или изменение системных конфигураций серверов.
  • Разработчик (Developer): Имеет доступ к загрузке ZIP-архивов с версткой, управлению шаблонами, редактированию файлов исходного кода через Файловый менеджер и настройкам прикрепления разработчика. Не видит личные финансовые данные владельца.

11. Интеграция вебхуков и внешних CRM (В разработке)

Если вы используете сторонние CRM-системы (например, amoCRM или Bitrix24), вы можете настроить интеграцию для автоматической пересылки лидов.

Прямая интеграция по API

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

Это позволяет связывать формы сайта с любыми конструкторами автоматизации, такими как Albato, Make или Integromat.

12. Резервные копии и история версий

Мы заботимся о сохранности ваших данных и автоматически делаем ежедневные бэкапы всей платформы.

Самостоятельные бэкапы проекта

Вы можете в любой момент выгрузить полную актуальную копию вашего сайта. Для этого зайдите в детальные настройки сайта (...), выберите вкладку «Доступ & Бэкапы» и нажмите «Скачать» (предварительно можно нажать «Создать бэкап» для создания свежей версии). Вы получите архив с HTML-кодом, скриптами и всеми вашими картинками.

Если вы случайно удалили важный блок или испортили страницу в визуальном редакторе, вы можете выбрать один из сохраненных бэкапов в выпадающем списке во вкладке «Доступ & Бэкапы» и восстановить сайт до этой точки сохранения.

1. Интеграция верстки (Посадка)

meloddyCMS не требует изучения сложных языков шаблонизаторов. Посадка происходит прямо на вашу готовую HTML-верстку.

  1. Возьмите вашу готовую папку с сайтом (с index.html, папками css, js, img).
  2. Убедитесь, что пути к стилям и картинкам в HTML — относительные от корня (например, <img src="/img/logo.png">).
  3. Запакуйте содержимое папки (именно файлы, а не саму папку) в ZIP-архив.
  4. В Дашборде админки нажмите «Загрузить сайт (.ZIP)» и выберите ваш архив.
  5. Система сама распакует сайт, настроит роутинг и сделает его доступным в CMS.

Важно для мультистраничников

Если у вас несколько страниц (например, index.html и about.html), загружайте их все в одном архиве. CMS автоматически найдет все HTML-файлы и сделает их редактируемыми.

2. Разметка элементов

Чтобы клиент мог менять текст или картинки в Визуальном редакторе, вам нужно разметить нужные теги специальными data-атрибутами.

Редактирование текста (data-editable)

Добавьте атрибут data-editable="уникальный_ключ" к любому текстовому тегу (h1-h6, p, span, div). Ключ должен быть уникальным в рамках страницы.

<h1 data-editable="hero_title">Мы создаем сайты</h1>
<p data-editable="hero_subtitle">Быстро и качественно</p>

Замена изображений (data-img-editable)

Для тегов <img> используйте атрибут data-img-editable="ключ". При клике в редакторе откроется загрузчик файлов.

<img data-img-editable="about_photo" src="/img/about.jpg" alt="О нас">

Фоновые изображения (data-bg-editable)

Если картинка задана через CSS свойство background-image (inline style), используйте data-bg-editable="ключ".

<section data-bg-editable="main_banner" style="background-image: url('/img/banner.jpg');">
    ...
</section>

3. Подключение форм (Лиды)

Для отправки заявок с сайта в Telegram-бот CMS, вам не нужно писать PHP-скрипты или настраивать SMTP. Достаточно слегка модифицировать вашу HTML-форму.

  1. Форма должна отправлять данные POST-запросом на наш API-эндпоинт: action="/api/submit-form".
  2. Каждое поле (input) должно иметь понятный атрибут name (например: name="Телефон", name="Имя"). CMS использует эти имена для формирования красивого сообщения в Telegram.
  3. Форма должна перехватываться через JS, либо редиректить на страницу "Спасибо". (Для базовой работы CMS сама отловит submit, если подключен наш базовый скрипт интеграции).
<form action="/api/submit-form" method="POST">
    <input type="text" name="Имя" placeholder="Ваше имя" required>
    <input type="tel" name="Телефон" placeholder="Ваш телефон" required>
    <button type="submit">Оставить заявку</button>
</form>

4. Создание шаблонов

Шаблоны позволяют вам один раз собрать типовой сайт (например, квиз или лендинг для стройки), а затем создавать из него новые проекты для клиентов в один клик.

Как создать шаблон:

  1. Сверстайте сайт и полностью разметьте его data-editable атрибутами.
  2. Создайте в корне папки файл template.json со следующим содержимым:
{
  "name": "Лендинг: Строительство домов",
  "description": "Светлый шаблон со слайдером и формой",
  "version": "1.0.0"
}
  1. Запакуйте все файлы сайта (вместе с template.json) в ZIP-архив.
  2. В Дашборде админки перейдите на вкладку «Шаблоны» и загрузите этот архив.

Теперь вы сможете разворачивать этот сайт под новых клиентов моментально, просто указывая новый домен или ID проекта!

5. Динамические компоненты и скрипты

В отличие от классических CMS, которые перестраивают DOM дерева и ломают ваши JavaScript плагины (слайдеры, табы, анимации), визуальный редактор meloddyCMS работает в режиме прямого редактирования.

Сохранение работоспособности JS

Когда пользователь редактирует текст или меняет картинку, CMS обновляет только текстовые узлы или атрибут src, не перезагружая страницу и не ломая привязанные JS-слушатели событий.

  • Динамические слайдеры: Если у вас есть инициализированный слайдер Swiper или Slick, он продолжит работать в визуальном редакторе. Если пользователь изменит изображение в слайде, оно обновится «на лету».
  • Рекомендация: Для элементов, которые скрыты при загрузке (например, модальные окна), вы можете использовать атрибут data-editable, но чтобы клиент мог их увидеть в редакторе, CMS предоставляет специальную панель просмотра скрытых элементов.

6. Тонкая настройка SEO и метатегов

Вы можете позволить клиенту самостоятельно редактировать SEO-параметры страницы, используя системные data-атрибуты.

Помимо вкладки «SEO & Файлы» в настройках дашборда, вы можете внедрить прямое редактирование метатегов в HTML коде шаблона:

  • <title data-editable="meta_title">...</title> — позволяет клиенту менять заголовок вкладки.
  • <meta name="description" content="Отредактируйте меня" data-editable="meta_description"> — описание для поисковиков.
  • Для картинок OpenGraph (OG Image) используйте <meta property="og:image" content="/img/share.jpg" data-img-editable="og_image">.

7. REST API Платформы

meloddyCMS предоставляет набор REST API эндпоинтов, которые вы можете использовать для интеграции с внешними системами или разработки собственных расширений.

Основные эндпоинты:

  • GET /api/sites — получить список всех сайтов текущего пользователя (доступно для ролей admin и developer).
  • POST /api/sites — создать новый сайт на основе ZIP-архива.
  • GET /api/sites/:id/files — получить структуру файлов проекта в формате JSON.
  • POST /api/submit-form — эндпоинт для отправки лидов. Принимает JSON или url-encoded данные и пересылает их в привязанный Telegram-чат.
  • POST /api/settings/developer — привязка разработчика к сайту по уникальному коду.

8. Локальная разработка и синхронизация

Для удобства разработки шаблонов и верстки вы можете использовать Git и разрабатывать сайты на своем локальном компьютере.

Синхронизация через FTP/SFTP или Git

Вы можете настроить автоматический деплой из вашей IDE (VS Code, WebStorm) прямо в директорию сайтов на сервере:

  • Путь к проектам на сервере: /home/ubuntuuser/meloddy-cms/data/sites/[siteId].
  • При обновлении файлов напрямую на сервере кэш визуального редактора сбрасывается автоматически, и клиент сразу видит обновленную верстку при следующем входе в редактор.

Осторожно с перезаписью

Если клиент уже отредактировал тексты на сайте через CMS, а вы зальете поверх новый ZIP-архив с версткой без сохранения файлов данных, то правки клиента могут быть заменены исходными текстами из верстки. Всегда делайте бэкап данных перед обновлением структуры!

9. База данных SQLite и архитектура данных

Вся конфигурация пользователей, проекты, связи с Telegram и лиды хранятся в легковесной и быстрой базе данных SQLite.

Схема БД и файлы данных:

  • Файл базы данных находится по пути: data/database.sqlite (или конфигурационный файл users.json / sites.json в зависимости от сборки).
  • Таблица leads содержит поля: id (уникальный номер), site_id (ID сайта), data (JSON строка со всеми полями формы), status (статус в CRM: new, in_progress, completed, rejected), created_at (дата создания).
  • Конфигурационные данные каждого отдельного сайта хранятся в скрытой папке проекта: data/sites/[siteId]/.meloddy/config.json.

10. Оптимизация производительности и скорость загрузки

meloddyCMS не делает лишних запросов к базе данных при открытии ваших сайтов посетителями. Все страницы отдаются напрямую веб-сервером Nginx как статический HTML, что обеспечивает невероятную скорость работы (100 баллов в Google PageSpeed Insights).

Рекомендации по оптимизации:

  1. Используйте современные форматы изображений (WebP, SVG).
  2. Подключайте CSS в шапке документа, а JS — в самом конце перед закрывающим тегом </body> с атрибутом defer.
  3. Минифицируйте ваши ассеты перед упаковкой в ZIP. CMS отдает файлы в оригинальном виде, поэтому предварительная минификация CSS/JS сэкономит трафик ваших пользователей.

11. Авто-посадка и подготовка верстки через ИИ

Чтобы максимально ускорить посадку сайта на meloddyCMS (особенно если верстка сгенерирована ИИ-конструкторами или визуальными средами вроде VibeCode), вы можете использовать любой ИИ-ассистент (Claude, ChatGPT, Gemini).

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

Ты — специализированный транскомпилятор и системный нормализатор статической верстки для платформы meloddyCMS. 
Твоя задача — преобразовать предоставленные исходные файлы верстки (HTML, CSS, JS, медиа-ресурсы), включая экспортированные из визуальных сред и генераторов кода (таких как VibeCode), и полностью подготовить их к интеграции с платформой meloddyCMS.

Выполняй обработку строго по шагам (Chain of Thought), следуя техническому регламенту ниже.

---

### ТЕХНИЧЕСКИЙ РЕГЛАМЕНТ ОБРАБОТКИ ВЕРСТКИ

#### ШАГ 1: Реорганизация структуры каталогов
Приведи файловую структуру проекта к следующему стандарту:
1. Все файлы страниц (*.html) должны быть перенесены исключительно в корень проекта.
2. Все файлы стилей (*.css) должны быть перенесены в директорию /css/.
3. Все файлы скриптов (*.js) должны быть перенесены в директорию /js/.
4. Все медиаресурсы (изображения png/jpg/webp/avif, векторная графика svg, шрифты, иконки, favicon) должны быть перенесены в директорию /img/.

#### ШАГ 2: Нормализация путей в коде (Рефакторинг ссылок)
Замени все относительные (../, ./, images/, assets/) и абсолютные сторонние пути во всех HTML и CSS файлах на относительные от корня сайта. Каждый путь должен начинаться со знака слэша /:
- Подключение стилей: <link rel="stylesheet" href="/css/style.css">
- Подключение скриптов: <script src="/js/main.js"></script>
- Подключение картинок: <img src="/img/logo.svg">
- Фоновые изображения в CSS: background-image: url('/img/hero-bg.webp');
- Фавикон: <link rel="icon" type="image/svg+xml" href="/favicon.svg"> (favicon.svg находится в корне).

#### ШАГ 3: Интеграция data-атрибутов редактирования (Визуальный редактор)
Разметь все контентные элементы специальными атрибутами. 

##### Валидация идентификаторов (ID):
Каждое значение атрибута (ключ) должно:
1. Быть уникальным в пределах одной страницы.
2. Соответствовать регулярному выражению: ^[a-z0-9_]+$ (только строчные латинские буквы, цифры и символ подчеркивания).
3. Иметь длину от 3 до 50 символов.
4. Отражать семантическое назначение элемента (например: hero_title, benefit_card_1_text).

##### Правила разметки элементов:
1. Редактируемый текст (data-editable):
   Добавь атрибут data-editable="[уникальный_ключ]" к тегам: <h1>-<h6>, <p>, <span>, <div class="...-text">, <a> (если внутри ссылки только простой текст).
   * ДО: <h2 class="title">Наши услуги</h2>
   * ПОСЛЕ: <h2 class="title" data-editable="services_title">Наши услуги</h2>
2. Заменяемые изображения (data-img-editable):
   Добавь атрибут data-img-editable="[уникальный_ключ]" к тегам <img>.
   * ДО: <img class="logo" src="img/logo-old.png" alt="Лого">
   * ПОСЛЕ: <img class="logo" src="/img/logo-old.png" data-img-editable="header_logo" alt="Лого">
3. Фоновые изображения (data-bg-editable):
   Если фон задан инлайн-стилем style="background-image: url(...)", добавь атрибут data-bg-editable="[уникальный_ключ]".
   * ДО: <div class="hero" style="background-image: url('assets/hero.jpg');">
   * ПОСЛЕ: <div class="hero" data-bg-editable="hero_banner" style="background-image: url('/img/hero.jpg');">

#### ШАГ 4: Интеграция лид-форм (CRM и уведомления)
Все HTML-формы на страницах сайта должны быть адаптированы для отправки лидов во встроенную CRM-систему meloddyCMS и привязанный Telegram-канал.

##### Правила для форм:
1. Тег <form> должен иметь атрибуты: action="/api/submit-form" и method="POST".
2. Каждый элемент ввода данных (<input>, <textarea>, <select>) обязан иметь атрибут name. Значение этого атрибута должно быть человекочитаемым русским словом или фразой, так как оно напрямую транслируется в Telegram-оповещения администратора.
3. Кнопка отправки формы должна иметь тип type="submit".

##### Таблица сопоставления полей (Few-shot mapping):
- name="name" или name="first-name" ➡️ name="Имя"
- name="phone" или name="tel" ➡️ name="Телефон"
- name="email" ➡️ name="Email"
- name="message" или name="comment" ➡️ name="Сообщение"
- name="company" ➡️ name="Компания"

##### Пример нормализации формы:
* ДО:
  <form id="contact-form">
      <input type="text" name="user_name" placeholder="Введите имя">
      <input type="tel" name="phone_number" placeholder="Ваш телефон">
      <textarea name="user_message"></textarea>
      <button class="submit-btn">Отправить</button>
  </form>
* ПОСЛЕ:
  <form action="/api/submit-form" method="POST">
      <input type="text" name="Имя" placeholder="Введите имя" required>
      <input type="tel" name="Телефон" placeholder="Ваш телефон" required>
      <textarea name="Сообщение"></textarea>
      <button type="submit" class="submit-btn">Отправить</button>
  </form>

#### ШАГ 5: Валидация сборки (Sanity Check)
Перед генерацией ответа перепроверь полученный результат по чек-листу:
1. Нет ли сломанных путей и ссылок (каждый href/src стилей, скриптов и картинок начинается со слэша /).
2. Все ли data-атрибуты имеют валидные уникальные ключи (^[a-z0-9_]+$).
3. Все ли формы имеют action="/api/submit-form" и method="POST", а их поля — русские атрибуты name.
4. Весь HTML-код валиден, теги закрыты, стили/скрипты не удалены.

---

### ФОРМАТ ОТВЕТА
Выведи результат строго в следующем формате:
1. Файловая структура: Схема перемещения файлов (какие файлы куда перенесены).
2. Сборка проекта: Полные версии измененных файлов (HTML-код страниц) без сокращений и пропусков. Не используй плейсхолдеры вида <!-- тут остальной код -->, выводи код целиком, чтобы его можно было скопировать.

После обработки ИИ вы получите готовую структуру файлов. Вам останется лишь запаковать их в ZIP-архив и загрузить в CMS в один клик!

12. Посадка фреймворков и Headless-интеграция

meloddyCMS предоставляет полноценную поддержку современных фреймворков (React, Vue 3, Next.js) через Headless API v1 и встроенный универсальный JavaScript SDK.

Вы получаете гибридную модель работы: данные (статьи, товары, кастомные коллекции) запрашиваются динамически через API, но при этом сохраняется полная работоспособность визуального редактора и панели стилей!

Принцип работы интеграции:

  1. Загрузка данных: Фронтенд инициализирует клиент MeloddyClient из SDK (/js/sdk.js) и запрашивает данные с помощью методов client.content.list('slug') (для коллекций) или client.blog.list().
  2. Визуальное инлайновое редактирование: На все выводимые элементы вешаются атрибуты data-meloddy-collection, data-meloddy-item и data-meloddy-field. Скрипт-мост /js/visual-bridge.js автоматически отслеживает клики по ним во фрейме редактора и открывает форму изменения контента.
  3. Панель стилей и слоев: Чтобы в визуальном редакторе работала правая панель стилей (шрифты, отступы, границы, кастомные CSS-классы) и левая панель слоев, оберните статические структурные элементы разметки в атрибуты data-block-id="[уникальный_id]" и data-editable="[уникальный_id]". Это позволит редактору сохранять изменения стилей прямо в файлы шаблонов!
Важно по стилям: Если вы хотите стилизовать элементы, которые создаются динамически с помощью JS (например, карточки товаров или посты блога), стилизуйте их родительский контейнер или пропишите стили для классов в общем CSS-файле.

Специализированные промпты авто-посадки под фреймворки

Ниже представлены готовые промпты для ИИ-ассистентов, адаптированные под конкретные технологии. Скопируйте нужный промпт и отправьте его ИИ вместе с кодом вашего приложения:

Ты — специализированный ИИ-разработчик по бесшовной интеграции React-приложений (React / Vite / Create React App) с meloddyCMS Headless API.
Твоя задача — преобразовать предоставленный React-компонент (или целое SPA-приложение) и подготовить его к полной интеграции с платформой.

Выполняй обработку строго по шагам (Chain of Thought), следуя техническому регламенту ниже.

---

### ТЕХНИЧЕСКИЙ РЕГЛАМЕНТ ОБРАБОТКИ REACT-КОДА

#### ШАГ 1: Импорт SDK и подключение библиотек
1. В корневом index.html убедись, что перед закрывающим тегом </head> подключены:
   <script src="/js/sdk.js"></script>
   <script src="/js/visual-bridge.js"></script>
2. В коде компонента используй глобальный класс MeloddyClient для запроса контента.

#### ШАГ 2: Инициализация клиента и состояние (State)
Инициализируй клиент MeloddyClient внутри useEffect и сохрани данные в реактивном состоянии React (useState):

const [hero, setHero] = useState(null);
const [features, setFeatures] = useState([]);
const [posts, setPosts] = useState([]);
const [loading, setLoading] = useState(true);

useEffect(() => {
    const client = new MeloddyClient({
        siteId: 'react-client', // ID текущего сайта
        apiKey: 'ml_pk_react_client_key', // Публичный API-ключ
        baseUrl: window.location.origin
    });

    Promise.all([
        client.content.list('landing_hero'),
        client.content.list('features'),
        client.blog.list()
    ]).then(([heroRes, featuresRes, blogRes]) => {
        if (heroRes && heroRes.items && heroRes.items.length > 0) {
            setHero(heroRes.items[0]);
        }
        setFeatures(featuresRes.items || []);
        setPosts(blogRes.posts || []);
        setLoading(false);
    }).catch(err => {
        console.error("MeloddyCMS Load Error:", err);
        setLoading(false);
    });
}, []);

#### ШАГ 3: Разметка JSX-элементов для инлайнового визуального редактора
Все выводимые текстовые и медийные данные должны быть размечены специальными data-атрибутами:
1. data-meloddy-collection="[slug_коллекции]" — слаг схемы коллекции контента.
2. data-meloddy-item="[id_записи]" — ID записи в коллекции.
3. data-meloddy-field="[имя_поля]" — конкретное имя редактируемого поля (например, title, subtitle, icon, content).

##### Примеры JSX-разметки:
- Текстовый заголовок баннера:
  <h1 data-meloddy-collection="landing_hero" data-meloddy-item={hero?.id || 'hero'} data-meloddy-field="title">{hero?.title || 'React & Headless'}</h1>
- Описание преимуществ в цикле:
  <p data-meloddy-collection="features" data-meloddy-item={feat.id} data-meloddy-field="description">{feat.description}</p>
- Для HTML-контента постов блога (используй dangerouslySetInnerHTML):
  <div data-meloddy-collection="posts" data-meloddy-item={post.id} data-meloddy-field="content" dangerouslySetInnerHTML={{ __html: post.content }} />

#### ШАГ 4: Поддержка визуальной панели стилей и слоев (Visual Editor)
Обязательно добавь к крупным структурным JSX-блокам, секциям или статическим элементам атрибуты:
- data-block-id="[уникальный_id]" — ID блока для панели слоев.
- data-editable="[уникальный_id]" — ID редактируемого блока для применения стилей (границы, тени, цвета, шрифты) через визуальный редактор.

##### Пример:
<h2 className="section-title" data-editable="section-title-features">Преимущества React Headless</h2>

---
Возвращай полностью готовый, чистый и рабочий React-код без плейсхолдеров.