L'histoire de Markdown

Logo officiel de Markdown

Logo par Dustin Curtis Domaine public

Qu'est-ce que Markdown ?

Markdown est un langage de balisage léger avec une syntaxe de formatage de texte simple. Son objectif principal est d'être « lisible par l'humain » dans sa forme originale (code source) et facilement convertible en HTML valide. Depuis son lancement en 2004, il est devenu le standard de facto pour les écrivains, développeurs et créateurs de contenu sur le web.

Markdown est deux choses : (1) une syntaxe de formatage de texte simple ; et (2) un outil logiciel, écrit à l'origine en Perl, qui convertit ce formatage en HTML.

Origines et motivation (avant 2004)

Avant Markdown, écrire pour le web nécessitait la connaissance du HTML (HyperText Markup Language) ou l'utilisation d'éditeurs WYSIWYG (« What You See Is What You Get »), qui généraient souvent du code lourd et difficile à maintenir.

Il existait d'autres langages de balisage légers, comme Textile et reStructuredText, mais beaucoup ressemblaient encore à du code informatique ou nécessitaient des balises complexes. L'inspiration pour Markdown est venue d'une source simple : le formatage utilisé dans les emails en texte brut.

Aux premiers jours d'Internet, les utilisateurs utilisaient déjà des conventions intuitives pour formater les emails : *astérisques* pour l'emphase, > signes pour les citations, et tirets pour les listes. Ces conventions naturelles sont devenues la base de la syntaxe Markdown.

La création (2004)

Markdown a été créé par John Gruber (né en 1973), blogueur technologique, designer UI de Philadelphie, Pennsylvanie, et créateur du célèbre blog Daring Fireball, avec des contributions significatives d'Aaron Swartz (1986-2013), le brillant programmeur prodige et activiste d'Internet.

Gruber a eu l'idée originale et a écrit le script Perl initial qui convertissait le texte balisé en HTML. Sa philosophie était claire : le document balisé devrait être publiable tel quel, comme texte brut, sans avoir l'air d'être rempli de balises ou d'instructions de formatage.

Aaron Swartz a travaillé sur la syntaxe avec Gruber. Swartz avait déjà créé atx (un autre langage de balisage) et a influencé la création de syntaxes d'en-têtes utilisant #, ainsi que l'affinement des règles de traduction HTML en texte.

La version 1.0.1 a été publiée publiquement le 17 décembre 2004, sous une licence open source BSD.

« L'objectif de conception principal de la syntaxe de formatage de Markdown est de la rendre aussi lisible que possible. L'idée est qu'un document formaté en Markdown devrait être publiable tel quel, comme texte brut, sans avoir l'air d'avoir été balisé avec des balises ou des instructions de formatage. »
John Gruber, Daring Fireball

Les créateurs

John Gruber

John Gruber

Créateur de Markdown

Blogueur technologique et designer UI né en 1973 à Philadelphie. Créateur de Daring Fireball, l'un des blogs technologiques les plus influents axé sur les produits Apple. Il anime également le podcast The Talk Show. Gruber a obtenu son diplôme en informatique à l'Université Drexel.

Photo par Randy Stewart Wikimedia Commons CC BY-SA 3.0

Aaron Swartz

Aaron Swartz

Co-créateur de Markdown (1986-2013)

Programmeur prodige, entrepreneur, écrivain et activiste d'Internet. À 14 ans, il a co-écrit RSS 1.0. Il fut l'un des premiers architectes de Creative Commons, développeur d'Open Library et co-fondateur de Reddit. Il a été intronisé au Internet Hall of Fame en 2013.

Photo : Wikimedia Commons CC BY-SA 3.0

« Aaron Swartz mérite énormément de crédit pour ses retours sur la conception de la syntaxe de formatage de Markdown. Markdown est bien meilleur grâce aux idées, retours et tests d'Aaron. »
— John Gruber

Fragmentation : L'ère du Far West (2005-2012)

Comme le script Perl original de Gruber avait quelques ambiguïtés et ne couvrait pas tous les cas d'utilisation (comme les tableaux ou les définitions mathématiques), la communauté a commencé à créer ses propres implémentations dans d'autres langages comme Python, Ruby, PHP et JavaScript.

Cela a conduit à une fragmentation. Les développeurs ont ajouté des fonctionnalités supplémentaires qui n'existaient pas dans la spécification originale. Les « Saveurs » de Markdown sont apparues :

MultiMarkdown (2005) — Créé par Fletcher Penney, a ajouté le support des tableaux, notes de bas de page, métadonnées et export LaTeX.

PHP Markdown Extra — Une version populaire pour les CMS basés sur PHP (comme WordPress et Drupal), créée par Michel Fortin.

