Как сделать перенос строки в Markdown:два пробела, обратный слэш или тег br.

Вы нажимаете Enter в Markdown-файле, а две строки отображаются как одна. Так задумано. Вот почему это происходит и три способа принудительно начать новую строку.

macOS 14 или новее. Чтение бесплатно; редактирование и ревью оплачиваются один раз.

Коротко

Один перевод строки в Markdown считается пробелом, поэтому строки сливаются. Чтобы разорвать строку, закончите её двумя пробелами, обратным слэшем или HTML-тегом <br>. Чтобы начать новый абзац, оставьте пустую строку.

First line\
Second line, after a backslash

Next paragraph, after a blank line

·

Почему Markdown игнорирует новую строку

Markdown склеивает строки абзаца. Если вы напишете

Roses are red
Violets are blue

читатель увидит один абзац: Roses are red Violets are blue. Перевод строки в исходном тексте — это мягкий перенос: место, где вы разбили текст, а не где читатель должен увидеть разрыв. Он позволяет переносить длинные строки в редакторе, не меняя вида страницы.

Пустая строка — другое дело. Она заканчивает абзац и начинает новый, с промежутком между ними. Чаще всего нужен именно такой разрыв.

Три способа принудительно перенести строку

Принудительный перенос, он же жёсткий, оставляет текст в том же абзаце и начинает следующую строку.

  1. Два пробела в конце строки

    Наберите минимум два пробела перед Enter. Работает везде, но пробелов не видно, а некоторые редакторы и настройки Git их убирают.

  2. Обратный слэш в конце строки

    Поставьте \ самым последним символом, без пробела после него. Он виден и не пропадает при обрезке. Это часть CommonMark и GitHub Flavored Markdown, хотя некоторые старые приложения его не знают.

  3. HTML-тег br

    Закончите строку на <br> (или <br/>). Работает почти в любом приложении, которое принимает встроенный HTML. Это ещё и единственный способ разорвать строку внутри ячейки таблицы.

Two spaces after this line  
comes out on a new line.

A backslash ends this one\
and breaks it too.

A tag also works.<br>
Third line.

Все три дают один результат:

Два пробела после этой строки
продолжаются на новой строке.

Какой способ выбрать

  • Новый абзац (пустая строка) для любой отдельной мысли. Самый переносимый вариант.
  • Обратный слэш, когда нужен разрыв посреди абзаца, например в адресе или стихотворении, и приложение следует CommonMark.
  • Тег br в ячейке таблицы или когда вы не уверены, что приложение поддерживает два других способа.
  • Два пробела только когда вы уверены, что их никто не уберёт.

Внутри строчного кода разрывы не работают, а разрыв в самом конце абзаца ничего не делает. Если нужен пустой промежуток, используйте пустую строку или заголовок, а не груду тегов <br>.

Примеры: адрес, стихотворение, пункт списка

Жёсткий перенос подходит для текста, где важна сама строка, например для почтового адреса:

Jane Smith221B Baker StreetLondon

Иван Петров
ул. Бейкер-стрит, 221B
Лондон

Внутри пункта списка закончите строку разрывом и сдвиньте следующую так, чтобы она совпала с текстом пункта:

- Pack the bags  and lock the door
- Leave at eight

Если разрыв нужен в каждой строке длинного текста, скорее всего, это список или блок кода, а для обоих в Markdown есть синтаксис.

Когда перенос строки всё равно не работает

  • Один пробел в конце. Нужно два или больше.
  • Пробел после обратного слэша. Слэш должен быть последним символом в строке.
  • Редактор убирает пробелы в конце строк при сохранении. Перейдите на обратный слэш или тег br.
  • Один и тот же текст выглядит по-разному в двух местах. Некоторые приложения, например поля issues и комментариев на GitHub, сохраняют одиночные переводы строк как разрывы, а Markdown-файл на GitHub нет. Принудительный разрыв выглядит одинаково везде.
  • Текст внутри пункта списка или цитаты. Оставьте разрыв в конце строки, а следующую строку сдвиньте по пункту.

Быстрее всего проверить, открыв файл в программе для чтения. DotMD следует этим правилам: одиночный перевод строки склеивает строки, а два пробела, обратный слэш или <br> разрывают строку. Чтение бесплатно, а в DotMD Editor живой предпросмотр показывает результат по мере набора.

Вопросы о переносах строк в Markdown

Как добавить новую строку в Markdown?

Чтобы разорвать строку внутри абзаца, закончите её двумя пробелами, обратным слэшем или тегом <br>. Чтобы начать новый абзац, оставьте пустую строку.

Почему в Markdown игнорируется новая строка?

Markdown считает одиночный перевод строки пробелом, поэтому строки склеиваются в один абзац. Чтобы получить видимый разрыв, используйте пустую строку, два пробела в конце, обратный слэш или <br>.

Всегда ли два пробела работают как перенос строки?

В CommonMark и GitHub Flavored Markdown да. Но редакторы и инструменты Git часто убирают пробелы в конце строк, и разрыв молча пропадает. Надёжнее обратный слэш или <br>.

Как сделать перенос строки в таблице Markdown?

Используйте <br> внутри ячейки. Два пробела и обратный слэш там не работают, потому что строка таблицы — одна строка текста.

Другие вопросы