# Изменение способа разделения списков тегов

**URL:** <https://meta.discourse.org/t/change-to-how-lists-of-tags-are-separated/356258>\
**Category:** Development\
**Tags:** dev-news\
**Created:** [07.Март.2025 14:11:55 UTC](https://meta.discourse.org/t/change-to-how-lists-of-tags-are-separated/356258 "2025-03-07T14:11:55Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![awesomerobot](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/awesomerobot/32/142900_2.png) [@awesomerobot](https://meta.discourse.org/u/awesomerobot)\
**Post date:** [07.Март.2025 14:11:55 UTC](https://meta.discourse.org/t/change-to-how-lists-of-tags-are-separated/356258/1 "2025-03-07T14:11:55Z")

</div>

Списки тегов по темам в Discourse по умолчанию разделяются запятыми. Это не изменится, но изменился способ реализации и то, как вы можете это настроить:

 ![На изображении показано текстовое поле для ввода любимой сцены из телешоу, сопровождаемое плейсхолдерами тегов и упоминанием «0 голосов». (Подпись сгенерирована ИИ)](https://global.discourse-cdn.com/meta/original/4X/2/e/5/2e58d1e146e59242212a20b7276aeabdd8f729ad.png)

Ранее мы использовали CSS [псевдоэлемент](https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements) для добавления запятых, что не было идеальным решением, так как контент технически не является частью документа — скринридеры не могут его прочитать, его нельзя выделить, веб-краулеры его не видят…

Это изменение, объединённое сегодня, переносит разделители тегов в корректный HTML: [FEATURE: customizable tag separator with value transformer in proper HTML by awesomerobot · Pull Request #31674 · discourse/discourse · GitHub](https://github.com/discourse/discourse/pull/31674)

Для большинства сайтов это не приведёт к очевидным изменениям, но если вы ранее удаляли или изменяли разделитель тегов, вам теперь нужно будет использовать трансформер значений вместо CSS.

Это довольно простой процесс с использованием JS. Например, если вы хотите полностью убрать запятую:

```js
import { apiInitializer } from "discourse/lib/api";

export default apiInitializer((api) => {
  api.registerValueTransformer("tag-separator", () => "");
});

```

 ![Изображение](https://global.discourse-cdn.com/meta/original/4X/3/f/a/3fa12cd547cf8b1ba9a8c0ba544fa5733ffbeedb.png)

или если вы хотите использовать разделитель в виде вертикальной черты:

```js
import { apiInitializer } from "discourse/lib/api";

export default apiInitializer((api) => {
  api.registerValueTransformer("tag-separator", () => "|");
});

```

в сочетании с небольшим CSS:

```css
.discourse-tags__tag-separator {
  margin-inline: 0.25em;
}

```

 ![На изображении показан вопрос «Какой самый вдохновляющий фильм вы когда-либо видели?» с тегами, такими как gaming, dev, blog, job-application и feature, расположенными под ним в минималистичном дизайне. (Подпись сгенерирована ИИ)](https://global.discourse-cdn.com/meta/original/4X/b/0/8/b08aeecf0bfac11a229fe0db4bdf3d215596230f.png)

Сообщите нам, если вы столкнётесь с какими-либо проблемами в связи с этим изменением!

---

<div class="post-metadata">

**Author:** ![jesus2099](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jesus2099/32/119720_2.png) [@jesus2099](https://meta.discourse.org/u/jesus2099)\
**Post date:** [31.Март.2025 15:18:06 UTC](https://meta.discourse.org/t/change-to-how-lists-of-tags-are-separated/356258/2 "2025-03-31T15:18:06Z")

</div>

Мы видим двойные запятые:

> **[Discourse tags separated by two commas?](https://community.metabrainz.org/t/discourse-tags-separated-by-two-commas/752296?u=jesus2099)**
>
> As you can see in this example, the keywords are separated by two commas: or I’m not sure if this is a Discourse problem…

Вероятно, одна из них исходит от нового HTML-кода, а другая — от кастомной темы CSS (старый код).

Первая (HTML) действительно выделяется, тогда как вторая (CSS) — нет.

Следовательно, после этого изменения все кастомные темы, видимо, должны быть исправлены?

---

<div class="post-metadata">

**Author:** ![Arkshine](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/arkshine/32/298682_2.png) [@Arkshine](https://meta.discourse.org/u/Arkshine)\
**Post date:** [31.Март.2025 16:07:12 UTC](https://meta.discourse.org/t/change-to-how-lists-of-tags-are-separated/356258/3 "2025-03-31T16:07:12Z")

</div>

Судя по тому, что я вижу на вашем форуме, это связано с [Multilingual Plugin 🌐](https://meta.discourse.org/t/multilingual-plugin/142740) .

> <https://github.com/paviliondev/discourse-multilingual/blob/main/assets/stylesheets/common/multilingual/content-language-tags.scss#L7-L12>

Там всё ещё используется старый подход с псевдоэлементами CSS.  
Этот CSS можно удалить.

---

<div class="post-metadata">

**Author:** ![jesus2099](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jesus2099/32/119720_2.png) [@jesus2099](https://meta.discourse.org/u/jesus2099)\
**Post date:** [01.Апрель.2025 05:35:40 UTC](https://meta.discourse.org/t/change-to-how-lists-of-tags-are-separated/356258/4 "2025-04-01T05:35:40Z")

</div>

Вау! Спасибо за быструю диагностику!

---

<div class="post-metadata">

**Author:** ![Olle11](https://avatars.discourse-cdn.com/v4/letter/o/cdc98d/32.png) [@Olle11](https://meta.discourse.org/u/Olle11)\
**Post date:** [07.Апрель.2025 16:55:58 UTC](https://meta.discourse.org/t/change-to-how-lists-of-tags-are-separated/356258/5 "2025-04-07T16:55:58Z")

</div>

Привет, Arkshine,

Я попытался установить плагин Multilingual, и при его включении появились двойные запятые. Когда я пытаюсь отключить плагин, язык меняется на английский (и, следовательно, двойные запятые исчезают). При повторном включении возвращается мой язык.

Как вы думаете, мне стоит удалить плагин, если он мне сейчас не очень нужен? И если да, то почему язык теперь английский? При отключении плагина Multilingual поле «локаль по умолчанию» пустое.

Если плагин никак не влияет на работу сайта, возможно, я смогу оставить его и попытаться убрать двойные запятые.

С наилучшими пожеланиями,  
Олле

Редакция: Я исправил это, удалив плагин.

---

<div class="post-metadata">

**Author:** ![manuel](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/manuel/32/468169_2.png) [@manuel](https://meta.discourse.org/u/manuel)\
**Post date:** [28.Август.2025 12:07:08 UTC](https://meta.discourse.org/t/change-to-how-lists-of-tags-are-separated/356258/6 "2025-08-28T12:07:08Z")

</div>

Похоже, разделитель скрыт по умолчанию, когда стиль тега — «box» или «bullet»:

```plaintext
.discourse-tags .box + .discourse-tags__tag-separator, 
.discourse-tags .bullet + .discourse-tags__tag-separator {
  display: none;

```

Однако на мобильном списке это переопределяется более специфичным объявлением. Поэтому на мобильных устройствах разделитель отображается:

 ![Screenshot From 2025-08-28 12-59-05](https://global.discourse-cdn.com/meta/original/4X/6/7/3/673816dd98512492c7e593981984ba4b808aecfe.png)
