Привет! Я использую размещённую на Discourse инстанцию (тарифный план Business, не Enterprise) и хочу встроить виджет Runkit в сообщение. Подскажите, пожалуйста, возможно ли это? Спасибо!
Технически это возможно с помощью компонента темы, который обрамляет посты: вы можете определить секцию [wrap] для встраиваемого содержимого, а при загрузке оформления постов подключить библиотеку и выполнить необходимые операции по встраиванию.
Однако я бы настоятельно рекомендовал проявить осторожность:
- Не следует нарушать вашу политику CSP, поэтому этот аспект необходимо тщательно продумать.
- Нежелательно замедлять работу Discourse из-за загрузки крупного динамического JS-пакета.
- Вы доверяете 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». Как только я её установил, всё заработало как по маслу! Посмотрю, что я могу сделать по поводу компонента команды ![]()