O formato de texto de marcação facilita para as pessoas – não apenas desenvolvedores de software, mas qualquer pessoa com teclado – para escrever um texto que possa ser convertido rapidamente em HTML ou outro formato rico. O que há de especial no Markdown é que ele usa Sintaxe de texto simples Para a formatação, é fácil dizer rapidamente como o texto formatado em marcação pode parecer quando for renderizado.

A facilidade geral de uso e a simplicidade do Markdown levaram a ampla adoção em muitos espaços. Os blogueiros eram o caso de uso original, usando -o para escrever suas postagens e adorná -los com links ou marcação sem precisar de um editor Wysiwyg. Muitos desenvolvedores usam o Markdown ou outra variante para escrever sua documentação. Tudo o que alguém precisa para começar é um editor de texto.

A história do Markdown

O blogueiro de tecnologia John Gruber, guardião do blog centrado na Apple Daringfireball.net, criou o Markdown em 2004 em colaboração com Aaron Swartz.

Postagens de e -mail e usenet escritos em texto simples tinham há muito tempo sua própria cultura de formatação ad hoc, como usar *asterisks* ou _underscores_ para ênfase. Mas essas dicas textuais não foram renderizadas como HTML; Eles apenas forneceram uma sugestão visual de como seria a marcação. Gruber e Swartz deram um passo adiante usando esse tipo de marcação de texto simples para gerar saída formatada. Os colaboradores também se inspiraram na linguagem reestruturada, lançada em 2002.

A primeira encarnação de Markdown foi um script Perl que poderia ser usado independente ou integrado a outros softwares, como o pipeline de publicação de um blog ou um filtro de texto para uma placa de mensagem como o BBBETIT. Ainda existe nesse formato, mas inúmeras outras línguas agora têm bibliotecas de remarca.

Sintaxe básica de marcação

Os documentos de marcação são essencialmente texto simples. Eles podem ser ASCII ou UTF-8, pois toda a formatação importante é ASCII. Para gerar saída formatada, basta alimentar o documento de marcação em um script de processador, como o script Perl que mencionei acima.

O texto simples renderiza como é, mas certas seqüências de caracteres fazem com que o texto seja formatado como elementos de bloco ou embutido.


This is plain text.

As quebras de linha única são tratadas como espaço em branco normal, enquanto as quebras de linha dupla indicam uma quebra de parágrafo:

These two lines
would be considered a single paragraph.

This double-linebreak separated section would be its own paragraph.

Para ênfase no texto, você pode usar asteriscos e sublinhados ou outros símbolos:

  • Itálico: *Italics*
  • Audacioso: **Bold**
  • Strikethrough: ~~Strikethrough~~

(Observe que a sintaxe de strikethrough não é universalmente suportada.)

Cabeçalhos em um documento (o equivalente a HTML de H1 através H5) pode ser renderizado colocando marcas de hash no início de uma linha:


# Main heading

Text

## Subheading

More text

Estes renderizariam o seguinte HTML:


Main heading

Text

Subheading

More text

Para criar uma regra horizontal, você simplesmente digitaria --- ou === em uma linha por si só.

