안녕하세요,
이미 어딘가에 답변이 올라가 있을 수도 있지만, 몇 시간을 찾아봐도 스스로 해결하지 못해서 질문드립니다.
위젯과 컴포넌트의 개념은 어느 정도 파악한 것 같은데, 찾아본 모든 예제가 비슷한 방식으로 만들어져 있었습니다.
위젯이나 컴포넌트는 이미 존재하는 위젯이나 기존 커넥터, 아웃렛에 연결(hook)되어 있는 구조였습니다.
제가 하려는 일은 다음과 같습니다:
Dark/Light Toggler 컴포넌트를 사용 중인데, 사용자가 찾기 직관적이지 않습니다.
다른 테마 전환기 컴포넌트들(제 것이 포함)도 항상 기존 디스코urs 요소(헤더, 링크, 내비게이션 등)에 첨부되어 있습니다.
하지만 제 자체 HTML, 제 사이드바 안에 넣고 싶습니다:
화면에 보이는 제 사이드바는 다음과 같은 구조입니다:
<div class="row">
<div class="sidebar-counterTitleWrapper">
<div class="sidebar-counterRefreshIcon" type="success" size="medium" circle>
<svg class="far fa-sync fa d-icon d-icon-sync svg-icon svg-node">
<use xlink:href="#sync"></use>
</svg>
</div>
<h3 class="sidebar-counterTitle">
Player online on HWS
</h3>
</div>
<div class="sidebar-counterServers">
<span class="sidebar-counterPlayer">HWS EU:</span>
<strong class="sidebar-counterPlayer--eu">
</strong>
</div>
<div class="sidebar-counterServers">
<span class="sidebar-counterPlayer">HWS NA:</span>
<strong class="sidebar-counterPlayer--na">
</strong>
</div>
<div class="sidebar-counterServers">
<span class="sidebar-counterPlayer">HWS RE:</span>
<strong class="sidebar-counterPlayer--re">
</strong>
</div>
<br>
<h4 class="sidebar-server-title">Server Time</h4>
<div class="sidebar-server-time"></div>
</div>
<hr class="content-textLine">
<div class="need-help-wrapper">
<a href="https://help.hws.global" title="HWS Get help">
Need help?
</a>
<hr class="content-textLine">
이를 어떻게 해야 할까요?
이상적으로는 다음과 같은 형태였으면 좋겠습니다.
<script type="text/discourse-plugin" version="0.8">
const h = require("virtual-dom").h;
api.createWidget("my-dark-light-widget", {
tagName: "div.my-widget",
// dark-light stuff
});
</script>
그리고 제 자체 HTML에 다음과 같이 주입(inject)하는 방식입니다:
<script type="text/x-handlebars" inject-to-my-class-selector(.sidebar-counterTitleWrapper)>
{{mount-widget widget="my-dark-light-widget"}}
</script>
아주 쉬운 것인데 제가 놓치고 있는 것 같습니다…
도움 주시면 감사하겠습니다!