GitHub Flavored Markdown (GFM) — Peut-être la variante la plus influente. GitHub a adopté Markdown pour ses fichiers README.md, commentaires et issues, ajoutant la coloration syntaxique pour les blocs de code, les listes de tâches et les tableaux. La popularité de GitHub a consolidé Markdown comme outil essentiel pour les développeurs.

Chronologie

2004

Lancement original

John Gruber publie Markdown 1.0.1 le 17 décembre sur le blog Daring Fireball, incluant un script Perl pour la conversion et un support initial pour Movable Type, Blosxom et BBEdit.

2004

PHP Markdown

Michel Fortin porte Markdown en PHP, créant l'une des premières implémentations alternatives. Plus tard, il ajoute des extensions comme les tableaux et notes de bas de page dans PHP Markdown Extra.

2008

GitHub adopte Markdown

GitHub commence à utiliser Markdown pour les README et la documentation, popularisant massivement la syntaxe parmi les développeurs du monde entier.

2012

GitHub Flavored Markdown (GFM)

GitHub crée sa propre extension basée sur le parser Sundown, ajoutant tableaux, coloration syntaxique, listes de tâches et autolinks.

2012

Début de la standardisation

Avec tant de « saveurs » différentes, un document Markdown pouvait être rendu différemment selon le site ou l'application utilisée. Cela frustrait des entreprises comme Stack Exchange et GitHub. Jeff Atwood (co-fondateur de Stack Overflow) et John MacFarlane initient des efforts pour créer une spécification standard rigoureuse.

2014

CommonMark

Initialement appelé « Standard Markdown », le projet a fait face à l'opposition de John Gruber, qui arguait que son Markdown était le standard et ne voulait pas que des tiers s'approprient le nom. Après le conflit, il a été renommé CommonMark. La spécification fournit des suites de tests pour garantir que Markdown se comporte de la même manière sur n'importe quel système.

2016

Enregistrement IETF

L'IETF publie les RFC 7763 et RFC 7764, enregistrant officiellement le type de média text/markdown.

2017

GFM basé sur CommonMark

GitHub abandonne Sundown et publie la spécification formelle de GitHub Flavored Markdown basée sur CommonMark, utilisant la bibliothèque cmark.

Standard universel

Standard universel

Extensions de fichiers : .md et .markdown. Utilisé sur des millions de sites, incluant Stack Overflow, Reddit, Discord, Notion et Obsidian.

L'état actuel

Aujourd'hui, Markdown a transcendé le monde de la programmation et est omniprésent dans la culture numérique. Ses principales utilisations incluent :

Documentation technique — C'est le standard de l'industrie. Des sites comme Microsoft Learn, Google Cloud Docs et la documentation GitHub sont écrits en Markdown.

Générateurs de sites statiques (SSG) — Des outils comme Jekyll, Hugo et Gatsby utilisent des fichiers Markdown pour générer des sites entiers.

Notes et productivité — Une nouvelle vague d'applications « second cerveau » comme Obsidian, Notion, Roam Research et Logseq utilisent Markdown pour le stockage des données, garantissant que les utilisateurs ne soient pas enfermés dans des formats propriétaires.

Science des données — Les Jupyter Notebooks, outil essentiel pour les data scientists (Python/R), utilisent des cellules Markdown pour expliquer le code et présenter les résultats.

Messageries — Slack, Discord, WhatsApp et Telegram supportent des sous-ensembles de Markdown pour le formatage des messages.

Avenir et héritage

Markdown s'est avéré être une technologie résiliente. Contrairement aux formats propriétaires (comme .doc) qui changent et se cassent avec le temps, un fichier Markdown écrit en 2004 est toujours parfaitement lisible aujourd'hui par n'importe quel humain ou ordinateur.

La tendance actuelle pointe vers le « Markdown étendu », comme MDX, qui permet d'utiliser des composants React dans Markdown, fusionnant la simplicité d'écriture avec l'interactivité du web moderne.

« Markdown a démocratisé la publication web, permettant aux écrivains de se concentrer sur le contenu sans se soucier du design, et permettant aux développeurs de créer une documentation belle et fonctionnelle sans le poids de traitements de texte complexes. »

L'héritage continue

Plus de deux décennies après sa création, Markdown est omniprésent. La simplicité recherchée par Gruber et Swartz est devenue réalité : des millions de personnes écrivent en Markdown chaque jour, souvent sans même savoir qu'elles utilisent un langage de balisage.

La vision d'Aaron Swartz d'un Internet ouvert et accessible continue de vivre dans l'esprit de Markdown : un outil gratuit, simple qui démocratise la création de contenu pour le web. Son engagement pour la justice sociale et l'accès libre à l'information a profondément influencé la façon dont nous partageons les connaissances en ligne.

Le script original Markdown.pl n'a pas été mis à jour depuis 2004, mais son héritage perdure dans des centaines d'implémentations dans pratiquement tous les langages de programmation, de C) à JavaScript, de Python à Go.

Références et liens officiels