Чтобы текст после блока кода Markdown не превращался в код, удалите начальную табуляцию или отступ в четыре пробела. Если вы также хотите видеть отступ абзаца в Obsidian на Mac, не добавляйте отступ в Markdown, а задайте его с помощью CSS.

Почему абзац становится ещё одним блоком кода?

Закрытие блока кода с ограждением завершает этот блок, но не отключает синтаксис отступов для текста ниже. На верхнем уровне отступ в четыре пробела или больше может начать отдельный блок кода с отступом. Поэтому в следующем примере два блока кода, хотя ограждение есть только у первого. CommonMark: блоки кода с отступом.

```text
Sample output
```

    This should be a normal paragraph.

Важно различать, относится ли нежелательный текст к исходному блоку с ограждением или начинается новый блок. Если закрывающее ограждение по-прежнему видно внутри кода, проверьте, что в нём используется тот же символ, что и в открывающем ограждении, и что оно содержит не меньше обратных кавычек или тильд. Для блока верхнего уровня разместите оба ограждения у левого края, чтобы упростить проверку. GitHub Flavored Markdown: блоки кода с ограждением.

Пустые строки не отменяют отступ в четыре пробела. И наоборот, текст с отступом, который следует сразу за обычным абзацем, может оставаться частью этого абзаца, поскольку блок кода с отступом не может прерывать его. Это объясняет, почему похожие отступы иногда ведут себя по-разному в других местах заметки. CommonMark: блоки кода с отступом.

Как вернуть обычный абзац на Mac?

В Obsidian переключитесь в Source mode, чтобы проверить сами ограждения и начальные пробелы. Используйте переключатель режима редактирования в строке состояния или выберите Settings → Editor → Default editing mode → Source mode. В документации Obsidian сказано, что в этом режиме синтаксис Markdown отображается точно так, как он записан. Режимы просмотра и редактирования.

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

Используйте этот полный пример Markdown в качестве образца:

```text
Sample output
```

This is a normal paragraph with **bold text**.

This is another normal paragraph.

Для удобства чтения исходного текста оставьте пустую строку после закрывающего ограждения. GitHub прямо рекомендует оставлять пустые строки вокруг блоков кода с ограждением, хотя сам синтаксис ограждений этого не требует. В этой статье примеры обрамлены ограждениями из четырёх обратных кавычек, чтобы внутренние тройные обратные кавычки оставались видны. Создание и подсветка блоков кода.

Переключитесь в Reading view, чтобы проверить результат; в macOS сочетание Cmd+E переключает режимы редактирования и чтения. Убедитесь, что пояснение отображается как обычный абзац, а жирный текст — жирным шрифтом. В Live Preview большая часть синтаксиса Markdown скрыта и появляется рядом с курсором, поэтому для диагностики используйте Source mode, а для итоговой визуальной проверки — Reading view. Режимы просмотра и редактирования.

Удаление всего двух пробелов из отступа в четыре пробела может помешать разбору текста как кода на верхнем уровне, но не создаёт видимый отступ абзаца. В документации Obsidian указано, что соседние обычные пробелы при отображении схлопываются. Отступ в исходном тексте и отображаемый отступ — разные требования. Основной синтаксис форматирования.

Как сохранить видимый отступ абзаца в Obsidian?

Чтобы добавить отступ первой строки, используйте обычные абзацы и фрагмент CSS. Так структура абзаца отделяется от оформления: Markdown остаётся читаемым, а CSS добавляет визуальный отступ. Obsidian поддерживает пользовательские фрагменты CSS и свойство cssclasses, которое позволяет применять стиль к выбранным заметкам. Фрагменты CSS.

Ниже приведён пример пользовательского стиля, составленный на основе описанного в документации Obsidian механизма классов и CSS-свойства для отступа абзаца. Это не встроенная команда форматирования Obsidian. Стиль применяется к отображаемым элементам абзацев; проверьте результат в Reading view.

