Привет) Вот кейс: я делаю главную(любую) страницу сайта, куда из strapi попадает маркдаун (ну там жирный текст, параграфы, заголовки, описание фич продукта, FAQ, knowledge base, страница оплаты подписки и тд). Если оставить все как есть, то таким вот образом сделанная страница - это просто простыня текста, хоть и форматированного. Согласись, что в таком виде это не очень продающая история, ни красивых CTA-кнопочек внутри текста, ни типовых блоков с JS-логикой (анимации, расхопывающиеся списки, карточки с тарифами, кнопки ЖИИРНЫЕ ТАКИЕ «КУПИ ЭТО БЕСПЛАТНО!» и для этой задачи есть два решения:
1) Хардкодить со стороны некстовых шаблонов страниц:
…
<AsyncContentFromStrapi slug=‘key-features’/>
<ButtonLink type=‘cta’ size=‘lg’ to=‘/features’ />
<AsyncContentFromStrapi slug=‘about’/>
…
Минусы у этого решения в том, что если контент захочется поменять, пересобрать, то придется менять и контент в страпи и переверстывать в jsx на строне некста.
2) Вкорячивать в md разметку на стороне strapi админки дивы такого вида <div id=‘portal-buttonlink-key-features’></div>, в ReactMarkdown или его аналогах проставлять настройки для парсинга HTML (dangerouslysetinnerhtml внутри используют по идее, но я не смотрел) и на стороне некста шаблон страницы выглядит аккуратнее:
…
<AsyncContentFromStrapi slug=‘key-features’/>
<AsyncContentFromStrapi slug=‘about’/>
…
но да, мне пришлось написать хелпер и это хардкод по сути, в котором есть json определяющий что рендерить в портал, если в доме есть искомые id дивов. В отличие от первого варианта, есть большой плюс - только и ТОЛЬКО средствами strapi возможно управлять положением и порядком кнопок, карточек и текста статичного, не нужно ничего передеплоивать ради сдвижения кнопок.