De acordo com o site oficial da linguagem de marcação Markdown, Markdown é uma ferramenta de conversão de texto para HTML 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->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.