Добавьте свойство заметки и таблицу стилей

Поместите этот блок свойств в самое начало заметки. Если в заметке уже есть блок свойств, добавьте туда cssclasses, а не создавайте второй блок. Не добавляйте отступ к тексту после блока кода.

---
cssclasses:
  - paragraph-indent
---

Создайте текстовый файл с именем paragraph-indent.css, содержащий эту таблицу стилей целиком:

.paragraph-indent p {
  text-indent: 2em;
}

Селектор p выбирает абзацы внутри пользовательского класса заметки. Свойство text-indent сдвигает первую строку внутрь, а переносы строк сохраняют обычное положение. Значение 2em приведено для примера и может быть изменено. Оно не добавляет пробелы в заметку. MDN: text-indent.

Для таблицы стилей на Mac используйте текстовый редактор. Если вы работаете в TextEdit, перед сохранением выберите Format → Make Plain Text. Убедитесь, что итоговое имя файла — paragraph-indent.css, а не документ с форматированным текстом или файл с расширением .css.txt. В документации Apple сказано, что преобразование в обычный текст удаляет форматирование документа и обычно сохраняет файл с расширением .txt. Создание, открытие и преобразование документов в TextEdit на Mac.

  1. В Obsidian откройте Settings → Appearance → CSS snippets.
  2. Выберите Open snippets folder и поместите туда paragraph-indent.css.
  3. Если файл не отображается в списке, выберите Reload snippets.
  4. Включите переключатель фрагмента, затем проверьте заметку в Reading view. Фрагменты CSS.

Этот общий пример добавляет отступ каждому отображаемому абзацу, подходящему под селектор в выбранной заметке, в том числе абзацам внутри других структур. Его действие не ограничивается абзацем сразу после блока кода. Чтобы отменить оформление, отключите фрагмент или удалите класс paragraph-indent из заметки.

Таблица стилей не исправляет текст, который по-прежнему обрабатывается как код: её селектор предназначен для абзацев. Сначала исправьте пробелы. Кроме того, этот селектор абзацев не задаёт полноценный стиль редактора для Live Preview; внешний вид редактора и режима чтения может различаться.

Что меняется внутри списка или на GitHub?

Отступ внутри списка указывает на принадлежность к его элементу. Не удаляйте его без разбора. В этом полном примере у ограждения и пояснения по три начальных пробела — они выровнены по тексту после 1. . Пояснение остаётся абзацем внутри этого элемента списка. GitHub Flavored Markdown: элементы списка.

1. Review the sample.

   ```text
   Sample output
   ```

   This explanation belongs to the same list item.

Для других маркеров списка рассчитайте отступ продолжения с учётом маркера и следующих за ним пробелов. Универсальная рекомендация удалить все отступы нарушит нужную структуру. Если пояснение должно находиться за пределами списка, верните его к левому краю. GitHub Flavored Markdown: элементы списка.

В документации Obsidian указана поддержка CommonMark и GitHub Flavored Markdown наряду с собственными расширениями. Это не делает фрагмент CSS Obsidian переносимым форматированием Markdown: фрагмент отдельно настраивается в Obsidian. При переносе заметки проверьте, как она отображается в целевом приложении. В документации Obsidian также указано, что Markdown внутри элементов HTML не обрабатывается, поэтому HTML-обёртка меняет условия форматирования, но не служит универсальным решением. Markdown с расширениями Obsidian.

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

Используйте минимальное изменение, которое даст нужный результат:

  • Обычный текст после кода: удалите начальную табуляцию или отступ абзаца в четыре пробела.
  • Абзац внутри элемента списка: сохраните отступ, необходимый для содержимого этого элемента.
  • Видимый отступ первой строки в Obsidian: оставьте текст без отступа и используйте пример CSS с заданной областью действия.
  • Документ для просмотра в нескольких приложениях: сохраните понятную структуру Markdown и отдельно проверьте отображение в каждом приложении.

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

Источники