Встраивание виджета Runkit в Discourse

Привет! Я использую размещённую на Discourse инстанцию (тарифный план Business, не Enterprise) и хочу встроить виджет Runkit в сообщение. Подскажите, пожалуйста, возможно ли это? Спасибо!

Технически это возможно с помощью компонента темы, который обрамляет посты: вы можете определить секцию [wrap] для встраиваемого содержимого, а при загрузке оформления постов подключить библиотеку и выполнить необходимые операции по встраиванию.

Однако я бы настоятельно рекомендовал проявить осторожность:

  1. Не следует нарушать вашу политику CSP, поэтому этот аспект необходимо тщательно продумать.
  2. Нежелательно замедлять работу Discourse из-за загрузки крупного динамического JS-пакета.
  3. Вы доверяете Runkit запуск JavaScript-кода на вашем экземпляре Discourse, что сопряжено с определёнными рисками.

По моей оценке, реализация такого решения займёт от 1 до 2 дней работы. Если у вас есть бюджет, возможно, стоит открыть тему в канале Marketplace? Компоненты тем можно успешно устанавливать на тарифных планах бизнес-уровня.

Благодаря стандарту oEmbed вы можете добавить https://runkit.com/ в настройку allowed iframes и считать задачу выполненной.

Просто вставьте ссылку на Runkit отдельной строкой, и Discourse сделает своё волшебство:

https://runkit.com/falco/5e13a3b7f5d2e2001a5741d2

превратится в

https://runkit.com/falco/5e13a3b7f5d2e2001a5741d2

Однако, если встроенный контент слишком длинный, отображение может стать некорректным, поэтому действительно может потребоваться компонент темы для оформления и прокрутки таких вставок.

Спасибо большое за ваши ответы! @sam Runkit выполняет код на стороне сервера, а не на стороне клиента, поэтому это довольно безопасно (это может немного замедлить загрузку из-за самого виджета, но не более того).

@Falco я совершенно упустил настройку «разрешённые iframe». Как только я её установил, всё заработало как по маслу! Посмотрю, что я могу сделать по поводу компонента команды :slight_smile: