На двух разных сайтах Discourse я столкнулся с проблемой: при выделении текста и нажатии кнопки «Цитата» для ответа в одном месте используются «умные» кавычки, что нарушает отображение моего поста. Ниже приведён скриншот примера поста, который отображается некорректно из-за «умной» кавычки в конце первой строки (внутри скобок):
Это происходит уже несколько месяцев, и я только что понял, что именно вызывало проблему в этих постах.
Мне удаётся воспроизвести это примерно в 50 % случаев в Safari 18.4 на Mac OS 15.4, а также в более ранней версии Safari на Mac OS 15.3.
Сайт, который я администрирую, где я это наблюдаю, работает на версии Discourse 3.4.2. На другом сайте, где я недавно столкнулся с этой проблемой, установлена версия 3.4.0.beta3-dev.
Кажется, я также видел, что другие пользователи сталкиваются с этой проблемой на моём сайте, но сегодня я не проверял это повторно.
Очевидно, что для исправления бага необходимо внести настоящее исправление, но на случай, если это будет полезно до тех пор, я упомяну, что временным решением может быть удаление двойных кавычек из настройки сайта «Markdown typographer quotation marks» или отключение настройки сайта «Enable markdown typographer». Я предполагаю, что именно функция «Markdown typographer» вызывает замену правильного символа прямой двойной кавычки в теге BBCode на неправильный символ «умных» или «фигурных» кавычек.
Другой пользователь сообщает, что если отключить подстановку умных кавычек в Safari в разделе Правка → Подстановки → Умные кавычки, это исправит проблему.
Хотя я не очень хочу этого делать, lol. Мне нравятся умные кавычки большую часть времени.
Я думаю, что это и есть причина проблемы, в дополнение к тому факту, что мы имитируем ввод пользователя в textarea при добавлении такого типа, чтобы не потерять историю отмены.
Полагаю, это можно «решить», установив spellcheck="false" для элемента, но у этого есть очевидный недостаток.
Причиной проблемы является несоответствие кавычек: всё работало бы, если бы кавычки на обоих концах были одного стиля. Можно использовать любой из следующих наборов:
Странно, что при цитировании преобразовалась только вторая кавычка, хотя при ручном вводе одного и того же BBCode преобразуются обе стороны.