Devolver un widget:
Lo que podrías hacer es devolver tu propio widget personalizado a api.decorateWidget, lo que te dará mucho más control en términos de aplicación de atributos, estado, acciones, etc.
Entonces podrías hacer:
api.decorateWidget('menu-links:before', helper => {
return helper.widget.attach("custom-menu-links");
});
Luego, dentro de javascripts/discourse/widgets/custom-menu-links.js, crea un widget usando el helper createWidget:
import { createWidget } from 'discourse/widgets/widget';
createWidget('custom-menu-links', {
...
});
Echa un vistazo a este tema para aprender algunas de las características de los Widgets:
Utilicé widgets bastante en mi componente temático de encabezado desplegable, es posible que encuentres algo del código útil.
Añadir target=“_blank”
Lo añades al objeto de atributos:
return helper.h('a.google',
{
attributes: {
href: "https://google.com",
target: "_blank",
title: "Google"
},
}
...
);