Markdown - Markdown

Markdown
Markdown-mark.svg
Tipo de mídia da Internet text/markdown
Identificador de tipo uniforme (UTI) net.daringfireball.markdown
Desenvolvido por John Gruber e Aaron Swartz
lançamento inicial 19 de março de 2004 (17 anos atrás) ( 19/03/2004 )
Último lançamento
1.0.1
(17 de dezembro de 2004 (16 anos atrás) ) ( 17/12/2004 )
Tipo de formato Linguagem de marcação
Alargado a pandoc , MultiMarkdown , Markdown Extra , CommonMark , RMarkdown
Formato aberto ? sim
Local na rede Internet daringfireball .net / projects / markdown /

Markdown é uma linguagem de marcação leve para criar texto formatado usando um editor de texto simples . John Gruber e Aaron Swartz criaram a Markdown em 2004 como uma linguagem de marcação que atrai leitores humanos em sua forma de código-fonte. Markdown é amplamente usado em blogs , mensagens instantâneas , fóruns online , software colaborativo , páginas de documentação e arquivos leia - me .

A descrição inicial do Markdown continha ambigüidades e levantou questões sem resposta. Para corrigir esses problemas, as implementações posteriores introduziram diferenças sutis da versão original, bem como extensões de sintaxe.

História

Em 2002, Aaron Swartz criou o atx, "o verdadeiro formato de texto estruturado". Swartz e John Gruber trabalharam juntos para criar a linguagem Markdown em 2004, com o objetivo de permitir que as pessoas "escrevessem usando um formato de texto simples fácil de ler e escrever, opcionalmente convertê-lo em XHTML estruturalmente válido (ou HTML ) ".

Seu principal objetivo de design é a legibilidade - que a linguagem seja legível como está, sem parecer que foi marcada com tags ou instruções de formatação, ao contrário do texto formatado com uma linguagem de marcação , como Rich Text Format (RTF) ou HTML, que têm tags e instruções de formatação óbvias. Para esse fim, sua principal inspiração são as convenções existentes para marcar texto simples em e-mail , embora também se baseie em linguagens de marcação anteriores, notadamente setext , Textile e reStructuredText .

Gruber escreveu um script PerlMarkdown.pl , que converte a entrada de texto marcada em XHTML ou HTML válido e bem formado e substitui os colchetes angulares ' <' ' >' e o e comercial ' &' por suas referências de entidade de caractere correspondentes . Pode assumir o papel de um script autônomo, um plugin para Blosxom ou um Movable Type , ou de um filtro de texto para BBEdit .

estandardização

Markdown foi caracterizado por uma especificação informal e uma implementação de referência para conversão para HTML. Com o tempo, muitas implementações de Markdown apareceram. As pessoas os desenvolveram principalmente pela necessidade de recursos adicionais sobre a sintaxe básica - como tabelas, notas de rodapé, listas de definição (tecnicamente listas de descrição HTML) e Markdown dentro de blocos HTML. O comportamento de alguns deles diverge da implementação de referência. Ao mesmo tempo, várias ambigüidades na especificação informal têm chamado a atenção. Esses problemas estimularam a criação de ferramentas como o Babelmark para comparar a saída de várias implementações e um esforço de alguns desenvolvedores de analisadores Markdown para padronização. No entanto, Gruber argumentou que a padronização completa seria um erro: "Diferentes sites (e pessoas) têm diferentes necessidades. Nenhuma sintaxe faria todos felizes."

Em março de 2016, foram publicadas duas RFCs informativas relevantes da Internet :

  • O RFC 7763 introduziu o tipo MIMEtext/markdown com a variante original.
  • O RFC 7764 discutiu e registrou as variantes MultiMarkdown , GitHub Flavored Markdown (GFM), Pandoc , CommonMark e Markdown Extra, entre outros.

CommonMark

CommonMark
Markdown-mark.svg
Extensões de nome de arquivo .md, .markdown
Tipo de mídia da Internet text/markdown; variant=CommonMark
Identificador de tipo uniforme (UTI) incerto
Conformação UTI public.plain-text
Desenvolvido por John MacFarlane , código aberto
lançamento inicial 25 de outubro de 2014 (6 anos atrás) ( 25/10/2014 )
Último lançamento
0,30
(19 de junho de 2021 (3 meses atrás) ) ( 2021-06-19 )
Tipo de formato Linguagem de marcação
Estendido de Markdown
Alargado a GitHub Flavored Markdown
Formato aberto ? sim
Local na rede Internet spec .commonmark .org

A partir de 2012, um grupo de pessoas, incluindo Jeff Atwood e John MacFarlane , lançou o que Atwood caracterizou como um esforço de padronização. Um site de comunidade agora visa "documentar várias ferramentas e recursos disponíveis para autores e desenvolvedores de documentos, bem como implementadores de várias implementações de Markdown". Em setembro de 2014, Gruber se opôs ao uso de "Markdown" em nome desse esforço e foi rebatizado como um novo dialeto chamado CommonMark. CommonMark.org publicou várias versões de uma especificação, implementação de referência, suíte de teste e "[planos] para anunciar uma especificação 1.0 finalizada e suíte de teste em 2019." Nenhuma especificação 1.0 foi lançada desde então, pois os principais problemas ainda permanecem sem solução. No entanto, os seguintes sites e projetos adotaram o CommonMark: Discourse, GitHub, GitLab, Reddit, Qt, Stack Exchange (Stack Overflow) e Swift.