Links embutidos usam um ()() Construção para separar o texto e o URL do link, assim:
(the InfoWorld homepage)(https://infoworld.com).

Muitas variantes de remarca também suportam um formato de URL de colchetes ângulo-EG, – mas sem um rótulo de texto formatado separadamente.

Inserir uma imagem embutida funciona da mesma forma, com uma versão prefixada de “bang” de um link: !(optional image description)(https://img.url/thing.jpg). Para apenas a imagem sem metadados do título, use: !()(https://img.url/thing.jpg).

Para blocos ou blocos recuperados, coloque um > No início de um parágrafo:

Regular text

> Indented block
>> Double-indented block

More regular text

O texto formatado em código usa blocos cercados com três backsticks:


``` 
test
``` 

Listas não ordenadas usam *Assim, +ou - Para iniciar uma linha, com os recuos usados ​​para indicar níveis:


* Key concept
    * Sub-concept
    * Another sub-concept
* Another key concept.

Para numeração, você pode usar qualquer dígito seguido por um período, pois o renderizador de remarkdown renumerará automaticamente tudo:


0. First item
0. Second item
0. Third item

Finalmente, você pode inserir HTML manualmente, se quiser. No entanto, o renderizador de remarcado pode considerar uma área com HTML desde que seja isento de sua própria renderização. Por exemplo:


This may *not* render as intended.

Alguns renderizadores de marcação podem tentar aplicar a formatação de marcação entre as tags HTML, mas outros podem ignorá -la. Então, em alguns casos, você obteria itálico para a fonte acima, enquanto em outros você obteria asteriscos literais.

Independentemente do que você está tentando fazer com o Markdown, mesmo um olhar para o texto original e não formado fornece uma noção de como o produto formatado deve procurar.

Casos de uso para o desbaste

O caso de uso original do Markdown foi blogando. Foi uma alternativa para blogueiros ou usuários do quadro de mensagens que queriam renderizar texto rico, mas evite escrever HTML manualmente (incluindo variantes de estilo HTML como o BBCode) ou usando um editor Wysiwyg para gerar marcação.

Os blogs e a publicação de texto em geral continuam sendo aplicativos populares para o Markdown. Sistemas de mensagens como Discord e Slack usam o Markdown (com algumas alterações gratuitas) para permitir que os usuários publiquem texto rico e anotado ou incluam links ou imagens.

Um caso de uso comum para o Markdown é a documentação do projeto. Um simples README.md é fácil de montar com o Markdown, e o padrão suporta sintaxe de formatação mais do que suficiente para esse trabalho. Para trabalhos de documentação maiores e mais complexos, o Markdown também pode ser suficiente e, embora haja críticas sobre o quão bem ele escala, muitas ferramentas de documentação, como MKDOCs, usam o Markdown como formato principal. Várias variantes inspiradas em marcação (descritas abaixo) adicionam recursos personalizados ao padrão de marcação para torná-lo mais útil para gerar documentação.

O Markdown também é um formato base adequado para um wiki. A formatação do wiki geralmente segue a mesma filosofia que o Markdown: um formato de texto simples com anotações que podem ser analisadas visualmente. A maioria das implementações do Wiki do Markdown também estende o padrão – por instância, para permitir a transclusão de documentos ou usando um modelo para formatação.

Limitações de Markdown

O padrão de marcação principal (que por um longo tempo era apenas um de fato padrão) suporta apenas um pequeno punhado de opções de formatação. Isso é em grande parte um reflexo de seus casos de uso originais. Não se pretendia ser uma ferramenta de geração HTML individual, mas uma maneira de escrever rapidamente as coisas que usavam os elementos HTML mais comuns e amplamente suportados.

O Markdown é um padrão focado e conciso, com a troca de muitas coisas faltando completamente. Aqui estão algumas das coisas que você não pode renderizar com o padrão de marcação principal:

  • Mesas: Várias extensões gratuitas para a formatação da tabela de suporte a remarca, normalmente usando o símbolo do tubo (|) para definir colunas da tabela. No entanto, as implementações não são consistentes e a implementação principal de marcação não possui sintaxe de tabela.
  • Notas de rodapé ou notas finais: Mesmo em uma página da Web simples, alguma maneira automática de definir notas de rodapé ou notas finais no texto pode ser útil. O Markdown não oferece uma maneira nativa de fazer isso.
  • Metadados ou variáveis: Markdown não possui mecanismo nativo para definir metadados no nível do documento ou mesmo comentários embutidos. Um bloco de comentários HTML inserido manualmente pode conter dados, mas por si só, o Markdown não tem como fazer nada útil com ele; Ele seria convertido em HTML junto com todo o resto, e não necessariamente retirado da saída.
  • Controle sobre aulas ou estilos de CSS: Se você tiver um bloco de texto para o qual deseja aplicar um estilo, a única maneira de fazê -lo é incluí -lo em tags HTML; por exemplo,
    ...

    . O março em si não tem uma sintaxe para aplicar esse tipo de formatação.

Variantes de marcação para explorar

Como o Markdown é bastante mínimo, as variações na sintaxe original surgiram ao longo dos anos. Eles não pretendiam eclipsar ou substituir o Markdown, mas flanqueá -lo. Essas variantes oferecem uma sintaxe que começa com o Markdown e cria recursos úteis em cima.

Commonmark

A Commonmark deve ser uma “especificação fortemente definida e altamente compatível do Markdown”. Ele pega a sintaxe principal de marcação e formaliza -a para criar uma especificação, implementações de referência, um conjunto de testes e várias outras ferramentas. Ele não define nenhuma extensão no padrão, apenas uma descrição inequívoca e maneiras de criar ferramentas que estão em conformidade com o padrão.

Marcada com sabor de Github

Uma variante amplamente adotada do Markdown é o Markdown com sabor do Github, assim chamado ambos porque o Github o desenvolveu e porque muitos de seus recursos complementam casos de uso no GitHub. A especificação se expande no Commonmark para adicionar tabelas, itens da lista de tarefas (por exemplo, para criar listas de tarefas) e um mecanismo para desativar tags HTML cruas que podem ser problemáticas (como ).

MultiMarkdown

Como a remarcada com sabor do Github, o projeto multimarkdown se expande na sintaxe base do markdown, mas adiciona recursos comumente usados ​​em documentos como trabalhos científicos ou livros, como mesas, notas de rodapé, citações, referências cruzadas e fórmulas de matemática de látex.