Trabalhando com Markdown em PHP: visão geral de bibliotecas e ferramentas
\n\nMarkdown é 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\n1. Parsedown — um parser leve e rápido
\n\nParsedown é 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\nInstalação
\ncomposer require erusev/parsedown\n\nUso 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\nO resultado da execução deste código é HTML correto com títulos, listas e links.
\n\nRecursos 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()esetMarkupEscaped()\n
2. PHP-Markdown — solução clássica
\n\nPHP-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\nInstalação
\ncomposer require michelf/php-markdown\n\nExemplo 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\nCaracterí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
3. League/CommonMark — implementação padronizada
\n\nLeague/CommonMark é uma biblioteca que implementa o padrão oficial CommonMark. Ela garante máxima compatibilidade com outros parsers e suporta extensões.
\n\nInstalação
\ncomposer require league/commonmark\n\nExemplo 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\nExtensões adicionais
\n- \n
- Table — suporte a tabelas \n
- Strikethrough — texto tachado \n
- TaskList — caixas de seleção \n
- Autolink — links automáticos \n
Comparação de bibliotecas
\n\nTambém na biblioteca
Bibliotecas GraphQL para Kotlin: uma visão geral completa para desenvolvedores backend
Cache em Go (Golang): Redis e ferramentas alternativas
gRPC para C# (.NET): bibliotecas, configuração e exemplos de código
Autorização e Autenticação em Go (Golang): Guia Completo