Markdown

Un article de Wikipédia, l'encyclopédie libre.
Markdown
Markdown Syntax in gedit.png
Capture d'écran d'un éditeur de texte affichant un fichier au format Markdown
Markdown-mark.svg
Logo du langage Markdown
Caractéristiques
Extensions
.md, .markdownVoir et modifier les données sur Wikidata
Type MIME
text/markdownVoir et modifier les données sur Wikidata
PUID
fmt/1149
Développé par
Version initiale
Type de format
Site web

Markdown est un langage de balisage léger créé en 2004 par John Gruber, avec l'aide d'Aaron Swartz[1],[2], dans le but d'offrir une syntaxe facile à lire et à écrire. Un document balisé par Markdown peut être lu en l'état sans donner l’impression d'avoir été balisé ou formaté par des instructions particulières.

Un document balisé par Markdown peut être converti en HTML, en PDF ou en d'autres formats. Bien que la syntaxe Markdown ait été influencée par plusieurs filtres de conversion de texte existants vers HTML — dont Setext[3], atx[4], Textile, reStructuredText, Grutatext[5] et EtText[6] —, la source d’inspiration principale du Markdown est le format du courrier électronique en mode texte[7].

Évolutions[modifier | modifier le code]

Depuis sa création originelle par John Gruber, Markdown n'a pas connu d'évolution notable de la part de ses auteurs. De plus, ce format n'a jamais été formellement standardisé.

Un certain nombre de variantes ont été développées par d'autres afin de pallier ce qui a été perçu comme des limitations inhérentes à une syntaxe très simplifiée. À titre d'exemples, on pourrait citer MultiMarkdown[8] et GitHub Flavored Markdown[9]. Ce dernier est utilisé pour les articles et la documentation sur GitHub, mais a également été largement adopté sur plusieurs éditeurs de texte supportant le format Markdown au niveau de la coloration syntaxique ou de la prévisualisation.

Il existe également des greffons pour de nombreux logiciels, tels que « Markdown Here » pour Firefox et Chrome. Le système de gestion de contenu WordPress intègre nativement quelques éléments de ce langage depuis la version 4.3.

En mars 2016, deux RFC ont été publiées dans un but de standardisation :

L'initiative CommonMark, débutée en 2012, vise à pallier le manque de standardisation et les ambiguïtés du format en créant une spécification fortement définie du langage. Elle est désormais utilisée par, entre autres, Discourse, GitLab, Reddit, Qt, Stack Overflow et Stack Exchange[13].

Mises en œuvre[modifier | modifier le code]

Plusieurs mises en œuvre existent dans différents langages de programmation tels qu'en Perl[14], en PHP[15], en Ruby[16], en Python[17], en Java[18], en C#[19], en Haskell[20], en Gambas, en R[21] et même en JavaScript[22], notamment avec strapdown.js[23]. Depuis la version 2.0 de Swift, il est aussi possible d'utiliser le Markdown dans ses playgrounds.

Usages[modifier | modifier le code]

