Skip to content

Latest commit

 

History

History
106 lines (61 loc) · 6.01 KB

MarkdownSpec.md

File metadata and controls

106 lines (61 loc) · 6.01 KB

Спецификация языка разметки

Посмотрите этот файл в сыром виде. Сравните с тем, что показывает github. Все совпадения случайны ;)

Курсив

Текст, окруженный с двух сторон одинарными символами подчерка, должен помещаться в HTML-тег <em> вот так:

Текст, <em>окруженный с двух сторон</em> одинарными символами подчерка, должен помещаться в HTML-тег <em>.

Полужирный

Выделенный двумя символами текст должен становиться полужирным с помощью тега <strong>.

Экранирование

Любой символ можно экранировать, чтобы он не считался частью разметки. _Вот это_, не должно выделиться тегом <em>.

Символ экранирования исчезает из результата, только если экранирует что-то. Здесь сим\волы экранирования\ \должны остаться.\

Символ экранирования тоже можно экранировать: \вот это будет выделено тегом <em>

Взаимодействие тегов

Внутри двойного выделения одинарное тоже работает.

Но не наоборот — внутри одинарного двойное не работает.

Подчерки внутри текста c цифрами_12_3 не считаются выделением и должны оставаться символами подчерка.

Однако выделять часть слова они могут: и в нач_але, и в сер_еди_не, и в кон_це.

В то же время выделение в ра_зных сл_овах не работает.

_Непарные символы в рамках одного абзаца не считаются выделением.

За подчерками, начинающими выделение, должен следовать непробельный символ. Иначе эти_ подчерки_ не считаются выделением и остаются просто символами подчерка.

Подчерки, заканчивающие выделение, должны следовать за непробельным символом. Иначе эти _подчерки не считаются окончанием выделения и остаются просто символами подчерка.

В случае пересечения двойных и одинарных подчерков ни один из них не считается выделением.

Если внутри подчерков пустая строка ____, то они остаются символами подчерка.

Заголовки

Абзац, начинающийся с "# ", выделяется тегом <h1> в заголовок. В тексте заголовка могут присутствовать все прочие символы разметки с указанными правилами.

Таким образом

Заголовок с разными символами

превратится в:

Заголовок с разными символами

Маркированные списки

Строка, начинающаяся с "- " (дефис и пробел), считается пунктом маркированного списка и помещается в HTML-тег <li>. Подряд идущие пункты объединяются в один список, который оборачивается в тег <ul>:

  • первый пункт
  • второй пункт

превратится в:

  • первый пункт
  • второй пункт

Правила:

  • Маркером считается только "- " в самом начале строки. Если перед ним стоят пробелы, строка остаётся обычным текстом.
  • Если после маркера ничего нет, строка не является пунктом и остаётся обычным текстом: "-пункт" (без пробела), "-" и "- " пунктами не считаются.
  • Внутри пункта работают все прочие символы разметки по прежним правилам. Выделение не пересекает границы пунктов: непарные подчерки в соседних пунктах остаются символами подчерка.
  • Строка, не являющаяся пунктом (в том числе пустая), завершает список. Следующий пункт начнёт новый список.
  • Между пунктами одного списка переводов строк в результате нет. Перевод строки после последнего пункта сохраняется после </ul>.
  • Вложенные списки не поддерживаются: "- " внутри пункта остаётся обычным текстом.
  • Заголовок внутри пункта не поддерживается: "- # текст" даёт пункт с текстом "# текст".
  • Дефис можно экранировать: "- текст" не считается пунктом, а символ экранирования исчезает из результата. Как и для остальных символов разметки, экранирование дефиса работает в любом месте строки.