Можно ли «исправить» отображение -- как тире en dash с помощью «Следящих слов» (или каким-то другим способом)?

Скорее всего, по вполне благим намерениям, Discourse заменяет -- на (тире-дефис) и --- на (длинное тире).

Меня это слегка раздражает, потому что когда люди используют -- в тексте (например, в письмах или в старые времена на пишущей машинке), они почти всегда подразумевают длинное тире. Тире-дефис используется лишь в нескольких довольно специфических случаях, таких как указание диапазона чисел или времени («Вечеринка с 7–9 вечера»), результатов спортивных матчей или голосований («Она одержала сокрушительную победу со счётом 78–22!») или иногда для сложных прилагательных («эпоха Первой мировой войны»). Все эти случаи обозначаются одним символом - на пишущей машинке или обычной клавиатуре, и именно так пишут большинство людей.

Таким образом, то, что делает Discourse, почти всегда неверно (если использовать слово «неверно» в крайне педантичном смысле).

Мне кажется, что предлагать исправить это как глобальную ошибку — скорее всего, борьба с ветряными мельницами, поэтому я спрашиваю, как настроить свой сайт локально, чтобы это меня хотя бы не раздражало. Я думал об использовании функции замены слов, но это, похоже, также ломает случаи, когда --------- или подобные последовательности используются для горизонтальных разделителей или заголовков в Markdown.

Есть ли другие идеи?

2 лайка

Можно отключить это через административную настройку enable_markdown_typographer? Это также остановит преобразование → и ™ и т.п., но это, похоже, самый простой способ.

1 лайк

Мне нравятся другие. Этот просто неправильный ™.

Ладно, этот момент всё ещё меня беспокоит. И я понял, что проблема не только на моем сайте.

Часть привлекательности Markdown — даже по сравнению с некоторыми другими легковесными языками разметки текста — заключается в том, что сохраняются обычные соглашения для ASCII-текста, и вам обычно не нужно делать ничего странного, чтобы обычный текстовый абзац отображался как положено. Это нарушает это правило. [1]

Так что позвольте задать немного другой вопрос. Готовы ли вы изменить функцию Markdown Typographer, используемую в Discourse, чтобы -- рендерилось в тире (em dash), а не в короткое тире (en dash)? [2]

Спасибо, что рассмотрите это предложение. :slight_smile:


  1. опять же, в педантичном смысле слова «нарушает», но, знаете ли, всё равно ↩︎

  2. то есть в общепринято правильное «», а не в слишком короткое «`–``»? ↩︎

1 лайк

Хм, мы не можем просто изменить это правило, так как предпочтительное использование среднего тире (en dash) и длинного тире (em dash) различается в зависимости от языка и страны. В немецком языке мы определенно хотим получать среднее тире при вводе --, и, как мне кажется, то же самое верно для французского и британского английского, по крайней мере, так я понял, пробежавшись по статье Dash - Wikipedia.

Достаточно ли будет настройки сайта? Должен ли Discourse автоматически переключаться между средним тире и длинным тире в зависимости от языка интерфейса пользователя? Я не уверен, какое решение будет лучшим… :thinking:

У меня действительно нет никакого мнения. Я считаю, что довольно мало кто замечает разницу или заботится об этом.

немного отредактированный оффтоп…

Всё, что я знаю, мне нравится —> ™ и т.д., но создание таблиц — это довольно больное место, потому что - - превращается в —

Я отредактировал этот пост, потому что мне посоветовали, что достаточно одного дефиса. Я не знал этого — каждый день что-то новое.

Интересно! Сегодня я узнал что-то новое!

Возможность настройки для каждого языка могла бы быть интересна — хотя я бы согласился и на просто способ изменить это. (https://www.npmjs.com/package/markdown-it-replacements)

1 лайк

Сегодня я понял, что текст справки по этому параметру издевается надо мной. В нём сказано:

Используйте правила типографики для улучшения читаемости текста: заменяйте прямые кавычки ' на фигурные ’, (tm) на символ, -- на длинное тире –, и т. д.

В нём говорится «длинное тире».

Но это, мои дорогие друзья, короткое тире (en dash).

О, человеческая природа!

4 лайка

Тут действительно невозможно угодить всем.

Из чистого любопытства я задаюсь вопросом…

[root@fedora-39 /]# grep DASH /usr/share/X11/locale/en_US.UTF-8/Compose 
<Multi_key> <minus> <minus> <period>    : "–"	U2013 # EN DASH
<Multi_key> <minus> <minus> <minus>     : "—"	U2014 # EM DASH

Кажется, сама Fedora согласна с тем, что два дефиса → (короткое тире), а три дефиса → (длинное тире) :grin:

2 лайка