Variantes

Sites como GitHub , Bitbucket , Reddit , Diaspora , Stack Exchange , OpenStreetMap e SourceForge usam variantes do Markdown para facilitar a discussão entre os usuários.

Dependendo da implementação, tags HTML embutidas básicas podem ser suportadas. O texto em itálico pode ser implementado por _underscores_e / ou *single-asterisks*.

GitHub Flavored Markdown

O GitHub vinha usando sua própria variante do Markdown desde 2009, adicionando suporte para formatação adicional, como tabelas e conteúdo de bloco de aninhamento dentro de elementos de lista, bem como recursos específicos do GitHub, como referências de vinculação automática a commits, ocorrências, nomes de usuário , etc. Em 2017, o GitHub lançou uma especificação formal de seu GitHub Flavored Markdown (GFM) que é baseado no CommonMark. É um superconjunto estrito do CommonMark, seguindo suas especificações exatamente, exceto para tabelas, tachado, autolinks e listas de tarefas, que GFM adiciona como extensões. O GitHub também mudou o analisador usado em seus sites, o que exigiu que alguns documentos fossem alterados. Por exemplo, o GFM agora exige que o símbolo hash que cria um título seja separado do texto do título por um caractere de espaço.

Markdown Extra

Markdown Extra é uma linguagem de marcação leve baseada em Markdown implementado em PHP (originalmente), Python e Ruby . Ele adiciona recursos não disponíveis com a sintaxe Markdown simples. Markdown Extra é compatível com alguns sistemas de gerenciamento de conteúdo , como, por exemplo, Drupal e TYPO3 .

Markdown Extra adiciona os seguintes recursos ao Markdown:

  • Marcação de marcação dentro de blocos HTML
  • Elementos com atributo id / class
  • "Blocos de código cercados" que abrangem várias linhas de código
  • Mesas
  • Listas de definição
  • Notas de rodapé
  • Abreviações

Exemplo

Texto usando sintaxe Markdown HTML correspondente produzido por um processador Markdown Texto visualizado em um navegador
Heading
=======

Sub-heading
-----------

Paragraphs are separated 
by a blank line.

Two spaces at the end of a line  
produce a line break.
<h1>Heading</h1>

<h2>Sub-heading</h2>

<p>Paragraphs are separated
by a blank line.</p>

<p>Two spaces at the end of a line<br />
produce a line break.</p>
Cabeçalho
Subtítulo

Os parágrafos são separados por uma linha em branco.

Dois espaços no final de uma linha
produzem uma quebra de linha.

 Text attributes _italic_,
**bold**, `monospace`. Some implementations may use *single-asterisks* for italic text.

Horizontal rule:

---

Strikethrough:
~~strikethrough~~
<p>Text attributes <em>italic</em>,
<strong>bold</strong>, <code>monospace</code>. Some implementations may use <i>single-asterisks</i> for italic text.</p>

<p>Horizontal rule:</p>

<hr />

<p>Strikethrough:</p>
<s>strikethrough</s>
Atributos de texto em itálico , negrito , monospace. Algumas implementações podem usar um asterisco para texto em itálico.

Regra horizontal:


Tachado:

tachado

Bullet list:

  * apples
  * oranges
  * pears

Numbered list:

  1. lather
  2. rinse
  3. repeat
<p>Bullet list:</p>

<ul>
<li>apples</li>
<li>oranges</li>
<li>pears</li>
</ul>

<p>Numbered list:</p>

<ol>
<li>lather</li>
<li>rinse</li>
<li>repeat</li>
</ol>
Lista de marcadores:
  • maçãs
  • laranjas
  • peras

Lista numerada:

  1. espuma
  2. limpar
  3. repetir
An [example](http://example.com).

![Image](Icon-pictures.png "icon")

> Markdown uses email-style
> characters for blockquoting.
> Multiple paragraphs need to be prepended individually.

Basic inline <abbr title="Hypertext Markup Language">HTML</abbr> may be supported.
<p>An <a href="http://example.com">example</a>.</p>

<p><img alt="Image" title="icon" src="Icon-pictures.png" /></p>

<blockquote>
<p>Markdown uses email-style characters for blockquoting. Multiple paragraphs need to be prepended individually.</p>
</blockquote>

<p>Basic inline <abbr title="Hypertext Markup Language">HTML</abbr> may be supported.</p>
Um exemplo .

Imagem

Markdown usa caracteres de estilo de e-mail para blockquoting. Vários parágrafos precisam ser acrescentados individualmente.

HTML embutido básico pode ser suportado.

Implementações

Implementações de Markdown estão disponíveis para mais de uma dúzia de linguagens de programação; além disso, muitas plataformas e estruturas suportam Markdown. Por exemplo, existem plug-ins Markdown para todas as principais plataformas de blog.

Embora Markdown seja uma linguagem de marcação mínima e seja lida e editada com um editor de texto normal, existem editores especialmente projetados que visualizam os arquivos com estilos, que estão disponíveis para todas as plataformas principais. Muitos editores de texto e código de uso geral possuem plug-ins de realce de sintaxe para Markdown integrados a eles ou disponíveis como download opcional. Os editores podem apresentar uma janela de visualização lado a lado ou renderizar o código diretamente no modo WYSIWYG .

Veja também

Referências

links externos