Papera ещё в разработке. Что-то может измениться или перестать работать, пока мы её строим.
РуководстваВстраивание блога на ваш сайт

Встраивание блога на ваш сайт

Разместите опубликованную статью Papera на своём сайте самодостаточным фрагментом с iframe, который сам подбирает высоту под содержимое.

Как разместить статью блога Papera внутри страницы на вашем собственном сайте. Встраивание это небольшой фрагмент с <iframe>, который вы вставляете один раз. Он подтягивает живую статью из Papera, оформляет себя сам и растягивается под содержимое. Ничего не нужно устанавливать, и не нужно размещать у себя никаких скриптов.

1. Опубликуйте статью

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

https://papera.dev/blog/<your-slug>

См. Публикация статьи блога про элементы управления публикацией и про выбор slug.

2. Скопируйте код встраивания

В редакторе блога откройте меню Экспорт и выберите Копировать код встраивания. Откроется окно с готовым фрагментом, нажмите Копировать. Вы получите примерно это:

<iframe src="https://papera.dev/embed/blog/my-article"
        title="My article" loading="lazy"
        style="width:100%;border:0;height:600px"></iframe>
<script>
  addEventListener("message", (e) => {
    if (e.data?.type !== "papera:embed:height") return;
    const f = document.querySelector('iframe[src*="/embed/blog/my-article"]');
    if (f) f.style.height = e.data.height + "px";
  });
</script>

3. Вставьте фрагмент на свою страницу

Поместите фрагмент в HTML вашего сайта туда, где должна появиться статья: в блок «произвольный HTML» вашей CMS, в шаблон или в обычный HTML-файл. Встраивание идёт без интерфейса вокруг: только статья и её оформление, поэтому она вписывается в вашу страницу, а не показывает вокруг себя приложение Papera.

Небольшой <script> слушает сообщение о высоте от iframe и подгоняет размер под статью, поэтому внутренней полосы прокрутки не появляется. Если ваш сайт не может выполнить скрипт (или вы его не вставили), iframe просто сохранит фиксированную высоту height:600px, а всё остальное продолжит работать. Ссылки внутри встроенной статьи открываются в новой вкладке, поэтому читателя никогда не уводит с вашей страницы.

Ограничьте круг сайтов, которые могут встраивать статью

По умолчанию встраиваемую статью может показать у себя любой сайт. Чтобы закрыть это, перечислите разрешённые сайты (источники) в настройках встраивания статьи. Только эти источники смогут показать её у себя, а iframe любого другого сайта останется пустым. Публичная страница /blog/<slug> при этом продолжает работать для всех.

Как поддерживать встраивание в актуальном виде

Встраивание всегда отражает последнюю опубликованную версию. Отредактируйте статью и опубликуйте снова, и каждая страница, которая её встраивает, обновится сама. Заново копировать фрагмент не нужно. Если вы снимете статью с публикации, встраивание вернёт обычную ошибку 404, так же как и публичная страница.