# Поддержка \<span data-attribute\> в визуальном редакторе

**URL:** https://meta.discourse.org/t/support-span-data-attribute-in-the-rich-editor/400885
**Category:** Feature
**Tags:** composer
**Created:** [17.Апрель.2026 10:41:55 UTC](https://meta.discourse.org/t/support-span-data-attribute-in-the-rich-editor/400885 "2026-04-17T10:41:55Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)
#### Post date: [17.Апрель.2026 10:41:55 UTC](https://meta.discourse.org/t/support-span-data-attribute-in-the-rich-editor/400885/1 "2026-04-17T10:41:55Z")

</div>

Если я выделю текст на одной строке и применю обертку через кнопку редактора, будет применена встроенная обертка. Это работает, хотя последняя буква выделенного текста частично обрезается:

![image](https://global.discourse-cdn.com/meta/original/4X/6/c/e/6ce9fafdee6e5fbb2699926ba8a28a5d2131303f.png)

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

Другой способ — использование `<span data-attribute>`, который не поддерживается в визуальном редакторе (атрибут `data-attribute` удаляется), но полностью поддерживается в редакторе Markdown. Интересно, что этот разрешённый синтаксис указан не в [discourse/frontend/pretty-text/addon/allow-lister.js at 3b13aaa003332e7bf056a6cbb2c0da0cf107a0fd · discourse/discourse · GitHub](https://github.com/discourse/discourse/blob/3b13aaa003332e7bf056a6cbb2c0da0cf107a0fd/frontend/pretty-text/addon/allow-lister.js#L115), а в [discourse/frontend/discourse-markdown-it/src/features/d-wrap.js at 3b13aaa003332e7bf056a6cbb2c0da0cf107a0fd · discourse/discourse · GitHub](https://github.com/discourse/discourse/blob/3b13aaa003332e7bf056a6cbb2c0da0cf107a0fd/frontend/discourse-markdown-it/src/features/d-wrap.js#L44) 🙂

`<span data-attribute>` документирован на meta и, вероятно, используется за пределами моего форума. Его преимущество в том, что он никогда не преобразуется в блочный элемент, даже если на той же строке нет другого контента.

Обычная обертка, стоящая на строке отдельно, например:

```plaintext
[wrap="fish"]text[/wrap]

```

будет отрендерена как блок:

```plaintext
<div class="d-wrap" data-wrap="fish">
<p>text</p>
</div>

```

Насколько мне известно, единственные способы избежать такого поведения — это:

- Использование `<span data-attribute>`:

- Добавление неразрывного (в идеале нулевой ширины) пробела, например `&ZeroWidthSpace;`, в начало или конец строки.

Второй вариант немного хакован.

Я бы предпочел иметь возможность использовать первое решение в визуальном редакторе. В целом, любой простой способ создания встроенной обертки был бы полезен.
