Я проверил это, и действительно, это позволило мне добавить [sb] вокруг текста, но, к сожалению, обрабатывался только текст, находящийся внутри элемента. Я бы хотел, чтобы вместо этого брался оригинальный текст, так как он содержит всё необходимое для воссоздания блока.
Сейчас я пытаюсь выяснить, можно ли сделать сам SVG не выделяемым, а вместо этого поместить под ним скрытый выделяемый элемент с исходным текстом.
Я реализую это, создавая контейнер, содержащий два элемента: SVG и исходный текст. Я пытаюсь установить для SVG position: relative, чтобы он мог выйти из потока и располагаться поверх исходного текста, а также задать контейнеру те же размеры, что и у SVG, чтобы он выглядел так, будто SVG всё ещё находится внутри текста. Кроме того, у исходного текста будет opacity: 0, и он будет очень маленького размера, чтобы быть невидимым на случай, если он выйдет за границы SVG.
Интересует, есть ли более простой способ сделать это, поскольку мой текущий подход потребует пересоздания всех постов, и, кроме того, это кажется костыльным решением проблемы, которая, как мне кажется, не должна требовать таких усилий.
Редактирование: после изучения кода функции addTagDecorateCallback() выяснилось, что в обратном вызове можно возвращать текст для замены любого текста, который использовался бы по умолчанию. Это действительно сильно поможет, так как, надеюсь, мне не придётся иметь дело с моей костыльной системой, которую я разрабатывал, и которая работает ужасно.