Готовые фреймы
Здесь собраны фреймы, которые работают на живых сайтах — bota.chat и aitoolsformarketing.pro. Наборы на этих сайтах одинаковые: фрейм с тем же слагом отличается разве что id ассистента или строкой копирайта. Возьмите нужный через GET /frames/{slug} на сайте-образце и загрузите к себе POST /frames — фреймы между сайтами не делятся, перенос делается копией. Механика — в разделе фреймы, вставки — в справочнике вставок.
У каждого фрейма две роли. Фрейм страницы стоит полем frame во frontmatter и обрамляет её целиком. Вызываемый фрейм подключается строкой <!-- onpress/frame {"name":"…"} /--> — из другого фрейма или прямо из тела страницы; парная форма передаёт ему слот, лишние атрибуты — параметры frame.*.
Фреймы страниц
| Фрейм | Для чего | Вкладывает |
|---|---|---|
| assistant | посадочная ассистента: чат из data.assistant над статьёй — подробный пример | articlefaq, sitefooter |
| landing | главная и посадочные ассистента, id чата во фрейме | articlefaq, sitefooter |
| article | статья и юридические страницы | siteheader, articlefaq, site__footer |
| docs | документация с деревом разделов | siteheader, sitefooter |
| site__404 | страница «не найдено» | siteheader, sitefooter |
| news | лента новостей | siteheader, sitefooter |
| news__category | рубрика новостей | siteheader, sitefooter |
| news__post | одна новость | siteheader, authorbyline, newsshare, newsmore, site__footer |
| author__page | страница автора | siteheader, authorhead, authoravatar, authorsocials, site__footer |
| home | главная — целый HTML-документ из наборов | — |
| pricing | тарифы из наборов | siteheader, sitefooter |
Вызываемые фреймы
| Фрейм | Что выводит | Откуда зовут |
|---|---|---|
| site__header | шапка сайта | фреймы страниц |
| site__footer | подвал сайта | фреймы страниц |
| article__faq | вопросы из набора faq | article, assistant, landing |
| faq | вопросы из текста страницы (слот) | тело страницы |
| outline | свёрнутое оглавление | тело страницы |
| assistant__chat | чат обычной разметкой, с параметрами | сейчас нигде |
| news__more | «читайте ещё» | news__post |
| news__share | кнопки «поделиться» | news__post |
| author__byline | подпись автора | newspost, authorcard |
| author__card | карточка автора | тело страницы |
| author__avatar | аватар | authorbyline, authorpage |
| author__socials | соцсети автора | authorcard, authorpage |
| author__head | служебный: набор автора для Person | author__page |
Устаревшие
obolochka-statya, shapka-sajta и podval-sajta — первые фреймы с транслитерированными слагами и старой формой ссылок onpress/frame {"type":"header"}. Страниц на них нет, новых не ставьте: вместо них article, siteheader и sitefooter.
Как сделать свою копию
curl -s -H "Authorization: Bearer op_ВАШ_ТОКЕН" -H "X-OnPress-Blog-Id: $DONOR" "$API/frames/article" | jq -r .frame.html > article.html
curl -s -X POST "$API/frames" -H "Authorization: Bearer op_ВАШ_ТОКЕН" -H "X-OnPress-Blog-Id: $SITE" \
-H 'Content-Type: application/json' \
-d "$(jq -n --rawfile html article.html '{slug: "article", html: $html}')" | jq '{success, frame: .frame.slug, frame_refs: .frame.frame_refs, warnings}'
Переносите вместе с фреймом всё, что он вкладывает (frame_refs в ответе), и наборы, которые он читает (sources): без них вставки выведут пустое место и комментарий. Меняйте разметку, но не трогайте вставки и бинды, на которых держатся данные, — подробно в рецепте свой фрейм из готового.