Миграция
Старые сайты OnPress можно перенести на v2, сохранив содержимое и оформление. Для этого создайте новый сайт v2, перенесите страницы и данные и соберите оформление из фреймов. Во время переноса старый сайт продолжает работать: по нему можно сверять тексты и внешний вид.
Скачать сайт
Выберите исходный сайт в списке GET /sites и скачайте его одним запросом. API — https://onpress.pro/api/v2, OLD — id исходного сайта, OP_TOKEN — ваш API-токен.
curl "$API/site/$OLD/export?as=migration" \
-H "Authorization: Bearer $OP_TOKEN" \
-o migration.zip
В ZIP находятся site.json со свойствами сайта и перечнем страниц, pages/*.md с текстами, rawsource/*.json с исходным содержимым и блоками, а также languages.json, menus.json и media.json. Последний содержит адреса медиафайлов: сами файлы перенесите по этим адресам. Оформление сверяйте с работающим исходным сайтом. Состав выгрузки описан в справочнике.
Создать новый сайт
Создайте сайт v2 на временном адресе. До завершения переноса оставьте его закрытым от индексации. Настройте языки и их адресные префиксы так же, как на исходном сайте, перенесите название, описание и логотип в настройки.
Перенести оформление
Общие шапку, подвал и оболочку статьи сделайте фреймами. Повторяющиеся карточки, контакты и списки вынесите в данные, индивидуальные заголовки и вступления — в свойства страниц. Текст статей останется в Markdown страниц. Как разделить готовую верстку, показывает кейс «Как перенести готовый HTML в OnPress».
Можно сохранить прежний дизайн или использовать готовые фреймы v2. Сначала запишите данные, затем вложенные и основные фреймы. CSS и JavaScript перенесите в файлы соответствующих фреймов.
Перенести страницы и медиа
Загрузите картинки и файлы через «Медиа». Сопоставьте старые и новые адреса файлов и обновите ссылки в тексте, свойствах, данных и CSS.
Публикуйте страницы через POST /pages/markdown, сохраняя прежние url, языки, даты, статусы и SEO-поля и назначая каждой нужный frame. Родительские страницы создавайте раньше дочерних. Для работы достаточно таблицы соответствий: id и адрес исходной страницы — id новой. При повторном переносе обновляйте уже созданные страницы по этой таблице.
Свяжите переводы, назначьте главную для каждого языка и соберите меню с новыми id страниц. Вопросы и ответы перенесите в парный фрейм faq, сохраняя весь текст ответов и ссылки. Форматы публикации — в справочнике «Страницы».
Проверить новый сайт
Откройте старый и новый сайты рядом. Проверьте, что нужные страницы доступны по прежним путям, тексты и картинки перенесены, меню и интерактивные элементы работают. Сравните главную и основные типы страниц на широком и узком экране. Старый сайт остается доступен во время этой проверки.
Перенести домен
Когда новый сайт готов, освободите домен старого сайта. OLD — id старого сайта, NEW — id нового.
curl -X DELETE "$API/site/$OLD/data/domain" \
-H "Authorization: Bearer $OP_TOKEN"
Дождитесь состояния detached через GET /data/domain. Старый сайт больше не публикуется, но его данные, id и права доступа сохраняются.
Назначьте освободившийся домен новому сайту. Вместо example.com укажите прежний собственный домен или адрес на onpress.pro:
curl -X PUT "$API/site/$NEW/data/domain" \
-H "Authorization: Bearer $OP_TOKEN" \
-H "Content-Type: application/json" \
-d '{"domain":"example.com"}'
Проверьте новый сайт через GET /data/domain: для собственного домена дождитесь status: active, для адреса на onpress.pro — status: none и нужного site_domain. Откройте сайт по перенесенному адресу и включите его индексацию в настройках.