Уценка и перенос строк
В большинстве случаев файлы Markdown обрабатываются так же, как исходный код: они находятся в VCS, они принимают участие в запросах и / или обзорах, и они хорошо отформатированы. И так же, как в исходном коде, я часто вижу вставленные разрывы строк определенной длины, как это делал бы форматировщик кода.
Многие редакторы делают это динамически в соответствии с текущим размером окна. Кроме того, Markdown в основном используется для создания HTML-страниц, PDF-документов или других форматов. Вставленные вручную разрывы строк часто приводят к неправильному отображению текста в таких ситуациях.
Итак, является ли обертка Markdown определенной длины линии своего рода анти-паттерном или я что-то упустил?
EDIT: Вся эта тема, кажется спорным. Даже текущая спецификация CommonMark ( v0.26) несколько отстаёт:
Обычный разрыв строки (не в интервале кода или HTML-теге), которому не предшествуют два или более пробелов или обратный слеш, анализируется как программный разрыв. (Мягкий разрыв может отображаться в HTML либо как конец строки, либо как пробел. Результат будет таким же в браузерах. В приведенных здесь примерах будет использоваться конец строки.)
[...]
Соответствующий синтаксический анализатор может отображать мягкий разрыв строки в HTML как разрыв строки или как пробел.
Средство рендеринга также может предоставлять возможность рендеринга мягких разрывов строк как жестких разрывов строк.
Тем не менее, Джон Грубер сказал еще в 2004 году:
Смысл правила "одна или несколько последовательных строк текста" заключается в том, что Markdown поддерживает "жестко завернутые" текстовые абзацы. Это существенно отличается от большинства других форматеров преобразования текста в HTML (включая параметр "Преобразовать разрывы строк" в Movable Type), которые переводят каждый символ переноса строки в абзаце в
<br />
тег.Когда вы хотите вставить
<br />
Разбить тег с помощью Markdown, вы заканчиваете строку двумя или более пробелами, затем набираете return.Да, для создания
<br />
, но упрощенно "каждый разрыв строки<br />
Правило не будет работать для Markdown. Блочные цитаты в стиле электронной почты и списки из нескольких абзацев в Markdown работают лучше - и выглядят лучше - когда вы форматируете их с трудными перерывами.
2 ответа
Большинство средств визуализации с уценкой игнорируют одиночные переносы строк, поэтому перенос текста вокруг определенной согласованной длины не повлияет на результат визуализации. Однако это потенциально значительно облегчит поддержку кода. Мало того, что это не анти-паттерн, некоторые проекты даже требуют его в своих стандартах кодирования (пример из головы: libstoragemgmt-doc).
Хорошо это или плохо всегда зависит от вашей точки зрения и контекста.
После того, как я сам изменил настройки, я думаю, что основным разделителем является то, храните ли вы их в системе контроля версий, например git, или если вы пишете и читаете их только для «личного использования».
Использование «одно предложение в строке» делает различия «семантическими» в том смысле, что они влияют только на те строки/предложения, которые были изменены. Переформатировать целые абзацы и отобразить их в git diff... ну, нехорошо. Он скрывает фактическое изменение с помощью «представления».
Если это не проблема, иногда более длинные и рваные строки делают чтение и письмо менее приятными, поэтому в вики, электронной почте и т. д. я предпочитаю автоматически перекомпоновывать и ограничивать строки, как если бы я печатал письмо.
Markdown на самом деле не презентация, а исходный код, поэтому один из способов взглянуть на него состоит в том, что мы не должны так сильно заботиться о читабельности исходного кода, если важнее управление версиями.
Но одно предостережение с представлением «markdown is source» заключается в том, что не все рендеры отображают две строки с текстом в виде абзаца, но сохраняют разрыв строки как «жесткий разрыв строки», что приводит к тому, что результат также не будет визуально привлекательным.