Skip to content

Latest commit

 

History

History
37 lines (27 loc) · 2.5 KB

Markdown.md

File metadata and controls

37 lines (27 loc) · 2.5 KB

Markdown

Напиши процессор упрощённого markdown-подобного языка разметки.

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

Формат

В fork-е этого репозитория создай проект Markdown и реализуй метод Render класса Md. Он принимает в качестве аргумента текст в markdown-подобной разметке, и возвращает строку с html-кодом этого текста согласно спецификации.

Обрати внимание, что в этой задаче запрещено использовать регулярные выражения.

Важные моменты

  1. Проведи начальное проектирование: зафиксируй классы и их методы в коде (а также связи между классами), но не пиши внутренности методов
  2. Покажи декомпозицию наставнику, получи обратную связь
  3. После этого приступай к реализации методов, используя TDD
  4. Помни, твой алгоритм должен работать быстро — линейно или почти линейно от размера входа. Не забудь написать такой тест!

Оценка

Минимальные требования (на 1 балл)

  1. Поддерживаются тэги _, __ и # согласно спецификации
  2. Тесты

Полное решение (на 2 балла)

  1. Выполнены минимальные требования
  2. Решение разбито на составные части, каждая из которых легко читается

Максимальное решение (на 3 балла)

  1. Выполнено полное решение
  2. Умеет рендериться один из дополнительных тегов:
    • Маркерованный список
    • Нумерованный список
    • Ссылка
    • Картинка
  3. В файле спецификации подробно описано, как работает новый тег
  4. Обрати внимание: если упадет читаемость кода, то дополнительный балл засчитан не будет!