# Incorpore o widget Runkit no Discourse

**URL:** <https://meta.discourse.org/t/embed-runkit-widget-in-discourse/137812>\
**Category:** Support\
**Created:** [Janeiro 5, 2020, 4:30pm UTC](https://meta.discourse.org/t/embed-runkit-widget-in-discourse/137812 "2020-01-05T16:30:21Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![spalladino](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/spalladino/32/165541_2.png) [@spalladino](https://meta.discourse.org/u/spalladino)\
**Post date:** [Janeiro 5, 2020, 4:30pm UTC](https://meta.discourse.org/t/embed-runkit-widget-in-discourse/137812/1 "2020-01-05T16:30:21Z")

</div>

Olá! Estou executando uma instância do Discourse hospedada pelo próprio Discourse (plano empresarial, não corporativo) e gostaria de incorporar um widget do [Runkit](https://runkit.com/docs/embed) em uma postagem. Você sabe se isso é possível? Obrigado!

---

<div class="post-metadata">

**Author:** ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)\
**Post date:** [Janeiro 6, 2020, 5:54am UTC](https://meta.discourse.org/t/embed-runkit-widget-in-discourse/137812/2 "2020-01-06T05:54:34Z")

</div>

Tecnicamente, isso é possível com um componente de tema que decora os posts. Nesse caso, você definiria uma seção `[wrap]` para o embed e, ao carregar a decoração do post, faria o carregamento da biblioteca e executaria as operações de embed.

Recomendo bastante cautela aqui:

1. Você não quer invalidar sua CSP, então precisa considerar isso.
2. Você não quer deixar o Discourse lento devido ao carregamento de um grande payload dinâmico de JavaScript.
3. Você está depositando muita confiança no runkit ao permitir que ele execute JavaScript no seu Discourse.

Estimo que construir algo assim levaria de 1 a 2 dias de trabalho. Se você tiver orçamento, talvez seja interessante abrir um tópico em #Marketplace? Componentes de tema podem ser instalados sem problemas nas nossas configurações do plano empresarial.

---

<div class="post-metadata">

**Author:** ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)\
**Post date:** [Janeiro 6, 2020, 9:19pm UTC](https://meta.discourse.org/t/embed-runkit-widget-in-discourse/137812/4 "2020-01-06T21:19:29Z")

</div>

Graças ao padrão oEmbed, você pode adicionar `https://runkit.com/` à configuração `allowed iframes` e pronto.

Basta colar uma URL do Runkit em uma linha própria e o Discourse fará a mágica:

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

vira

[https://runkit.com/falco/5e13a3b7f5d2e2001a5741d2](https://runkit.com/falco/5e13a3b7f5d2e2001a5741d2)

Fica estranho quando o embed é muito longo, então talvez seja necessário mesmo um componente de tema para ajudar a decorar (e permitir a rolagem) dos embeds.

---

<div class="post-metadata">

**Author:** ![spalladino](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/spalladino/32/165541_2.png) [@spalladino](https://meta.discourse.org/u/spalladino)\
**Post date:** [Janeiro 7, 2020, 6:32pm UTC](https://meta.discourse.org/t/embed-runkit-widget-in-discourse/137812/5 "2020-01-07T18:32:45Z")

</div>

Muito obrigado pelas respostas! @sam O Runkit executa o código no servidor, não no lado do cliente, então é bastante seguro (pode atrasar o carregamento devido ao carregamento do próprio widget, mas é isso).

@Falco Eu tinha perdido totalmente a configuração `allowed iframes`. Assim que configurei, começou a funcionar perfeitamente! Vou ver o que posso fazer em relação ao componente de equipe 🙂

---

<div class="post-metadata">

**Author:** ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)\
**Post date:** [Fevereiro 6, 2020, 6:32pm UTC](https://meta.discourse.org/t/embed-runkit-widget-in-discourse/137812/6 "2020-02-06T18:32:54Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
