Discourse에 Runkit 위젯 임베드하기

안녕하세요! 저는 Discourse 호스팅 서비스(비즈니스 플랜, 엔터프라이즈 아님)를 이용하고 있으며, 게시글에 Runkit 위젯을 임베드하고 싶습니다. 이게 가능한지 혹시 아시는 분 계신가요? 감사합니다!

기술적으로는 게시물을 꾸며주는 테마 컴포넌트를 사용하여 이것이 가능합니다. 이 경우 임베드를 위한 [wrap] 섹션을 정의하고, 게시물 장식 시 라이브러리를 로드하여 임베딩 관련 작업을 수행하면 됩니다.

다만, 이 부분에서는 상당한 주의가 필요합니다:

  1. CSP를 무효화하지 않으려면 이 점을 반드시 고려해야 합니다.
  2. 대형 동적 JS 페이로드를 로드하여 Discourse의 속도를 늦추고 싶지 않을 것입니다.
  3. Runkit에 JavaScript를 Discourse에서 실행할 수 있도록 허용함으로써 상당한 신뢰를 맡기는 셈입니다.

여기서 무언가를 구축하는 데에는 1~2일 정도의 작업이 소요될 것으로 추정됩니다. 예산이 있다면 #marketplace에 주제를 개설해 보시는 것은 어떨까요? 비즈니스 플랜 환경에서는 테마 컴포넌트를 정상적으로 설치할 수 있습니다.

oEmbed 표준 덕분에 https://runkit.com/를 allowed iframes 설정에 추가하기만 하면 됩니다.

runkit URL을 단독으로 한 줄에 붙여넣기만 하면 Discourse가 마법을 부립니다:

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

다음과 같이 표시됩니다:

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

임베드가 너무 길어지면 문제가 생길 수 있으므로, 임베드를 꾸미고(스크롤할 수 있도록) 도와줄 테마 컴포넌트가 실제로 필요할 수 있습니다.

답변해 주셔서 정말 감사합니다! @sam Runkit은 클라이언트 측이 아니라 서버 측에서 코드를 실행하므로 비교적 안전합니다(위젯 자체를 로드하는 과정에서 로딩 속도가 느려질 수는 있지만, 그 정도입니다).

@Falco allowed iframes 설정을 완전히 놓치고 있었네요. 설정하자마자 바로 잘 작동하기 시작했습니다! 팀 컴포넌트에 대해서는 어떻게 할 수 있을지 한번 확인해 보겠습니다 :slight_smile: