Markdown est un langage de balisage léger créé en 2004 par John Gruber, avec l'aide d'Aaron Swartz[1],[2], avec l'objectif d'offrir une syntaxe, facile à lire et à écrire, en l'état, sans formatage.

Markdown
Capture d'écran d'un éditeur de texte affichant un fichier au format Markdown
Logo du langage Markdown
Caractéristiques
Extensions
.md, .markdown, .mkd, .mdown, .mdtxt, .mdtextVoir 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
Spécification
Site web

Markdown est principalement utilisé dans des blogs, des sites de messagerie instantanée, des forums et des pages de documentation de logiciels. Depuis quelques années, Markdown est utilisé par la communauté scientifique[3],[4],[5], en lien avec la Science ouverte[6].

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[7], atx[8], Textile, reStructuredText, Grutatext[9] et EtText[10] —, la source d’inspiration principale du Markdown est le format du courrier électronique en mode texte[11].

Évolutions

modifier

Markdown n'a jamais été formellement standardisé, diverses variantes ont été développées par des tiers afin de pallier ce qui était perçu comme des limitations du langage originel. Parmi ces variantes, figurent notamment MultiMarkdown[12] et GitHub Flavored Markdown (GFM)[13]. 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. Le « dialecte »[14] GitHub Flavored du Markdown s’appuie sur la spécification CommonMark[15], à laquelle il est conforme et dont il est un dérivé (fork)[16]. La version actuelle 0.29 de GFM, parue le 6 avril 2019, est décrite par John MacFarlane sous licence Creative Commons[14].

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 dans sa forme initiale quelques éléments de ce langage depuis la version 4.3.

En mars 2016, dans le but de standardiser le langage, deux RFC ont été publiées :

  • RFC 7763[17], qui introduit le type MIME text/markdown à partir de la variante originale de Markdown.
  • RFC 7764[18], qui répertorie des variantes MultiMarkdown, GitHub Flavored Markdown (GFM), Pandoc, CommonMark, Markdown Extra et autres[19].

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, Codeberg, Discourse, GitLab, Reddit, Qt, Stack Overflow et Stack Exchange[20].

Mises en œuvre

modifier

Plusieurs mises en œuvre existent dans différents langages de programmation tels qu'en Perl[21], en PHP[22], en Ruby[23], en Python[24], en Java[25], en C#[26], en Haskell[27], en Gambas, en R[28], ou en JavaScript[29],[30],[31],[32],[33]. Depuis la version 2.0 de Swift, il est aussi possible d'utiliser le Markdown dans ses playgrounds.

Utilisations

modifier

Le langage de balisage léger Markdown est utilisé dans de nombreuses applications, que ce soit dans des logiciels/éditeurs de code[34], des logiciels d'écriture[35], des plateformes de code[36],[37], ou encore dans des chaînes d'édition[38] avec l'addition d'autres logiciels. Les domaines d'application incluent le développement informatique (Markdown est fréquemment 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[39].

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

Exemples de la syntaxe

modifier

Le tableau, ci-dessous, présente des exemples de syntaxe Markdown, avec les balises HTML équivalentes.

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 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 une ligne 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 une ligne 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 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="" checked >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 :

  •   Case non cochée
  •   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.
>
> Chaque paragraphe doit être précédé 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>Chaque paragraphe doit être précédé 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.

 

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

Chaque paragraphe doit être précédé 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 |
(NOTE : la justification à gauche, au centre ou à droite se fait via la présence ou l'absence des deux points : sur la ligne horizontale)
<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 au
Alignée à
Gauche
Centre
Droite

Annexes

modifier

Articles connexes

modifier

Liens externes

modifier

Notes et références

modifier

Notes

modifier

Références

modifier
  1. « Markdown ».
  2. « Markdown » (version du 2 avril 2004 sur Internet Archive).
  3. Ined, « La Science ouverte à l'Ined », sur so.site.ined.fr (consulté le 18 juillet 2024).
  4. Arthur Perret, « Lodel 2, Stylo 2 : le Markdown scientifique entre dans une nouvelle ère »  , sur arthurperret.fr, 30 avril 2024 (consulté le 18 juillet 2024).
  5. La science ouverte à INRAE, « Recommandations », sur science-ouverte.inrae.fr (consulté le 18 juillet 2024).
  6. Bernard Pochet, Markdown & vous, Liège, ULiège Library, 2023 (ISBN 978-2-87019-318-1, lire en ligne)
  7. Setext.
  8. atx.
  9. Grutatext.
  10. EtText.
  11. « Daring Fireball: Markdown Syntax Documentation », sur daringfireball.net (consulté le 24 septembre 2020).
  12. « MultiMarkdown », sur fletcherpenney.net (consulté le 22 septembre 2020).
  13. (en) « GitHub Flavored Markdown ».
  14. a et b « GitHub Flavored Markdown Spec », sur github.github.com (consulté le 19 mai 2020)
  15. (en) Josh Ponelat et Lukas Rosenstock, chap. 8.3 « Writing the description in Markdown », dans Designing APIs with Swagger and OpenAPI, Simon and Schuster, 19 juillet 2022 (lire en ligne).
  16. (en) « cmark-gfm », sur github.com (consulté le 6 juillet 2025).
  17. (en) « The text/markdown Media Type », sur tools.ietf.org (consulté le 23 octobre 2020).
  18. (en) « Guidance on Markdown: Design Philosophies, Stability Strategies, and Select Registrations », sur tools.ietf.org (consulté le 23 octobre 2020).
  19. « Markdown Variants », sur iana.org (consulté le 25 septembre 2020).
  20. (en) « Common Mark », sur commonmark.org.
  21. Perl (implémentation de référence).
  22. PHP Markdown (Markdown en PHP).
  23. BlueCloth (Markdown en Ruby).
  24. Markdown en Python.
  25. markdownj (Markdown en Java).
  26. Markdown.NET (Markdown en C# et .NET).
  27. pandoc (Markdown en Haskell).
  28. (en) R Markdown.
  29. (en) « micromark » (consulté le 14 février 2024).
  30. (en) « remark » (consulté le 14 février 2024).
  31. (en) « zmarkdown » (consulté le 14 février 2024).
  32. (en) « showdown » (consulté le 14 février 2024).
  33. (en) « StrapDown.js » (consulté le 14 février 2024).
  34. (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 21 octobre 2019).
  35. Marcello Vitali-Rosati, « Stylo : un éditeur de texte pour les sciences humaines et sociales », sur Culture numérique, 3 juin 2018 (consulté le 21 octobre 2019).
  36. « Mastering Markdown · GitHub Guides », sur guides.github.com (consulté le 21 octobre 2019).
  37. (en) « Markdown Guide », sur GitLab (consulté le 21 octobre 2019).
  38. (en-US) « Interview with Eric Gardner, Getty Publications », sur the New Dynamic, 26 janvier 2017 (consulté le 21 octobre 2019).
  39. Collectif, « Markdown et Zotero », sur Le blog Zotero francophone (consulté le 21 octobre 2019).
  40. (en) Jeffrey M. Perkel, « Synchronized editing: the future of collaborative writing », Nature, vol. 580, no 7801,‎ 31 mars 2020, p. 154–155 (DOI 10.1038/d41586-020-00916-6, lire en ligne, consulté le 12 septembre 2020).
  41. Stylo, « Documentation », sur stylo-doc.ecrituresnumeriques.ca (consulté le 18 juillet 2024).

📚 Artikel Terkait di Wikipedia

Hypertext Transfer Protocol

la RFC 2616 : RFC 7230 Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing (Standard proposé) RFC 7231 Hypertext Transfer Protocol (HTTP/1

Python (langage)

productivité des programmeurs en offrant des outils de haut niveau et une syntaxe simple à utiliser. Python est un langage de programmation qui peut s'utiliser

Booléen

2011], sur developer.apple.com (consulté le 1er mai 2018) « perlsyn - Perl Syntax / Truth and Falsehood » [archive du 26 août 2013] (consulté le 10 septembre

World Wide Web

syntaxe plus simple que SGML ; HTML5 fondé sur la pratique courante des années 2000 ; le RFC 3986 (Uniform Resource Identifier (URI): Generic Syntax)

Hessian

(Objective-C 2.0) HessianD (D) Hessian4 J (Java). HessDroid (Android). Abstract Syntax Notation One (ASN.1) Etch de Cisco Thrift de Facebook / Apache Protocol

JSON-LD

PHP (php-json-ld, JsonLD), Ruby (JSON-LD for RDF.rb), Java (JSONLD-JAVA), C# (json-ld.net), Go (JSON-goLD). « JSON-LD Syntax 1.0 », 27 décembre 2011 (consulté

Representational state transfer

most abstract notions of Web interaction to the finest details of HTTP syntax. That process honed my model down to a core set of principles, properties

Apache Thrift

Facebook, actuellement hébergé par Apache. Apache Avro Apache Parquet Abstract Syntax Notation One (ASN.1) Etch de Cisco Protocol Buffers de Google « M » de Microsoft