Truques Markdown: soluções para as funções em falta

Os truques Markdown são fragmentos de HTML e artifícios de sintaxe que acrescentam as funções que a especificação base do Markdown deixa de fora, do texto sublinhado às miniaturas de vídeo clicáveis. Quase todos os truques dependem de uma única condição: o renderizador tem de aceitar HTML inline. O CommonMark deixa passar HTML em bruto por predefinição, pelo que o VS Code, o Obsidian, o Typora e o editor deste site apresentam estas soluções corretamente. As plataformas com sanitização comportam-se de outra forma. O GitHub filtra o resultado através de uma allowlist fixa de tags e apaga todos os atributos style, enquanto o Reddit e o Discord ignoram o HTML por completo. Cada secção abaixo mostra a sintaxe e indica os renderizadores que a mantêm ou removem.

Sublinhar texto

O Markdown não tem sintaxe de sublinhado, por isso, para sublinhar em Markdown, envolva o texto numa tag HTML <ins> ou <u>. A tag <ins> marca texto inserido e aparece sublinhada em todos os principais browsers. O sanitizador do GitHub mantém <ins> e descarta <u>, pelo que <ins> é a escolha portátil para READMEs.

Submit the form <ins>before 30 June</ins> to qualify.

O Obsidian e o Typora renderizam ambas as tags. O Bear e o Simplenote dispensam a via do HTML e oferecem atalhos próprios de sublinhado. No Reddit, as tags aparecem como texto literal, porque o parser descarta o HTML.

Indentar parágrafos

O Markdown elimina os espaços iniciais e converte indentações de 4 espaços em blocos de código, por isso indente um parágrafo com a entidade &nbsp;, o espaço não separável. Cada entidade sobrevive como um espaço visível no resultado. Quatro seguidas imitam uma tabulação clássica.

&nbsp;&nbsp;&nbsp;&nbsp;The opening line of this paragraph sits four spaces in.

As entidades passam por quase todos os renderizadores, incluindo o GitHub, porque são referências a caracteres e não tags. O limite aparece em grande escala. Um documento com dezenas de parágrafos indentados torna-se difícil de ler no código-fonte, e um editor com controlo de modelos, como o iA Writer, trata a indentação de forma mais limpa.

Centrar texto

Para centrar texto Markdown, use a tag <center> ou <p style="text-align:center"> onde o CSS inline sobreviver. O HTML 4.01 tornou a tag <center> obsoleta em 1999, mas os browsers continuam a respeitá-la e a maioria dos renderizadores Markdown deixa-a passar intacta.

<center>Chapter 7</center>

<p style="text-align:center">Chapter 7</p>

O GitHub apaga os atributos style, pelo que a segunda forma falha nessa plataforma. Quem escreve READMEs centra logótipos e badges com <div align="center">, porque o atributo align sobrevive ao sanitizador do GitHub. O Typora e a pré-visualização do VS Code renderizam a versão CSS tal como está escrita.

Colorir texto

O Markdown não oferece qualquer controlo sobre a cor do texto; use <span style="color:#0969da"> onde o CSS for permitido, ou a antiga tag <font color="red"> nos renderizadores que ainda a aceitam.

<span style="color:#0969da">This sentence renders in blue.</span>

<font color="red">This sentence renders in red.</font>

A tag <font> ficou obsoleta em 1999 e os sanitizadores modernos tratam-na sem contemplações. O GitHub remove tanto o atributo style como o atributo color, pelo que nenhuma das formas produz texto colorido num README. Um substituto comum nessa plataforma é um bloco de código delimitado com diff como linguagem, que pinta de verde as linhas que começam com + e de vermelho as que começam com -. O Obsidian e o Typora respeitam a versão com <span>, tal como os sites Hugo e Jekyll que deixam passar HTML em bruto.

Ocultar comentários

Esconda uma nota dos leitores com o truque da referência de ligação [comment]: # ou com um comentário HTML normal. Ambos mantêm o texto no ficheiro de origem e fora da página renderizada.

[everything in this line disappears from the output]: #

<!-- This note also stays hidden. -->

O truque dos parênteses retos aproveita as definições de referência de ligações, uma função base do Markdown, pelo que funciona mesmo onde o HTML está bloqueado. Deixe uma linha em branco acima e abaixo, ou um parágrafo adjacente pode fundir-se com a definição. O comentário HTML é mais fácil de ler, mas permanece no código-fonte da página gerada, onde qualquer utilizador o pode ver. O GitHub aceita ambos os métodos.

Admonitions e caixas de destaque

Crie uma caixa de destaque com um emoji e um rótulo a negrito dentro de um blockquote, ou use a sintaxe de alertas do GitHub, introduzida em 2023.

> [!WARNING]
> This command overwrites all 14 archived backups.

> 💡 **Tip:** Blockquote callouts work in any renderer.

O GitHub suporta 5 tipos de alerta: NOTE, TIP, IMPORTANT, WARNING e CAUTION. Cada um aparece com o seu ícone e cor de destaque em github.com, mas a sintaxe degrada para um blockquote simples em qualquer outro lado. O Obsidian tem um formato de callout próprio, > [!note], adicionado na versão 0.14 em 2022, e o MkDocs com o tema Material usa linhas !!! note. O blockquote com emoji é a única variante com um aspeto aceitável em todas as plataformas.

Redimensionar imagens

Troque a sintaxe de imagem do Markdown por uma tag <img> e defina os atributos width e height em píxeis.

<img src="diagram.png" alt="Deployment diagram" width="480" height="270">

