Dev (Back & Front)ARTIGO

Convertendo Markdown em HTML e HTML em Markdown com PHP

Convertendo Markdown em HTML e HTML em Markdown com PHP
Imagem: Rodrigo "pokemaobr" Cardoso

De acordo com o site oficial da linguagem de marcação Markdown, Markdown é uma ferramenta de conversão de texto para HTMLHTML45 conteúdosA importância do HTML e CSS para quem trabalha com UI Design e Design SystemProduto & UX · dez 2024Como hostear seu site HTML gratuitamente com GitHub PagesDev (Back & Front) · jun 2025SQL Server – Como criar um versionamento de código das suas Stored Procedures em HTML e com comentários da alteraçãoData · nov 2020Ver tudo em Dev (Back & Front) para escritores web. O Markdown permite que você escreva usando um formato de plain text fácil de ler, fácil de escrever e, em seguida, converta-o para XHTML (ou HTML) estruturalmente válido.

Hoje em dia o Markdown é utilizado em várias plataformas de blog, no medium, e também é muito utilizada para a documentação de projetos no github. Devido a sua sintaxe mais fácil para quem não é desenvolvedor web. Muitos jornalistas, escritores e, obviamente programadores acabam preferindo utilizar o Markdown para escrever seus artigos e documentações.

Com a necessidade da portabilidade do projeto para várias linguagens. Existem algumas bibliotecas PHP que implementam a conversão de Markdown em HTML. Nesse artigo vamos falar sobre uma delas. A biblioteca do ThePHPLeague Commonmark. Para quem não conhece, o ThePHPLeague é um grupo de desenvolvedores PHP que cria vários projetos PHP testáveis. Alguns bem conhecidos como o omnipay, o fractal e o oauth2-client.

Usando uma sintaxe simples é possível converter um Markdown válido em HTML. Para isso, vamos usar o markdown de exemplo do https://markdown-it.github.io, você pode baixar esse markdown em https://gist.github.com/pokemaobr/32aeb11e6320a9c3c142588c780b39e7

Então, é só criarmos uma pasta para o projeto, colocar o arquivo markdownit.md na pasta e fazer o composer require da biblioteca

composer require league/commonmark

Após isso, basta criarmos um markdownToHtml.php

 

<?php

require_once 'vendor/autoload.php';

use League\CommonMark\CommonMarkConverter; //utilizando o conversor padrão do CommonMark

$converter = new CommonMarkConverter(); //instanciando um novo conversor

$markdown = file_get_contents('markdownit.md');

echo $converter->convertToHtml($markdown); //convertendo o markdown

E logo após vamos realizar um teste subindo o servidor nativo do PHP na porta 8888

php -s localhost:8888

Então basta abrirmos no nosso navegador o localhost:8888/markdownToHtml.php

Teremos então nosso markdown transformado em HTML.

Para a documentação oficial da biblioteca, você pode acessar o repositório oficial.

Como eu disse anteriormente várias bibliotecas PHP implementam a conversão Markdown->HTML, porém, poucas fazem o contrário. A vantagem é que o ThePHPLeague também disponibiliza uma biblioteca para converter de Markdown para HTML. Essa biblioteca é a HTML to Markdown

Vamos usar o mesmo exemplo. Só que com o html gerado pelo commonmark no exemplo anterior.

Para isso vamos salvar o HTML gerado com o script saveMarkdownToHtml.php :

<?php
require_once 'vendor/autoload.php';
use League\CommonMark\CommonMarkConverter; //utilizando o conversor padrão do CommonMark
$converter = new CommonMarkConverter(); //instanciando um novo conversor
$markdown = file_get_contents('markdownit.md');
file_put_contents('markdownit.html',$converter-&gt;convertToHtml($markdown)); //salvando o markdown convertido em html

Vamos usar o mesmo exemplo. Só que com o html gerado pelo commonmark no exemplo anterior.
Com ele salvo no nosso diretório vamos importar a biblioteca para nosso projeto

composer require league/html-to-markdown

E, de maneira similar criarmos o htmlToMarkdown.php

<?php
require_once 'vendor/autoload.php';
use League\HTMLToMarkdown\HtmlConverter; //utilizando o conversor padrão do  HTMLToMarkdown
$converter = new HtmlConverter(); //instanciando um novo conversor
$html = file_get_contents('markdownit.html');
echo $converter->convert($html);

Depois executamos o script

E teremos como resultado o Markdown de início.

Espero que tenham gostado dessa biblioteca e até a próxima.

 

MBA em Engenharia de Softwares Orientado para Serviços pela Metrocamp, Campinas/SP. Bacharel em Matemática Aplicada e Computacional pela Universidade Federal Rural do Rio de Janeiro, Community Manager do iMasters. Programador PHP desde 2002. Evangelista PHPSP. Desenvolve sistemas desde batalhas Pokemon em mIRC, a robôs automatizadores de tarefas.

Ver perfil