Когда на проекте потребовалось сделать поддержку Markdown-синтаксиса, я и представить себе не мог как все плохо с Markdown парсерами на PHP. А протестировав три из четырех популярных решений на Github’e, я убедился что все они работают корректно только на собственных, синтетических тестах. Оценивал подходимость библиотек исходя из следующих требований:

  • Скорость парсинга (бенчмарк);
  • Поддержка GitHub Flavored Markdown;
  • Легко расширяемый синтаксис;
  • Не строгий к разметке и допускать наличие в тексте кастомных html тегов.

erusev/parsedown

Самый быстрый и простой из протестированных, а исходный код содержится в единственном файле. Отсюда вытекает вторая проблема — отсутствие возможности наследования и переопределения некоторых базовых методов. С этой проблемой легко столкнуться при попытке решить первую проблему — несовместимость с некоторыми значениями mbstring.

cebe/markdown

Второй по скорости и стандарт де-факто в Yii 2, но чрезмерное увлечение автора рефлешенами не позволяет использовать GFM при некоторых настройках OPCache. Исправить это через наследование нет никакой возможности, а позиция автора принципиальная и менять архитектуру он не намерен.

michelf/php-markdown

Нет поддержки GitHub Flavored Markdown, так что сразу вычеркиваем.

kzykhys/ciconia

Медленная скорость работы и последний коммит от февраля 2014 года говорит о слабой заинтересованности автора в поддержке. Установке через composer тащит за собой кучу Symfony зависимостей, а не юзабельный автолинкер из GFM и большие проблемы при работе со списками делают его самой слабой библиотекой из трех.

Вот так при иллюзорной видимости выбора, по факту, выбора как такового нет. Для себя я выбрал все-таки parsedown, рефакторинг которого вызывает меньше головной боли в отличии от остальных.