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.
0 комментариев