Gosto de escrever em Markdown, mas os sistemas do Manual (site e newsletter) só entendem HTML. Isso gerava um gargalo que consegui resolver de um jeito elegante, com um simples comando no Terminal, que agora compartilho com você.
Antes, acho que vale explicar esses termos aos não iniciados:
- Markdown é uma sintaxe de formatação para texto puro. Em outras palavras, são alguns sinais que você coloca no texto e que são convertidos em formatação — negrito, listas, links. A documentação oficial explica melhor.
- HTML é uma linguagem de marcação usada na web. Todos os sites que você acessa são organizados com HTML.
Ao escrever este post que você está lendo, por exemplo, ele era assim:

Para publicá-lo no Manual em HTML, com todos os links e formatação, ele ficou assim:

Até poucos dias atrás, meu “método” consistia em abrir o buscador, pesquisar por “markdown to html” e usar o primeiro conversor online que aparecesse.
Funciona, mas é tão… enrolado, burocrático. Dava para fazer melhor.
Esta dica usa aplicativos de linha de comando que funcionam em Linux e no macOS. Não sei se eles funcionam no Windows. Foi mal, galera do Windows.
Esta “receita” depende de três ingredientes, ou três aplicativos em linha de comando:
pbpaste
pbcopy
pandoc
Os dois primeiros provavelmente já vêm/estão instalados no seu computador. São básicos.
O Pandoc, talvez não, mas certamente estará no repositório da sua distribuição e nos gerenciadores de pacotes do macOS, como MacPorts (uso este) e Homebrew. Se este parágrafo não lhe soou grego, você sabe o que fazer: procure por “pandoc” e instale-o.
O Pandoc é um poderoso conversor de formatos de arquivo de texto. Ele faz, nativamente, a conversão de Markdown para HTML e vice-versa.
Os comandos pbpaste
e pbcopy
servem para colar e copiar um dado, respectivamente. Já sacou o que vamos fazer, né?
O primeiro passo é copiar o conteúdo em Markdown, Command + C (macOS) ou Control + C (Linux), a partir do seu editor de textos preferido. Eu uso e gosto do Editor de Texto (o “Bloco de Notas do macOS”).
Depois, abra o Terminal e cole e execute (dê Enter) esta linha:
pbpaste | pandoc ‐‐wrap=none ‐t html | pbcopy
O comando não retorna mensagem alguma, não se preocupe. O que ele faz é pedir ao computador para ler o que está na área de transferência (o que você copiou no passo anterior) via pbpaste
, depois executar a conversão para HTML (‐t html
) com o pandoc sem quebrar linhas (‐‐wrap=none
) e, por fim, copiar o resultado para a área de transferência (pbcopy
).
Depois disso, basta colar o resultado do comando, em HTML, onde você quiser.
Simples, né? Mas dá para facilitar ainda mais criando um script, ou seja, reduzindo a linha acima a apenas um comando/termo.
Criando um script simples
Abra um editor de texto puro, como o Gedit ou o Editor de Texto (macOS) e copie e cole estas linhas:
#!/bin/bash pbpaste | pandoc ‐‐wrap=none ‐t html | pbcopy
Salve com um nome qualquer, sem extensão — um nome que seja fácil de lembrar/invocar no Terminal. Aqui, usei md2html
.
Agora copie-o para o diretório /usr/local/bin/
, feche e reabra o Terminal e veja se o comando funciona digitando md2html
ou o nome que você deu ao arquivo.
De HTML para Markdown
Se você precisar fazer a conversão em sentido contrário, ou seja, de HTML para Markdown, por algum motivo é preciso declarar o formato de origem (Markdown) ao Pandoc para ele não zoar o resultado.
A sintaxe é a seguinte:
pbpaste | pandoc ‐‐wrap=none ‐f markdown ‐t html | pbcopy
É possível criar outro script para esse comando também, tipo html2md
.
Esta dica é uma evolução de outra publicada em 2018 neste Manual do Usuário. Na época, meu fluxo de trabalho partia de um arquivo em Markdown. Agora, nem disso preciso mais — basta que o texto em Markdown esteja na área de transferência, copiado na memória do computador.
O pandoc é maravilhoso, converte entre diversos outros formatos também e normalmente é o “back end” de outros serviços de conversão de texto
Ghedin do céu, vc escreve direto no TextEdit??? 😱😱😱😱 Com tanto editor de texto maravilhoso por aí????
Testa o iA Writer ou o Ulysses! Ambos não apenas oferecem um ambiente maravilhoso para o ato da escrita, como também têm recursos para publicação direta do texto no WordPress (e outras plataformas). Você vai escrever em Markdown e o próprio app, com um comando, vai jogar pro WordPress do jeito certo.
Você merece esse agrado, cara!
Typora também é uma opção a se considerar. Uso desde o beta público deles e os preços são menores em relação ao IA Writer e o Ulysses, e tem vários exportadores, inclusive para HTML (só não lembro se vem agora com Pandoc embutido ou precisa instalar o Pandoc)
estou curioso pela resposta dele sobre isso, kkkk
pois sei que ele prefere usar os aplicativos nativos do sistema.
Ai, escrevo! Não costumo guardar rascunhos/cópias dos textos que publico (são arquivos temporários, pois), o que acho que tira um pouco a necessidade desses editores bacanudos. A única coisa de que sinto falta no Editor de Texto é um contador de palavras — não é algo imprescindível, porém.
Quanto à publicação no WordPress, gosto de fazê-la manualmente para pequenos ajustes na apresentação e detalhes que esses sistemas de publicação direta não oferecem.
Será que estou perdendo muita coisa? 👀
“Não costumo guardar rascunhos/cópias dos textos que publico (são arquivos temporários, pois) (…)”.
Isso me lembrou uma das características do método Zettelkasten, um jeito diferente de criar anotações interligadas (ou não).
Não faço conexões, ou não preciso delas explícitas, entre as minhas anotações. É outro recurso muito alardeado em editores de texto modernos, como Obsidian, que aparentam ser irrelevantes ao meu fluxo de trabalho.
Sim. É talvez uma escolha pessoal ou “depende”, mas enfim.
Só comentei porque no método Zettelkasten menciona as “notas temporárias”, por isso me lembrou.
:)
isso me lembrou que uma vez tentei usar o obsidian pra isso, mas eu nem tenho anotações, kkkk