Embed Discourse comments on another website via Javascript

오늘 이 기능을 구현하려고 했는데 몇 가지 문제가 있습니다:

  • 포럼 게시물에서 파생된 URL(어떤 건 discourseEmbedUrl에서 온 것 같은데)이 소문자로 변환되어, "This is a companion discussion topic for the original entry at …"라는 텍스트 뒤에 오는 대소문자를 구분하는 URL이 깨집니다.
  • 첫 페이지 로드 시 임베드에 "Discussion 로딩 중…"이라는 메시지가 표시되고 멈춰 있습니다. 두 번째 페이지 로드 시에는 모든 것이 정상적으로 작동합니다.
  • 페이지 흔들림(Page thrashing): iframe이 로딩되는 동안 기본 높이가 유지되지만, 댓글이 하나도 발견되지 않으면 높이가 줄어 “Start Discussion” 한 줄만 표시되도록 축소됩니다. 이로 인해 “discussion 로딩 중” 버그가 더 악화되며, 큰 세로 높이를 유지하게 됩니다.
  • 임베드의 부모 요소에서 스크래핑된 데이터가 페이지 전체를 텍스트로 변환하는 대신 메타 태그를 우선적으로 사용했으면 좋겠습니다. 아마도 이것은 더 일반적인 Discourse 동작일 것입니다.

가장 놀라운 점은 임베드가 포함된 URL을 방문할 때마다 새로운 토픽이 생성된다는 사실이었습니다. 이는 OP(최초 게시물)에 나와 있습니다:

제가 생각할 수 있는 유일한 해결책은 다소 해킹적인 방식이며, 임베드 엔드포인트를 핑(Ping)하기 위해 단기 SSR/캐싱에 의존하는 것입니다:

따라서 로직은 다음과 같을 것 같습니다:

  1. $discourse/embed/info?embed_url=$link를 확인합니다.

  2. 토픽이 존재하면 임베드를 평소처럼 표시합니다.

  3. 존재하지 않으면 $discourse/new-topic?subject=$link로 연결되는 “대화 시작” 버튼을 표시합니다.

이 방식이 작동할까요, 아니면 추가로 처리해야 하는 다른 링크가 있을까요?