Настройка цветов упоминаний

Вдохновленный этой темой и пользовательскими цветами ролей в Discord, я написал очень простой код, который добавляет data-mention к упоминаниям групп и пользователей. Это позволяет задавать разные цвета (а не «общий цвет») через CSS :smile:

На данный момент код написан на JQuery, но в будущем я переделаю его на чистый JavaScript :sweat_smile:


Чтобы применить его, просто вставьте код в секцию <head> вашей темы или компонента:

<script type="text/discourse-plugin" version="0.9">
$(document).ajaxSuccess(() =>{
  $('a.mention').each(function() {
    $(this).attr('data-mention', $(this).text().replace('@', ''));  
   });
  $('a.mention-group').each(function() {
   $(this).attr('data-mention', $(this).text().replace('@', ''));  
   });
});
</script>

После этого вы можете применить нужный стиль через CSS :partying_face:

Например:

a.mention[data-mention="Alexander"] {
  color: #4527a0 !important;
}

CapturaMentionUser


В данном примере использовалось конкретное имя пользователя, однако это также работает для групп с помощью a.mention-group[data-mention="group-name"]


Я подумаю над тем, чтобы превратить это в компонент темы, который можно настраивать через его «настройки» без изменения CSS :thinking:

11 лайков

Просто выскажу своё мнение. Думаю, это хорошо вписывается в эту тему. Особенно вот это:

4 лайка

Возможно ли внести изменения, чтобы подсвечивать упоминания всех участников, состоящих в указанной группе?

+1

Я ищу способ определить, какие пользователи не входят в группу (или входят в группу) в теме, содержащей список упоминаний пользователей.