Нам нужно добавить отказ от ответственности или раскрытие информации к определенным сообщениям (около 100 штук, и их число растет). Текст раскрытия может измениться в будущем, поэтому я хотел бы добавить [DISCLOSURE-GOES-HERE] в каждое из 100 сообщений. Мы можем добавить его вручную, это не проблема. Но когда мы обновим текст раскрытия в будущем, я хочу изменить его только в одном месте.
Что я пробовал:
Watched Words. Проблема в том, что в существующих сообщениях обновленное раскрытие не отображается, пока вы не отредактируете сообщение. Это сводит на нет цель в данном случае.
JavaScript для замены innerHTML элемента. Должно быть, я сделал что-то не так — это вызвало ошибки при замене дочернего узла:
<script type="text/discourse-plugin" version="0.8">
var disclosures = "• Важное раскрытие информации: Мы не несем ответственности и т. д. и т. д.";
api.decorateCooked($elem => {
var el = $elem[0];
el.innerHTML = el.innerHTML.replace('[DISCLOSURE-GOES-HERE]', disclosures);
});
</script>
Компонент темы Auto-linkify. Отлично подходит для других задач, но я хочу отображать сам текст раскрытия, а не ссылку на него.
Я знаю, что можно заменить текст через консоль Rails, но я хочу, чтобы модераторы поддерживали его.
Существует текстовый подход, который также поможет здесь: сделайте сообщение о раскрытии информации «вечнозеленым» и добавьте ссылку на детали предупреждения. Вместо того чтобы…
Важные раскрытия информации: мы не несем ответственности, не являемся виновными и даже не обладаем знаниями о заявлениях в этой теме.
…лучше сделать что-то вроде:
Важные раскрытия информации: эта тема содержит контент, который может требовать дополнительного контекста, предоставленного в Списке раскрытий
Тогда основная часть ваших обновлений будет сосредоточена на одной странице, которая также может быть темой в Discourse (легко редактировать/обновлять!).