Discourse 팀과 이메일로 몇 가지 논의한 후, 여기 업데이트를 공유합니다.
주요 발견 사항은 링크가 onebox로 변환되어 iframe으로 렌더링될 경우 썸네일이 로드되지 않는다는 것입니다.
즉, 아래 링크는
https://app.everviz.com/embed/N0dDTJaOQ
도메인에서 iframe이 허용되는지(allowed iframes)에 따라 썸네일이 렌더링되거나 그렇지 않습니다. 이 문제를 해결하기 위해 게시물에 iframe을 주입하는 방법을 찾아야 합니다. 저는 이를 수행하고, 게시물의 이미지 표시를 방지하기 위해 이미지에 display: none이 설정되도록 하는 플러그인을 작성했습니다.
이를 일반화하는 것이 가능할 것 같습니다:
- 모든 일반 onebox에 대해
get_oembed.thumbnail_url이 존재할 경우, 옆에 이미지를 조용히 로드하고 숨기는 것. - 아마도 더 나은 해결책이지만,
get_oembed.thumbnail_url을 추출하고 이를 게시물과 연관 짓되,cooked영역 자체의 일부로 만들지 않는 일반적인 지원 추가.
관련 위치:
- https://oembed.com/
- discourse/lib/onebox/engine at main · discourse/discourse · GitHub
- discourse/lib/onebox/engine/standard_embed.rb at main · discourse/discourse · GitHub
이 모달 동작, 즉 allowed iframes가 활성화되어 있는지 아닌지에 따라 달라지는 부분에 대해 매우 만족스럽지 않습니다. Discourse가 해당 oembed 엔드포인트에 처음 GET 요청을 보낼 때 모든 속성을 추출하여 활용하는 것이 좋겠습니다.