Markdown звучит как «легко и красиво», но в PHP выбор библиотек — это как выбирать между бензопилой и ножиком для резки хлеба.

Markdown — это не спасение от плохого текста. Он не исправит кривой контент и не превратит твою документацию в шедевр. Он просто позволяет писать проще и без дикой верстки.

В PHP есть куча библиотек для Markdown. Но как обычно, большинство из них либо слишком медленные, либо слишком кривые, либо вообще делают что-то непонятное. Я собрал те, что реально стоят твоего внимания.

1. Parsedown

Parsedown — это как автоматическая коробка передач для PHP: просто подключил и поехал.

  • Плюсы: быстрая, простая, поддерживает почти всё стандартное.
  • Минусы: если нужны экзотические штуки вроде таблиц с определениями или кастомных блоков — забудь, нужна Parsedown Extra.

Ссылка: Parsedown

Пример:

$Parsedown = new Parsedown();
echo $Parsedown->text('# Привет, Markdown!');

И всё, HTML готов. Не надо городить свои regex’ы или мучить DOMDocument.

2. PHP Markdown Extra

Если Parsedown — это быстрый нож, то PHP Markdown Extra — мясорубка с кучей функций.

  • Плюсы: поддержка таблиц, определений, абзацев и других продвинутых элементов.
  • Минусы: немного медленнее, сложнее интегрировать, иногда ведёт себя непредсказуемо.

Ссылка: PHP Markdown Extra

Использовать стоит, если твой Markdown реально большой и сложный — например, документация с таблицами и списками.

3. Parsedown Extra

Это расширение Parsedown, которое добавляет всё, чего не хватало базовой версии: таблицы, определения, абзацы и прочее.

  • Плюсы: быстрый, но при этом более функциональный, чем обычный Parsedown.
  • Минусы: немного больше зависимостей, иногда конфликтует с кастомными расширениями.

Ссылка: Parsedown Extra

Идеально, если хочешь скорость Parsedown, но с расширенной функциональностью.

4. CommonMark

CommonMark — это как стандартизированный Markdown. Точно, строго, без сюрпризов.

  • Плюсы: полностью соответствует спецификации, расширяемый через плагины, можно контролировать каждую мелочь.
  • Минусы: чуть медленнее, чем Parsedown, для простых задач избыточен.

Ссылка: CommonMark

Если ты пишешь систему, где Markdown — это ядро, и тебе важна предсказуемость, CommonMark будет спасением.

5. Markdownify

Markdownify — забавная штука: она конвертирует HTML обратно в Markdown.

  • Плюсы: удобно, когда есть готовый HTML и хочется перейти на Markdown.
  • Минусы: конвертация редко идеальна, особенно если HTML кривой.

Ссылка: Markdownify

Полезно для миграции старых проектов или если копируешь контент из чужого HTML.

Как выбирать библиотеку

Выбор зависит от того, что тебе реально нужно:

  • Parsedown / Parsedown Extra — скорость + базовая/расширенная функциональность.
  • PHP Markdown Extra / CommonMark — когда нужен строгий стандарт или расширенный функционал.
  • Markdownify — только для конверсии HTML в Markdown, больше для миграции.

Если просто парсишь заголовки и списки на блоге — бери Parsedown и не парься. Если строишь документацию для команды из 50 человек — CommonMark спасёт от вечных правок и конфликтов.

Итог

Markdown в PHP — инструмент простой, но можно превратить его в кошмар. Главное — понимать, что тебе реально нужно: скорость или функциональность, простота или строгость. Не бери всё подряд — потом будешь материться, когда парсер будет обрывать таблицы или выкидывать странный HTML.