O GitHub mantém os atributos width e height, apesar de remover style="width:50%", pelo que os valores em píxeis são o caminho fiável para READMEs. As dimensões fixas também evitam saltos de layout enquanto a página carrega. Os renderizadores sem suporte de HTML mostram a tag em bruto como texto, por isso mantenha a forma simples ![alt](url) em plataformas como o Reddit.

Legendas de imagens

Adicione uma legenda com as tags <figure> e <figcaption>, ou coloque uma linha em itálico logo por baixo da imagem.

<figure>
  <img src="harbor.jpg" alt="Fishing boats at dawn">
  <figcaption>Hobart's harbor, photographed in March 2025.</figcaption>
</figure>

![Fishing boats at dawn](harbor.jpg)
*Hobart's harbor, photographed in March 2025.*

Tanto <figure> como <figcaption> constam da allowlist do GitHub, pelo que a versão semântica funciona nos READMEs. A linha em itálico é a alternativa para renderizadores sem HTML. Os leitores de ecrã anunciam-na como texto normal e não como legenda, e é essa a contrapartida da sua portabilidade.

Ligações que abrem num novo separador

As ligações Markdown não podem abrir num novo separador; escreva a âncora em HTML em bruto com target="_blank".

<a href="https://example.com/report" target="_blank" rel="noopener">2026 annual report</a>

Acrescente rel="noopener" para que a nova página não possa executar scripts contra a janela que a abriu. Este truque tem um alcance curto. O GitHub remove o atributo target durante a sanitização, e todas as ligações de um README abrem no mesmo separador de qualquer forma. O truque funciona em geradores de sites estáticos como o Hugo e o Jekyll, que deixam passar o HTML intacto, e é aí que o comportamento de novo separador mais importa.

Símbolos e caracteres especiais

Escreva os símbolos diretamente, já que os ficheiros Markdown são texto Unicode simples, ou use entidades HTML quando um símbolo for difícil de alcançar no teclado. Copie © ou → de qualquer página de referência de caracteres e cole no ficheiro; aparece sem alterações.

SímboloEntidade HTML
© direitos de autor&copy;
® marca registada&reg;
™ marca comercial&trade;
→ seta para a direita&rarr;
° grau&#176;
€ euro&euro;

As entidades são convertidas em quase todos os renderizadores, incluindo o GitHub. A única armadilha são os blocos de código, onde &copy; aparece de forma literal porque o código delimitado desativa a descodificação de entidades.

Índice de conteúdos

Construa um índice como lista de marcadores com ligações que apontam para os IDs de âncora dos títulos. O GitHub, o GitLab e a maioria dos outros renderizadores geram um ID para cada título: o texto passa a minúsculas, os espaços tornam-se hífenes e quase toda a pontuação é removida.

- [Underline Text](#underline-text)
- [Resize Images](#resize-images)
- [Embed Videos](#embed-videos)

Um título chamado "Resize Images" recebe a âncora #resize-images. O GitHub também mostra um botão de índice automático nos cabeçalhos dos READMEs desde 2021, pelo que uma lista manual continua a valer a pena em documentos longos noutras plataformas. Verifique as âncoras depois de cada edição de títulos, porque um título renomeado quebra as suas ligações em silêncio.

Incorporar vídeos

O Markdown não consegue incorporar um leitor de vídeo, por isso ligue uma miniatura clicável ao vídeo. O YouTube publica uma miniatura para cada vídeo num URL previsível, o que torna o padrão simples.

[![How markdown parsing works](https://img.youtube.com/vi/VIDEO-ID/0.jpg)](https://www.youtube.com/watch?v=VIDEO-ID)

Substitua VIDEO-ID pelo código de 11 caracteres do URL do vídeo. A miniatura aparece em qualquer lado onde o Markdown padrão funcione, e um clique abre o vídeo no YouTube. Existem duas melhorias onde a plataforma o permitir. O GitHub aceita carregamentos diretos de ficheiros .mp4 e .mov em issues, pull requests, discussões e ficheiros Markdown desde maio de 2021, e os renderizadores com suporte completo de HTML aceitam um embed <iframe> do YouTube colado.

Perguntas frequentes

Os truques Markdown funcionam no GitHub?

Alguns funcionam. O GitHub mantém <ins>, os atributos width de <img>, <figure>, comentários HTML, entidades e a sua própria sintaxe de alertas, mas remove todos os atributos style e o atributo target. Teste qualquer truque num gist de rascunho antes de depender dele, porque a allowlist do sanitizador pode mudar sem aviso.

Porque é que o meu HTML desapareceu da página renderizada?

O renderizador bloqueia o HTML inline por completo, como fazem o Reddit e o Discord, ou removeu durante a sanitização a tag ou o atributo específico que usou. Consulte a documentação da plataforma à procura de uma allowlist e troque o elemento removido por um permitido, como <div align="center"> no lugar de um atributo style.

Qual é o melhor estilo de comentário, [comment]: # ou <!-- -->?

Use [comment]: # quando a nota tiver de desaparecer por completo, e <!-- --> quando a legibilidade do código-fonte importar mais. A forma com parênteses retos é consumida pelo parser Markdown e nunca chega ao resultado, enquanto um comentário HTML normal fica visível para qualquer utilizador que veja o código-fonte da página.

Experimente o editor Markdown online gratuito

Escreva markdown com pré-visualização ao vivo, abra ficheiros .md e converta HTML, Word, PDF e texto, diretamente no navegador.

Abrir o editor

Mais guias de Markdown