Processamento e parsing de Markdown em PHP: bibliotecas e ferramentas

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: bibliotecas e ferramentas



Markdown é uma linguagem de marcação leve, criada para formatação rápida de texto sem a necessidade de escrever HTML complexo. No portal educacional PythonLib, frequentemente enfrentamos a tarefa de converter a marcação Markdown em HTML puro para exibir artigos, documentação e comentários. PHP, como linguagem do lado do servidor, oferece várias soluções maduras para essa tarefa. Neste artigo, veremos as três bibliotecas mais populares, sua instalação, uso básico e características.



Por que preciso de um parser Markdown em PHP?

Markdown é conveniente para autores de conteúdo, mas os navegadores não o entendem diretamente. Portanto, no servidor, é necessário converter Markdown para HTML. Vantagens adicionais do uso de bibliotecas:

  • Segurança: processamento correto de tags HTML e prevenção de ataques XSS.
  • Flexibilidade: suporte a extensões (tabelas, notas de rodapé, fórmulas matemáticas).
  • Desempenho: cache de resultados e conversão rápida.


1. Parsedown — o mais simples e rápido

Parsedown é uma biblioteca de classe única que não requer dependências. É ideal para projetos pequenos e iniciantes.



Instalação

composer require erusev/parsedown


Exemplo de uso

<?phprequire_once 'vendor/autoload.php';

$Parsedown = new Parsedown();$markdown = "# Título

Este é um texto **negrito** e *itálico*.";$html = $Parsedown->text($markdown);echo $html;?>

Resultado: HTML correto com as tags <h1>, <strong>, <em>. Parsedown escapa automaticamente tags HTML perigosas, se não fizerem parte da marcação Markdown.



Configuração do modo seguro

$Parsedown->setSafeMode(true); // Desativa HTML no Markdown


2. League/CommonMark — conformidade com o padrão

A biblioteca da The PHP League implementa o padrão oficial CommonMark. Ela suporta extensões (tabelas, texto tachado) e segue rigorosamente a especificação.



Instalação

composer require league/commonmark


Uso básico

<?phpuse League\\CommonMark\\Environment\\Environment;use League\\CommonMark\\Extension\\CommonMark\\CommonMarkCoreExtension;use League\\CommonMark\\MarkdownConverter;

$environment = new Environment();$environment->addExtension(new CommonMarkCoreExtension());$converter = new MarkdownConverter($environment);

$markdown = "| Tabela | Coluna ||---------|---------|| Célula 1 | Célula 2 |";$html = $converter->convert($markdown);echo $html;?>


Recursos avançados

Você pode adicionar extensões adicionais:

use League\\CommonMark\\Extension\\Table\\TableExtension;use League\\CommonMark\\Extension\\Strikethrough\\StrikethroughExtension;

$environment->addExtension(new TableExtension());$environment->addExtension(new StrikethroughExtension());

Isso permite processar tabelas e texto tachado (~~texto~~).



3. cebe/markdown — alternativa leve

A biblioteca cebe/markdown de Carsten Brandt se destaca pela modularidade. Você pode usar apenas os parsers necessários (por exemplo, apenas para listas ou títulos).



Instalação

composer require cebe/markdown


Exemplo com o parser MarkdownExtra

<?phpuse cebe\\markdown\\MarkdownExtra                    

Recommendations