Напиши процессор упрощённого markdown-подобного языка разметки.
Описание намеренно сделано не полным. Ты должен придумать наиболее удачное поведение своего процессора во всех спорных случаях. Все твои решения должны быть зафиксированы в виде модульных тестов.
Создай fork этого репозитория. В проекте Markdown реализуйте метод Render класса Md. Он принимает в качестве аргумента параграф текста в markdown-подобной разметке, и возвращает строку с html-кодом этого текста, согласно спецификации.
Разбей свой процессор на составные части. Каждая часть должна быть легко читаема и покрыта тестами.
В этой задаче запрещено использовать регулярные выражения.
- Уточни требования. Для этого дополняйте файл Spec.md по аналогии. Каждый абзац должен описывать требование и одновременно являться примером работы этого требования.
- Проведи начальное проектирование. Определи какие будут классы и какие в них будут методы. Не пиши внутренности методов на этом этапе. Покажи свою декомпозицию своему наставнику. Получи обратную связь.
- Для реализации методов используй TDD.
Твой алгоритм должен работать быстро — линейно или почти линейно от размера входа. Не забудь написать такой тест!
Подумай, как твой код мог бы расширяться, чтобы поддержать другие возможности классического Markdown