다른 사이트에서 <iframe>으로 Discourse 포럼 전체를 임베드하기

이미 다른 두 스레드에서 이 문제에 대해 논의되었지만, 해당 스레드들은 잠겨 있습니다:

일부 사람들은 기존 사이트의 디자인에 맞춰 Discourse를 리브랜딩하는 방향으로 작업해야 한다고 말합니다.

경험상, 이를 수행하는 것은 매우 어렵습니다. 마크업과 해당 마크업에 대한 CSS는 다루기가 매우 복잡하고 유연하지 않습니다. 예를 들어, Discourse 헤더와 메인 콘텐츠 사이의 DOM 트리 구조는 서로 매우 다릅니다. Discourse의 내장 에디터를 통해 헤더 콘텐츠를 주입하면, 주입된 콘텐츠가 실제 Discourse 헤더에서 매우 먼 위치에 배치되는 문제가 발생합니다.

믿어 주십시오, 단순히 "Discourse를 내 메인 사이트 테마에 맞게 만들 것"은 꽤나 어려운 일입니다.

다음으로 시도해 보고 싶은 것은 Discourse를 <iframe>에 임베딩하는 것입니다. 결과가 어떻게 나올지 지켜보겠습니다.


기능 요청입니다! Discourse가 커스텀 엘리먼트의 집합으로 소비될 수 있다면 좋겠습니다. 예를 들어:

<!-- ... some custom markup ... -->

<discourse-actions backend="http://url.to/actual/discourse/instance">

<!-- ... some custom markup ... -->

<discourse-main backend="http://url.to/actual/discourse/instance>
```\n
이렇게 하면 사이트의 어디에나 Discourse의 조각들을 임베딩할 수 있고, 해당 엘리먼트들이 지정된 백엔드에 연결되도록 할 수 있습니다.

`http://url.to/actual/discourse/instance`를 직접 방문하면, Discourse가 독립된 웹 애플리케이션으로서 정상적인 방식으로 열립니다.

기본적으로 이 기능은 Discourse의 부분들을 전체 HTML 구조 내에서 사용할 수 있게 해줍니다(핸들바 템플릿의 부분 템플릿과 유사하지만, 웹 표준을 기반으로 하여 미래를 대비한 방식으로 구축됨).

이러한 기능이 있다면 무엇이 더 가능해질지 상상해 보세요(`backend` 속성이 다른 값을 가진 커스텀 엘리먼트에 대해 생각해보면 됩니다)...

iframe에서 Discourse를 시도해 보시는 것을 막을 수는 없지만, 다른 주제에서 경고했듯이… 불안정하고 문제가 생길 가능성이 높습니다… 또한 iframe 관련 문제를 해결하는 데 시간을 들일 계획도 없습니다.

Discourse 테마 설정 시 겪는 문제를 자세히 설명해 주시는 것이 시간을 더 잘 활용하는 방법일 수 있습니다. 그러면 도움을 드리고/또는 프로세스를 개선하는 데 기여할 수 있습니다. 지난 몇 년간 테마 설정 기능을 많이 개선해 왔으며, 가능한 한 지원하고 개선하는 것을 확실히 원하고 있습니다.

커스터마이징이 다른 요소보다 확실히 더 어려운 요소들이 있으며, 헤더가 그 중 하나입니다. 이는 성능을 개선하기 위해 Virtual DOM이 구현되었기 때문입니다 (A tour of how the Widget (Virtual DOM) code in Discourse works).

따라서 헤더에 콘텐츠를 삽입하려면 관리자 UI에서 콘텐츠 전/후에 추가하는 대신 해당 시스템을 활용해야 합니다 (https://meta.discourse.org/t/developer-s-guide-to-discourse-themes/93648/1의 고급 pluginAPI 섹션에 일부 설명되어 있음). 또한 기존 #customization:theme-component에서 헤더 콘텐츠를 조작하는 좋은 예시들이 있으며, Custom Header Links 등이 있습니다.

이 기능이 있으면 좋겠고, 시도해 봤는데 여전히 작동하지 않아요. 그냥