可插入的、集中维护的文本/Markdown 片段

一种可能的选择是使用主题组件。

这应放在 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());

// 创建作曲家按钮
let currentLocale = I18n.currentLocale();

I18n.translations[currentLocale].js.disclaimer_button = "添加免责声明";
I18n.translations[currentLocale].js.composer.disclaimer_prompt = ""; // 留空

api.onToolbarCreate(function(toolbar) {
  toolbar.addButton({
    trimLeading: true,
    id: "disclaimer-button",
    group: "insertions",
    icon: "exclamation-circle", // 更改图标
    title: "disclaimer_button",
    perform: function(e) {
      return e.applySurround(
        '<div data-theme="disclaimer">',
        "</div>",
        "disclaimer_prompt"
      );
    }
  });
});
</script>

然后将其放入组件的 settings.yml 文件中

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: 输入所需的免责声明文本。使用 &lt;br&gt; 进行换行。

然后,您将在作曲家中看到一个如下所示的按钮:

点击该按钮将添加

<div data-theme="disclaimer"></div>

该内容将根据您在组件设置中定义的内容进行转换

最终结果如下所示:

您可以在 CSS 中使用

[data-theme="disclaimer"] {

}

以您喜欢的方式对其进行样式设置。

21 个赞