Возьмите следующий HTML: <ruby>振<rt>ふ</rt>り<rt></rt>仮<rt>が</rt>名<rt>な</rt></ruby>
振り仮名
Пустой тег <rt></rt> здесь очень важен, так как именно он обеспечивает правильное расположение фуриганы над каждым символом. Пустой тег <rt></rt> после символа り указывает на то, что над этим символом не следует размещать фуригану. Как вы видите выше, это работает как ожидалось.
Однако, когда я цитирую этот текст (не полную цитату поста), результирующий HTML выглядит так: <ruby>振<rt>ふ</rt>り仮<rt>が</rt>名<rt>な</rt></ruby>
振り仮名
Поскольку пустой тег <rt></rt> был удалён, символ が теперь появляется над обоими символами り и 仮, а не только над 仮, как в исходном тексте. Это происходит потому, что система полагает, что が предназначено для размещения над всеми предшествующими символами с момента последнего тега rt.
Если возможно, пожалуйста, обновите обработку цитирования HTML-тегов rt, чтобы они копировались даже в пустом виде.
Похоже, правильная версия первого варианта выглядит так: <ruby><rb>振<rb><rt>ふ<rt>り<rb>仮<rb><rt>が<rb>名<rt>な</ruby>
振仮名
По сравнению с: <ruby>振<rt>ふ</rt>り<rt></rt>仮<rt>が</rt>名<rt>な</rt></ruby>
振り仮名
Так что длина примерно одинаковая. На самом деле я никогда не видел подхода с использованием rb в первом варианте. Не уверен, используют ли люди вообще эту версию. Хотя кавычки расставляются верно. Тем не менее, мне всё ещё интересно: есть ли другие случаи, когда при цитировании копируются пустые HTML-теги?
Я создаю плагин для Discourse, который оборачивает существующий плагин markdown-it для тегов ruby, и они следуют традиционному подходу с использованием только rt, а не комбинации rb + rt. К сожалению, это означает, что цитирование в этом конкретном случае приведёт к некорректному HTML. Очевидно, такое может произойти, если люди вручную писали HTML-теги ruby. Я просто случайно заметил это благодаря плагину.