Le langage de balisage léger Markdown est utilisé dans de nombreuses applications, que ce soit dans des logiciels/éditeurs de code[24], des logiciels d'écriture[25], des plateformes de code[26],[27], ou encore dans des chaînes d'édition[28] avec l'addition d'autres logiciels. Les domaines concernés peuvent être le développement informatique (Markdown est habituellement utilisé pour formater le fichier README décrivant le code source d'un programme), la rédaction de documentation technique ou encore la publication académique[29].

C’est aussi le langage de balisage choisi par de nombreuses plateformes d’écriture collaborative, comme Authorea ou Manubot[30]. Il existe plusieurs logiciels permettant de rédiger le Markdown en temps réel sur le web, comme CodiMD, Etherpad ou Firepad.

Quelques exemples[modifier | modifier le code]

Voici quelques exemples de syntaxe Markdown. Les balises HTML équivalentes sont données. Cette liste n'est pas exhaustive.

Texte utilisant la syntaxe Markdown HTML produit par un processeur Markdown Texte vu à travers un navigateur
Titre
=======

Sous-titre
-----------

# Titre alternatif

## Sous-titre alternatif

Les paragraphes sont séparés 
par une ligne laissée vide

Deux espaces à à la fin d'une ligne produisent  
un saut de ligne.
<h1>Titre</h1>

<h2>Sous-titre</h2>

<h1>Titre alternatif</h1>

<h2>sous-titre alternatif</h2>

<p>Les paragraphes sont séparés par 
par une ligne laissée vide.</p>

<p>Deux espaces à à la fin d'une ligne<br />
 produisent un saut de ligne.</p>
Titre
Sous-titre
Titre alternatif
Sous-titre alternatif

Les paragraphes sont séparés par par une ligne laissée vide.

Deux espaces à la fin d'une ligne
produisent un saut de ligne.

Les caractères _italiques_, **gras**, `à taille fixe`.

Filet:

---
<p>Les caractères <em>italiques</em>, <strong>gras</strong>, <code>à taille fixe</code>.</p>

<p>Filet:</p>

<hr />
Les caractères en italiques, en gras, à taille fixe.

Filet:


Liste à puces imbriquée dans une liste ordonnée:

  1. fruits
     * pomme
     * banane
  2. légumes
     - carotte
     - brocoli

Liste à cocher:
 - [ ] Case non cochée
 - [x] Case cochée
<p>Liste à puces imbriquée dans une liste ordonnée:</p>

<ol>
  <li>fruits <ul>
      <li>pomme</li>
      <li>banane</li>
  </ul></li>
  <li>légumes <ul>
      <li>carotte</li>
      <li>brocoli</li>
  </ul></li>
</ol>
<p>Liste à cocher:</p>
<ul>
<li><input type="checkbox" id="" disabled="" >Case non cochée </li>
<li><input type="checkbox" id="" disabled="" > Case cochée</li>
</ul>
Liste à puces imbriquée dans une liste numérotée:
  1. fruits
    • pomme
    • banane
  2. légumes
    • carottes
    • brocoli

Liste à cocher:

  • Checkbox black unchecked.png Case non cochée
  • Checkbox black checked.png Case cochée
Un [lien](http://example.com).

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

> Markdown utilise les caractères à la manière des emails pour faire des citations en bloc.
>
> Chacun des paragraphes doivent être précédés par ce caractère.

La plupart des balises <abbr title="Hypertext Markup Language">HTML</abbr> de type « en ligne » sont prises en compte.
<p>Un <a href="http://example.com">lien</a>.</p>

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

<blockquote>
<p>Markdown utilise les caractères à la manière des emails pour afficher des citations en bloc.</p>
<p>Chacun des paragraphes doivent être précédés par ce caractère.</p>
</blockquote>

<p>La plupart des balises <abbr title="Hypertext Markup Language">HTML</abbr> de type « en ligne » sont prises en compte.</p>
Un lien.

Image

Markdown utilise les caractères à la manière des emails pour afficher des citations en bloc.

Chacun des paragraphes doivent être précédés par ce caractère.

La plupart des balises HTML de type « en ligne » sont prises en compte.

 
| Titre 1       |     Titre 2     |        Titre 3 |
| :------------ | :-------------: | -------------: |
| Colonne       |     Colonne     |        Colonne |
| Alignée à     |   Alignée au    |      Alignée à |
| Gauche        |     Centre      |         Droite |
<table>
 <thead>
   <tr>
    <th align="left">Titre 1</th>
    <th align="center">Titre 2</th>
    <th align="right">Titre 3</th>
 </tr>
</thead>
<tbody>
  <tr>
   <td align="left">Colonne</td>
   <td align="center">Colonne</td>
   <td align="right">Colonne</td>
 </tr>
 <tr>
  <td align="left">Alignée à</td>
  <td align="center">Alignée au</td>
  <td align="right">Alignée à</td>
 </tr>
 <tr>
  <td align="left">Gauche</td>
  <td align="center">Centre</td>
  <td align="right">Droite</td>
 </tr>
</tbody>
</table>
Titre 1 Titre 2 Titre 3
Colonne Colonne Colonne
Alignée à Alignée à Alignée à
Gauche Centre Droite

Annexes[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]

Références[modifier | modifier le code]

  1. « Markdown »
  2. « Markdown » (version du 2 avril 2004 sur l'Internet Archive)
  3. Setext.
  4. atx.
  5. Grutatext.
  6. EtText.
  7. « Daring Fireball: Markdown Syntax Documentation », sur daringfireball.net (consulté le )
  8. « MultiMarkdown », sur fletcherpenney.net (consulté le )
  9. (en) « GitHub Flavored Markdown ».
  10. (en) Sean Leonard <dev+ietf@seantek.com>, « The text/markdown Media Type », sur tools.ietf.org (consulté le )
  11. (en) Sean Leonard <dev+ietf@seantek.com>, « Guidance on Markdown: Design Philosophies, Stability Strategies, and Select Registrations », sur tools.ietf.org (consulté le )
  12. « Markdown Variants », sur www.iana.org (consulté le )
  13. (en) « Common Mark », sur commonmark.org.
  14. Perl (implémentation de référence).
  15. PHP Markdown (Markdown en PHP).
  16. BlueCloth (Markdown en Ruby).
  17. Markdown en Python.
  18. markdownj (Markdown en Java).
  19. Markdown.NET (Markdown en C# et .NET).
  20. pandoc (Markdown en Haskell).
  21. (en) R Markdown.
  22. showdown (Markdown en JavaScript).
  23. strapdown.js.
  24. (en) « The 10 Best Markdown Editors of 2018 – Shopify », sur Web Design and Development Blog | Web Design Trends, Tips, and More by Shopify Partners. (consulté le )
  25. Marcello Vitali-Rosati, « Stylo : un éditeur de texte pour les sciences humaines et sociales », sur Culture numérique, (consulté le )
  26. « Mastering Markdown · GitHub Guides », sur guides.github.com (consulté le )
  27. (en) « Markdown Guide », sur GitLab (consulté le )
  28. (en-US) « Interview with Eric Gardner, Getty Publications », sur the New Dynamic, (consulté le )
  29. Collectif, « Markdown et Zotero », sur Le blog Zotero francophone (consulté le )
  30. (en) Jeffrey M. Perkel, « Synchronized editing: the future of collaborative writing », Nature, vol. 580, no 7801,‎ , p. 154–155 (DOI 10.1038/d41586-020-00916-6, lire en ligne, consulté le )