Посмотрите этот файл в сыром виде. Сравните с тем, что показывает github.
Процессору на вход подается одна строка — параграф текста. На выходе должен быть HTML-код этого параграфа.
Текст окруженный с двух сторон одинарными символами подчерка должен помещаться в HTML-тег em вот так:
Текст <em>окруженный с двух сторон</em> одинарными символами подчерка должен помещаться в HTML-тег em вот так:
Любой символ можно экранировать, чтобы он не считался частью разметки. _Вот это_, не должно выделиться тегом <em>.
Двумя символами — должен становиться жирным с помощью тега <strong>.
Внутри двойного выделения одинарное тоже работает.
Но не наоборот — внутри одинарного двойное не работает.
Подчерки внутри текста c цифрами_12_3 не считаются выделением и должны оставаться символами подчерка.
__непарные _символы не считаются выделением.
За подчерками, начинающими выделение, должен следовать непробельный символ. Иначе эти_ подчерки_ не считаются выделением и остаются просто символами подчерка.
Подчерки, заканчивающие выделение, должны следовать за непробельным символом. Иначе эти _подчерки не считаются окончанием выделения и остаются просто символами подчерка.
[add] Перед подчерками, начинающими выделениеи не являющимися началом строки, должен стоять пробельный символ. Иначе эти_подчерки_ не считаются выделением и остаются просто символами подчерка.
[add] За подчерками, заканчивающими выделение и не являющимися концом строки, должны следовать пробельные символы. Иначе эти _подчерки_не считаются окончанием выделения и остаются просто символами подчерка.
[add] Если после символа экранирования \ стоит специальный символ, то следующий после \ знак будет экранироваться только в том случае, когда до знака экранирования в строке ничего не стоит, иначе экранируется весь спецсимвол. _Вот это, должно выделиться тегом <em> А_Вот это, не должно.
[add] Все остальные добавленные специальные символы работают по принципу подчерков.
[add] Последовательности из более, чем двух идущих подряд одиннаковых специальных символов не рассматриваются.