Uma opção possível é usar um componente de tema.
Isso deve ser colocado em header.html
<script type="text/discourse-plugin" version="0.8">
var disclaimer = settings.Disclaimer_text,
disclaimer_selector = 'div[data-theme="disclaimer"]';
$.fn.disclaimer = function() {
if (!this.length) {
return;
} else {
this.each(function() {
$(this).html(disclaimer);
});
return this;
}
};
api.decorateCooked($elem => $elem.children(disclaimer_selector).disclaimer());
// criar botão no compositor
let currentLocale = I18n.currentLocale();
I18n.translations[currentLocale].js.disclaimer_button = "Adicionar aviso";
I18n.translations[currentLocale].js.composer.disclaimer_prompt = ""; // deixar vazio
api.onToolbarCreate(function(toolbar) {
toolbar.addButton({
trimLeading: true,
id: "disclaimer-button",
group: "insertions",
icon: "exclamation-circle", // alterar ícone
title: "disclaimer_button",
perform: function(e) {
return e.applySurround(
'<div data-theme="disclaimer">',
"</div>",
"disclaimer_prompt"
);
}
});
});
</script>
e isso deve ser colocado no arquivo settings.yml do seu componente
Disclaimer_text:
default: "Lorem ipsum dolor sit amet, ei purto complectitur has, per at quas senserit. Et malis libris eos, vix id pericula dissentiet, aliquid apeirian pro eu. Sed ex viderer inciderint, vitae officiis dissentiet eos no. Omnes percipit singulis in has, ne nam nibh tation inciderint. Quas nulla ei sit, ex eam rebum voluptaria. Id eam altera similique. Ex justo assentior persequeris mea, ei hinc paulo ubique mei. <br><br>Cu nam epicurei torquatos, et accusam accommodare vim. Vis sint saperet officiis et. Ad consequat posidonium mea, et duo paulo quidam maluisset, vel an electram expetendis. An vis repudiare tincidunt, mentitum convenire eloquentiam ut vis, summo partiendo pro ad."
description:
en: Insira o texto do aviso desejado. Use <br> para quebras de linha.
Assim, você terá um botão no compositor que se parece com isto:
e ao clicar no botão, será adicionado
<div data-theme="disclaimer"></div>
o que será convertido para o que você configurou nas definições do componente
e o resultado final ficará assim
e você pode usar
[data-theme="disclaimer"] {
}
no CSS para estilizar como preferir.


