Скорее всего, по вполне благим намерениям, Discourse заменяет -- на – (тире-дефис) и --- на — (длинное тире).
Меня это слегка раздражает, потому что когда люди используют -- в тексте (например, в письмах или в старые времена на пишущей машинке), они почти всегда подразумевают длинное тире. Тире-дефис используется лишь в нескольких довольно специфических случаях, таких как указание диапазона чисел или времени («Вечеринка с 7–9 вечера»), результатов спортивных матчей или голосований («Она одержала сокрушительную победу со счётом 78–22!») или иногда для сложных прилагательных («эпоха Первой мировой войны»). Все эти случаи обозначаются одним символом - на пишущей машинке или обычной клавиатуре, и именно так пишут большинство людей.
Таким образом, то, что делает Discourse, почти всегда неверно (если использовать слово «неверно» в крайне педантичном смысле).
Мне кажется, что предлагать исправить это как глобальную ошибку — скорее всего, борьба с ветряными мельницами, поэтому я спрашиваю, как настроить свой сайт локально, чтобы это меня хотя бы не раздражало. Я думал об использовании функции замены слов, но это, похоже, также ломает случаи, когда --------- или подобные последовательности используются для горизонтальных разделителей или заголовков в Markdown.
Можно отключить это через административную настройку enable_markdown_typographer? Это также остановит преобразование → и ™ и т.п., но это, похоже, самый простой способ.
Ладно, этот момент всё ещё меня беспокоит. И я понял, что проблема не только на моем сайте.
Часть привлекательности Markdown — даже по сравнению с некоторыми другими легковесными языками разметки текста — заключается в том, что сохраняются обычные соглашения для ASCII-текста, и вам обычно не нужно делать ничего странного, чтобы обычный текстовый абзац отображался как положено. Это нарушает это правило.[1]
Так что позвольте задать немного другой вопрос. Готовы ли вы изменить функцию Markdown Typographer, используемую в Discourse, чтобы -- рендерилось в тире (em dash), а не в короткое тире (en dash)? [2]
Спасибо, что рассмотрите это предложение.
опять же, в педантичном смысле слова «нарушает», но, знаете ли, всё равно↩︎
то есть в общепринято правильное «—», а не в слишком короткое «`–``»? ↩︎
Хм, мы не можем просто изменить это правило, так как предпочтительное использование среднего тире (en dash) и длинного тире (em dash) различается в зависимости от языка и страны. В немецком языке мы определенно хотим получать среднее тире при вводе --, и, как мне кажется, то же самое верно для французского и британского английского, по крайней мере, так я понял, пробежавшись по статье Dash - Wikipedia.
Достаточно ли будет настройки сайта? Должен ли Discourse автоматически переключаться между средним тире и длинным тире в зависимости от языка интерфейса пользователя? Я не уверен, какое решение будет лучшим…
Сегодня я понял, что текст справки по этому параметру издевается надо мной. В нём сказано:
Используйте правила типографики для улучшения читаемости текста: заменяйте прямые кавычки ' на фигурные ’, (tm) на символ, -- на длинное тире –, и т. д.
В нём говорится «длинное тире».
Но это, мои дорогие друзья, короткое тире (en dash).