¡Hola!
Lo siento si la respuesta ya estaba esperándome en algún lugar, pero después de horas no pude encontrarla ni resolverlo por mi cuenta.
Creo que entendí el significado de widgets y componentes, pero cada ejemplo que encontré tenía una estructura similar.
Un widget o componente se acopla a uno ya existente o a un conector o salida predefinido.
Lo que estoy intentando hacer:
Estoy usando el componente alternador de modo oscuro/claro, pero no es intuitivo para los usuarios encontrarlo.
Otros componentes de cambio de tema (el mío incluido) siempre están adjuntos a un elemento existente de Discourse (encabezado, enlaces, navegación, etc.).
Pero quiero colocarlo en mi propio HTML, en mi propia barra lateral:
Mi barra lateral se ve así en pantalla:
<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">
Jugadores en línea en 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">Hora del servidor</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 Obtener ayuda">
¿Necesitas ayuda?
</a>
<hr class="content-textLine">
¿Cómo puedo hacerlo?
Idealmente, sería algo como:
<script type="text/discourse-plugin" version="0.8">
const h = require("virtual-dom").h;
api.createWidget("my-dark-light-widget", {
tagName: "div.my-widget",
// lógica de modo oscuro/claro
});
</script>
Y luego inyectarlo en mi propio HTML así:
<script type="text/x-handlebars" inject-to-my-class-selector(.sidebar-counterTitleWrapper)>
{{mount-widget widget="my-dark-light-widget"}}
</script>
Creo que es algo sencillo que solo se me escapa…
¡Agradezco cualquier ayuda!


