Суть проекта
Что было построено
Контентный производственный-движок - это пример промышленной сборки и публикации большого массива материалов. Здесь важны не отдельные тексты, а вся цепочка: generated article payloads, финальный готовая страница, chart data, matrices, диагностика, восстановление, импорт в MySQL, слой отображения и браузерная проверка-проверка.
Задача
Какую проблему закрывали
При массовом переносе контента проблемы часто возникают не в одном большом сбое, а в мелких несостыковках: пустые графики, потерянные секции, несобранные матрицы, конфликт старых и новых материалов, слишком тяжелые импорты. Без протокола команда тратит время на ручное восстановление и рискует выпустить неполные страницы.
Результат
Что получилось
Описан строгий протокол переноса материалов: проверка структуры статей, восстановление проблемных блоков, контролируемое подключение нового рендера, миграционный план на 3007 статей и чеклист проверки секций, графиков и матриц после публикации.
Структура
Каждая статья имеет payload
В solution folder лежат article.payload.json, final.solution.html, diagnostics и payloadMatrix. Это разделение нужно, чтобы понимать, что именно импортируется в DB, откуда берутся charts и как восстановить материал при сбое.
Charts
Графики не должны быть пустыми
Transfer protocol отдельно объясняет проблему: canvas-placeholder может быть в готовая страница, но рабочий слой.payload_charts пустой. Поэтому добавлен шаг extract_payload_charts.py, который переносит chart data в payload перед import.
Sections
готовая страница собирается в правильном порядке
patch_body_html.py извлекает solution-section, rg-chart-section, rg-textblocks и rg-matrix из final.solution.html. Это закрывает проблему, когда chart generation перемещает секции за пределы старого main.single.
Recovery
Ошибки имеют путь восстановления
Для сбоев описаны restore_articles.py и recover_charts.py, а полный recovery order зафиксирован отдельной цепочкой. Это делает batch-публикацию управляемой, а не одноразовой.
производственный
Старые статьи защищены
слой отображения и CSS подключаются условно: если у статьи нет rewritegen markers, старый контент не должен принудительно переходить на новую систему блоков. Это важный производственный-риск, который закрыт архитектурно.