Возврат виджета:
Вы можете вернуть свой собственный пользовательский виджет в api.decorateWidget, что даст вам гораздо больше контроля над применением атрибутов, состояний, действий и т. д.
Например:
api.decorateWidget('menu-links:before', helper => {
return helper.widget.attach("custom-menu-links");
});
Затем внутри javascripts/discourse/widgets/custom-menu-links.js создайте виджет с помощью вспомогательной функции createWidget:
import { createWidget } from 'discourse/widgets/widget';
createWidget('custom-menu-links', {
...
});
Ознакомьтесь с этой темой, чтобы узнать о некоторых возможностях виджетов:
Я довольно часто использовал виджеты в компоненте темы выпадающего заголовка, возможно, вам пригодится часть кода.
Добавление target=“_blank”
Добавьте его в объект атрибутов:
return helper.h('a.google',
{
attributes: {
href: "https://google.com",
target: "_blank",
title: "Google"
},
}
...
);