Markdown é uma linguagem de marcação com sintaxe de formatação de texto simples (plain-text), criada em 2004 por John Gruber e Aaron Swartz. Markdown é frequentemente usado para formatar arquivos readme, para escrever mensagens em fóruns de discussão e para criar textos com formatação (rich text) usando um editor de texto simples.
Não há uma especificação formal para Markdown. Com o passar do tempo, muitas implementações de Markdown apareceram principalmente pela necessidade de recursos adicionais sobre a sintaxe básica, como por exemplo, tabelas, notas de rodapé, listas de definição/descrição e Markdown dentro de blocos HTML. O comportamento de alguns deles diverge da implementação de referência. Ao mesmo tempo, uma série de ambiguidades na especificação informal têm levado ao desenvolvimento de ferramentas e parsers para criar uma padronização. No entanto, Gruber argumentou que a padronização completa seria um erro:
"Diferentes sites (e pessoas) têm necessidades diferentes. Nenhuma sintaxe faria todos felizes."
Em março de 2016, foram publicadas duas RFCs informativas relevantes da Internet:
- RFC 7763 introduziu MIME type
text/markdown
com a variação original. - RFC 7764 registrou as variantes: MultiMarkdown, GFM - GitHub Flavored Markdown, Pandoc, CommonMark e Markdown Extra entre outros.
Em 2017, o GitHub lançou uma especificação formal de seu GitHub Flavored Markdown (GFM) que é baseado no CommonMark (Uma especificação fortemente definida e altamente compatível de Markdown). É um superconjunto estrito do CommonMark, seguindo sua especificação exatamente, exceto para tabelas, tachado, autolinks e listas de tarefas, que GFM adiciona como extensões. GitHub também mudou o analisador usado em seus sites, o que exigiu que alguns documentos fossem alterados. Por exemplo, o GFM agora requer que o símbolo hash que cria um título seja separado do texto do título por um caractere de espaço. No entanto, muito da linguagem original é aceito pelo site.
Veja a seguir algumas especificações para criar um documento markdown com a variante GFM.
# Cabeçalho nível 1 (maior)
## Cabeçalho nível 2
###### Cabeçalho nível 6 (menor)
Negrito: **Texto em negrito**, __Texto em negrito__
Itálico: *Texto em itálico*, _Texto em itálico_
Tachado: ~~Texto tachado~~
Negrito e itálico: **_Texto negrito e itálico_**, _**Texto negrito e itálico**_`
Note O Google recomenda para seus desenvolvedores usar
**
para negrito e_
para itálico para melhor leitura dos documentos. https://developers.google.com/style/text-formatting
Como diria o meu avô:
> Água mole, pedra dura, tanto bate até que fura.
`# Texto sem formatação`
`` `
Exemplo de **código**
que pode ser usado em *blocos*
`` `
Somente link
<http://localhost:3000>
Texto com link
[Link para cabeçalho](#nome-do-cabecalho)
[Link para linha](caminho/arquivo#L13)
[Link relativo](caminho/arquivo.md)
[Link relativo](./caminho/arquivo.md)
[Link absoluto](/caminho/arquivo.md)
[Link com texto](https://www.dominio.com)
- Primeiro
- Segundo
- Primeiro filho
- Segundo filho
- Primeiro neto
1. Primeiro
- Filho
1. Segundo
1. Terceiro
Ou usar a notação mais antiga
1. Primeiro
- Filho
2. Segundo
3. Terceiro
Se usar o modo antigo com markdownlint
habilitado, é necessário mudar a configuração para:
"MD029": {
"style":"ordered"
}
- [x] Tarefa 1
- [ ] Tarefa 2
- [ ] Tarefa 3
- [ ] \(Se iniciar com parênteses tem que escapar)
Basta deixar uma linha em branco
Parágrafo 1
Parágrafo 2
Basta usar a barra \*invertida\* para escapar
Basta quebrar a linha (ENTER) logo após a barra \*invertida\*
Evitar a separação de palavras durante uma quebra de linha.
<nobr>Não serei quebrado</nobr>
| Primeiro cabeçalho | Segundo cabeçalho |
| ------------------ | ----------------- |
| Conteúdo célula | Conteúdo célula |
| Conteúdo célula | Conteúdo célula |
Tabela com formatação
| Primeiro cabeçalho | Segundo cabeçalho |
| --- | --- |
| **célula negrito** | \| Usando pipe |
| *célula itálico* | Conteúdo célula |
Tabela com alinhamento
| Alinhado na esquerda | Alinhado no centro | Alinhado na direita |
| :--- | :---: | ---: |
| Conteúdo | Conteúdo | Conteúdo |
| Conteúdo | Conteúdo | Conteúdo |
![Amostra Vídeo](caminho/video.mp4)
![alt text](caminho/img.png)
`` `math
a^2+b^2=c^2
`` `
<dl>
<dt>Definition list</dt>
<dd>Is something people use sometimes.</dd>
<dt>Markdown in HTML</dt>
<dd>Does *not* work **very** well. Use HTML <em>tags</em>.</dd>
</dl>
Três ou mais caracteres iguais a:
***
---
___
Este texto possui uma anotação de rodapé.[^1]
[^1]: Este é meu rodapé.
Entrada | Referência |
---|---|
@user_name | specific user |
@group_name | specific group |
@all | entire team |
#123 | issue |
!123 | merge request |
$123 | snippet |
~123 | label by ID |
~bug | one-word label by name |
~"feature request" | multi-word label by name |
%123 | project milestone by ID |
%v1.23 | one-word milestone by name |
%"release candidate" | multi-word milestone by name |
9ba12248 | specific commit |
9ba12248...b19a04f5 | commit range comparison |
README | repository file references |
README | repository file line references |
Referência Cross-project
Entrada | Referência |
---|---|
namespace/project#123 | issue |
namespace/project!123 | merge request |
namespace/project%123 | project milestone |
namespace/project$123 | snippet |
namespace/project@9ba12248 | specific commit |
namespace/[email protected] | commit range comparison |
namespace/project~"Some label" | issues with given label |
Referência Cross-project (Anotação curta)
Entrada | Referência |
---|---|
project#123 | issue |
project!123 | merge request |
project%123 | project milestone |
project$123 | snippet |
project@9ba12248 | specific commit |
[email protected] | commit range comparison |
project~"Some label" | issues with given label |
-
Formatação de tabela de modo mais legível
-
Conversores
-
Converter tabela HTML para tabela markdown
-
Converter geral para markdown
-
-
Representação de comandos de prompt
-
Convert texto em tabela
-
Gerador de tabela