К содержанию

Встраивание журнала изменений ​

Эта инструкция подходит для проекта, у которого уже опубликована публичная страница обновлений. Её адрес имеет вид https://{slug}.flowtomate.ru/. Если такого адреса у проекта нет, встроить журнал сейчас нельзя. В параметрах доступны embed=1 для iframe, tags=a,b для фильтра по тегам и q=текст для поиска.

Добавьте контейнер и создайте iframe с адресом вашей страницы. В примере acme замените на slug своего журнала:

html
<div id="flowtomate-changelog-host"></div>
<script>
const slug = 'acme';
const expectedOrigin = 'https://' + slug + '.flowtomate.ru';
const frame = document.createElement('iframe');
frame.src = expectedOrigin + '/?embed=1';
frame.title = 'Журнал изменений';
frame.loading = 'lazy';
frame.referrerPolicy = 'strict-origin-when-cross-origin';
frame.style.cssText = 'width:100%;height:320px;border:0';
document.querySelector('#flowtomate-changelog-host').append(frame);

window.addEventListener('message', (event) => {
  const data = event.data;
  if (event.origin !== expectedOrigin
      || event.source !== frame.contentWindow
      || !data || typeof data !== 'object'
      || data.type !== 'flowtomate:changelog:resize'
      || data.slug !== slug
      || typeof data.height !== 'number'
      || !Number.isFinite(data.height)
      || data.height < 320 || data.height > 5000) return;
  frame.style.height = Math.ceil(data.height) + 'px';
});
</script>

В режиме embed=1 страница скрывает поиск и фильтр тегов и посылает родителю сообщение { type: 'flowtomate:changelog:resize', slug, height }. Обработчик меняет высоту только для сообщения от нужного origin и этого iframe. Не заменяйте проверку на *, совпадение конца домена или один лишь slug.

Проверьте загрузку ленты и изменение высоты при смене содержимого. Если высота не меняется, откройте диагностику. Для опубликованных обновлений и настроек страницы используйте статьи раздела «Журнал изменений».