Уценка и перенос строк

В большинстве случаев файлы 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» заключается в том, что не все рендеры отображают две строки с текстом в виде абзаца, но сохраняют разрыв строки как «жесткий разрыв строки», что приводит к тому, что результат также не будет визуально привлекательным.

Другие вопросы по тегам