Последовательные пробелы в строковом коде сворачиваются

Последовательные пробелы в встроенном коде сворачиваются. Вот пример.

Markdown:

 - `o     o` нет соединения
 - `o --> o` однонаправленное соединение
 - `o <-> o` двунаправленное соединение

Отображение:

  • o o нет соединения
  • o --> o однонаправленное соединение
  • o <-> o двунаправленное соединение

Скриншот отображения:

Мне непонятно, является ли это намеренным или ошибкой, но если это намеренно, я не вижу в этом смысла. Как видно выше, это может быть контрпродуктивно. Если не нужны лишние пробелы, их легко удалить вручную. Смысл блоков кода (как встроенных, так и отдельных) заключается в включении текста в точности, как он написан, с использованием моноширинного шрифта.

5 лайков

Привет, Шаболц!

Спасибо за отчет. Я понимаю проблему, и это не совсем ошибка Discourse. Discourse использует markdown-it, и это его стандартное поведение.

Вы можете увидеть такое же поведение в официальном демо: https://markdown-it.github.io.


Если вам нужно, чтобы пробелы между обратными кавычками не сжимались, вы можете добавить этот CSS на свой форум:

code {
    white-space: pre-wrap;
}
3 лайка

Похоже, что это не соответствует CommonMark. Хотя это и не обязательно, но, возможно, их можно убедить изменить это, чтобы привести в соответствие?

В зависимости от цели это может быть даже хуже, так как это может вызвать путаницу при копировании/вставке.

3 лайка

Ты прав, я не подумал об этом, я убрал это сомнительное правило :+1:

1 лайк

Я не знаком с такими вещами, но, полагаю, речь идёт об этой части?

Обратите внимание, что браузеры обычно объединяют последовательные пробелы при отображении элементов <code>, поэтому рекомендуется использовать следующий CSS:

code{white-space: pre-wrap;}

На всякий случай: похоже, неразрывный пробел не сворачивается (o o), так что если вам всё же нужно использовать какой-то странный пробел, это, вероятно, лучший выбор.

Редакция: см. ниже грустную новость!

Строка выше этой: «Внутренние пробелы не сворачиваются».

1 лайк

Неразрывные пробелы могут отображаться без сжатия в предпросмотре редактора, но сжимаются при обработке публикации.

1 лайк

Нууууу, это жаль.

Спасибо за совет!

Подскажите, пожалуйста, доступна ли настройка пользовательского CSS для сайтов, размещённых на discourse.group? Мне не удалось сразу найти эту опцию.

На странице Discourse pricing | Discourse - Civilized Discussion указано, что пользовательские темы и компоненты доступны только начиная со стандартного тарифа.

Спасибо. Я наконец нашёл настройку, и всё работает отлично :slight_smile:

Мы используем бесплатное хостинг-решение для проектов с открытым исходным кодом: https://free.discourse.group/

3 лайка

Переношу это в ux. Здесь всё работает как задумано: команда дизайна намеренно решила сократить пробелы в интерфейсе, а сам markdown верный.

1 лайк