1

Тема: Markdown-процессор

После возобновления разработки прямой переход к реализации Халва-Паскаля признан затруднительным, в связи с чем решено реализовать промежуточный проект. В свое время PE Tool стала тестом коллекций и списков (контейнеров CoreLite). Процессор Markdown станет тестом строк, разбора рекурсивным спуском и объектной модели (DOM).

Формат markdown удовлетворяет всем предъявляемым требованиям:

  • Постановка известна до начала проекта и конечна — формат вряд ли будет сильно меняться во время разработки.

  • Имеются альтернативные реализации, по которым можно сверять результат.

  • Сложность реализации обозрима с начала разработки, можно сразу планировать этапы.

  • Программа имеет практическую направленность. Может использоваться как в проекте Кантора, так и в Delphi SDK для KolibriOS.

Будучи своеобразным прототипом компилятора, процессор markdown будет обрабатывать исходные файлы как проекты, то есть все встреченные ссылки на локальные файлы будут трактоваться как модули и рекурсивно обрабатываться. Таким образом для компиляции некой документации нужно будет передать процессору только index.md. Планируется поддержка шаблонов HTML и подключаемых стилей CSS.

Этот проект — также долгострой Кантора, изначально планировавшийся в виде вики-процессора. Первая заготовка была залита в SVN почти сразу после его основания (эта ветка закрыта и не видна в Интернете). С тех пор делалось несколько попыток подступиться к реализации, после чего проект был отложен в долгий ящик. Настало время вернуть технический долг.

В самом Канторе в качестве основного будет использоваться оригинальный формат вики. Для совместимости запланирован экспорт из markdown, исходники переписывать не придется. Возможность прямого использования markdown в Канторе пока не планировалась, но теоретически возможна.

Что характерно, Яндекс отказался от своей вики (синтаксического подмножества вики Кантора) в пользу markdown.

2

Re: Markdown-процессор

На всякий случай, вдруг пригодится: delphi-markdown, также у товарища Benjamin Rosseaux есть pashtmldown.