Возможно ли разрешить использование неразрывного пробела (NBSP, U+00A0) и даже узкого неразрывного пробела (NNBSP, U+202F) в постах?
В настоящее время Discourse заменяет их на обычный пробел (SP, U+0020) (даже в фрагментах кода), что нарушает отображение чисел во французском языке при переносе строк.
Во французском языке как минимум должен использоваться узкий неразрывный пробел: перед знаками препинания !?;:», после знаков препинания «–—, а также между группами из трёх цифр в больших числах.
Вот пример некорректного отображения согласно французским стандартам:
Давайте попробуем   для разделителя тысяч — неразрывного узкого пробела: 80 000 test 80 000 test 80 000 test 80 000 test 80 000 80 000 test 80 000 test 80 000 80 000 test 80 000 test 80 000 test 80 000 test 80 000 test 80 000 test 80 000 test 80 000 80 000 test 80 000 test 80 000 test 80 000 test 80 000.
Теперь всё действительно работает!
Я отредактировал свой пост на другом форуме, и теперь числа отображаются корректно.
Именованной HTML-сущности для этого нет, но можно использовать код Unicode, как здесь.
Спасибо за обходное решение, @codinghorror.
+1 по этому поводу. Во французском языке перед :, !, ? используется неразрывный пробел, так как они отделяются от предыдущего слова, и мы не хотим, чтобы они оказывались на следующей строке.
Текущее поведение замены неразрывных пробелов на обычные пробелы:
При сохранении неразрывного пробела больше не возникает ситуации с «одиночной точкой с запятой»:
Не думаю, что для этих символов нужен HTML-экранирующий последовательность, так же как не нужна она и для любых других не-ASCII символов: страницы передаются браузеру в кодировке UTF-8, и неразрывный пробел, как и все остальные символы, имеет представление в UTF-8, например:
→, √, ½, ñ, Ł, …
(Иными словами, почему Discourse допускает большинство последовательностей Unicode, но не неразрывные пробелы?)
Думаю, это сделано, чтобы избежать простой формы троллинга, когда люди редактируют сообщения, ничего не меняя, и остальные в недоумении спрашивают: «Что же изменилось?»
Да, я тоже так помню. Я не против удалить этот метод mornalize_whitespaces, если у нас появится более эффективный способ отображения различий (diff), когда такие «символы» используются для грифинга.
Можно ли реализовать mornalize_whitespaces при наличии нового параметра (включённого по умолчанию)? Тогда локальный администратор сможет отключить эту функцию, если для его сценария использования грифинг менее критичен, чем типографика?
Очень быстрый поиск в Google показал, что это не так. Или я неправильно понимаю, что означает отделено? ← Этот вопросительный знак, насколько мне известно, не отделён.
И это грамматическое правило, как и правило неделения тысяч, применяется ко всем (западным) языкам. Например, здесь тоже не должно быть ничего подобного
Мне бы хотелось увидеть источники, которые утверждают, что во французском языке слово и знак препинания «склеиваются».
Вот несколько источников, утверждающих, что знаки препинания (?, !, :; но не . и не ,) должны отделяться пробелом от предшествующего им слова, как в примере: « Comment vas-tu ? »
В «Lexique des règles typographiques en usage à l’Imprimerie nationale» (Глоссарий типографских правил, используемых Национальной типографией), страница 149, указано: «espace fine insécable ? espace justificante». Таким образом, там не рекомендуется использовать U+00A0 (неразрывный пробел), а рекомендуется U+202F (узкий неразрывный пробел) (я не знаю, как набрать его на своей клавиатуре, но это точно не U+0020 (простой пробел)). (К сожалению, книга платная, поэтому я не могу предоставить на неё ссылку).
Французская Википедия пишет: «En France, il est d’usage de placer une espace fine insécable avant le point d’interrogation, ou une espace insécable si la fine n’est pas disponible.» (Во Франции принято ставить узкий неразрывный пробел перед вопросительным знаком, либо обычный неразрывный пробел, если узкий недоступен.)
Одно учебное пособие для начинающих, которые думают, что могут выучить французский ;). Мне следовало вернуться назад… Не знаю, как это называется по-английски, но что-то вроде вечерних курсов для взрослых, организованных сообществом — способ провести свободное время и узнать что-то новое — и сфотографировать этот текст.
Но я признаю свою ошибку. Вы наверняка знаете это лучше, чем я когда-либо смогу.