Чтобы текст после блока кода 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.
- В Obsidian откройте
Settings → Appearance → CSS snippets. - Выберите
Open snippets folderи поместите тудаparagraph-indent.css. - Если файл не отображается в списке, выберите
Reload snippets. - Включите переключатель фрагмента, затем проверьте заметку в
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. Затем добавьте визуальный отступ там, где его поддерживает средство отображения, оставив таблицу стилей отдельно от текста.
Источники
- Спецификация CommonMark — блоки кода с отступом — CommonMark.
- Спецификация GitHub Flavored Markdown — GitHub.
- Создание и подсветка блоков кода — документация GitHub.
- Основной синтаксис форматирования — справка Obsidian.
- Режимы просмотра и редактирования — справка Obsidian.
- Фрагменты CSS — справка Obsidian.
- Markdown с расширениями Obsidian — справка Obsidian.
- text-indent — документация MDN.
- Создание, открытие и преобразование документов в TextEdit на Mac — служба поддержки Apple.