Processamento e parsing de Markdown em PHP: bibliotecas e exemplos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Trabalhando com Markdown em PHP: visão geral de bibliotecas e ferramentas

\n\n

Markdown é uma linguagem de marcação leve que permite criar texto formatado usando uma sintaxe simples. Em PHP, existem várias bibliotecas maduras e confiáveis para processar Markdown. Neste artigo, veremos três das ferramentas mais populares: Parsedown, PHP-Markdown e League/CommonMark.

\n\n

1. Parsedown — um parser leve e rápido

\n\n

Parsedown é uma das bibliotecas mais populares para trabalhar com Markdown em PHP. Ela não requer dependências externas, suporta todos os elementos básicos de marcação e funciona muito rapidamente.

\n\n

Instalação

\n
composer require erusev/parsedown
\n\n

Uso básico

\n
<?php\nrequire 'vendor/autoload.php';\n\n$Parsedown = new Parsedown();\n\n$markdown = <<<MARKDOWN\n# Título de primeiro nível\n\nEste é **texto em negrito** e *itálico*.\n\n- Item de lista 1\n- Item de lista 2\n\n[Link para PythonLib](https://pythonlib.ru)\nMARKDOWN;\n\necho $Parsedown->text($markdown);\n?>
\n\n

O resultado da execução deste código é HTML correto com títulos, listas e links.

\n\n

Recursos adicionais

\n
    \n
  • Suporte para modo seguro (escape de tags HTML)
  • \n
  • Trabalho com listas aninhadas e tabelas
  • \n
  • Configuração através dos métodos setBreaksEnabled() e setMarkupEscaped()
  • \n
\n\n

2. PHP-Markdown — solução clássica

\n\n

PHP-Markdown é a implementação original do parser Markdown por Michel Fortin, baseada na versão Perl de John Gruber. Esta biblioteca segue estritamente a especificação Markdown.

\n\n

Instalação

\n
composer require michelf/php-markdown
\n\n

Exemplo de uso

\n
<?php\nrequire 'vendor/autoload.php';\n\nuse Michelf\\Markdown;\n\n$markdown = <<<MARKDOWN\n## Título de segundo nível\n\n> Isto é uma citação.\n> Ela pode ser multilinha.\n\n1. Primeiro item de lista numerada\n2. Segundo item\n\n`código inline` e bloco de código:\n\n    <?php\n    echo "Hello, World!";\n    ?>\nMARKDOWN;\n\n$html = Markdown::defaultTransform($markdown);\necho $html;\n?>
\n\n

Características

\n
    \n
  • Suporte para sintaxe estendida através do MarkdownExtra
  • \n
  • Conversão automática de links e endereços de email
  • \n
  • Possibilidade de desabilitar HTML na saída
  • \n
\n\n

3. League/CommonMark — implementação padronizada

\n\n

League/CommonMark é uma biblioteca que implementa o padrão oficial CommonMark. Ela garante máxima compatibilidade com outros parsers e suporta extensões.

\n\n

Instalação

\n
composer require league/commonmark
\n\n

Exemplo com extensões

\n
<?php\nrequire 'vendor/autoload.php';\n\nuse League\\CommonMark\\Environment\\Environment;\nuse League\\CommonMark\\Extension\\CommonMark\\CommonMarkCoreExtension;\nuse League\\CommonMark\\MarkdownConverter;\n\n// Criando o ambiente com extensões básicas\n$environment = new Environment();\n$environment->addExtension(new CommonMarkCoreExtension());\n\n$converter = new MarkdownConverter($environment);\n\n$markdown = <<<MARKDOWN\n| Tabela | Coluna 1 | Coluna 2 |\n|---------|-----------|-----------|\n| Linha 1 | Valor     | Valor     |\n| Linha 2 | Valor     | Valor     |\n\n~~Texto tachado~~ e ==texto destacado== (GFM).\nMARKDOWN;\n\necho $converter->convert($markdown)->getContent();\n?>
\n\n

Extensões adicionais

\n
    \n
  • Table — suporte a tabelas
  • \n
  • Strikethrough — texto tachado
  • \n
  • TaskList — caixas de seleção
  • \n
  • Autolink — links automáticos
  • \n
\n\n

Comparação de bibliotecas

\n\n

Recommendations