Générateur de table Markdown, gratuit

Construisez des tables Markdown visuellement avec un éditeur de type tableur.

Aucune donnée ne quitte votre appareil
3 × 3

Cliquez sur L / C / R sous chaque en-tête de colonne pour définir l'alignement (gauche, centre, droite).

Sortie Markdown

À propos des tables Markdown

Les tables Markdown utilisent des barres verticales (|) et des tirets (-) pour créer des données tabulaires structurées en texte brut. Elles sont prises en charge par GitHub, GitLab, Reddit et la plupart des rendus Markdown. La ligne d'alignement utilise des deux-points pour indiquer un alignement à gauche, au centre ou à droite pour chaque colonne.

Écrire des tables Markdown à la main peut être fastidieux et source d'erreurs. Cet éditeur visuel vous permet de saisir des données dans une grille de type tableur et génère du Markdown correctement formaté en temps réel. Tout le traitement se fait dans votre navigateur.

La syntaxe pipe-table, mécaniquement

Une table GFM consiste en trois parties : une ligne d'en-tête avec des cellules séparées par des pipes (|), une ligne de délimiteurs juste en dessous avec des tirets (---) pour chaque colonne, et zéro ou plusieurs lignes de données avec la même structure séparée par pipes. Les pipes en tête et en queue de chaque ligne sont optionnels mais conventionnellement inclus pour la lisibilité. L'alignement des colonnes est spécifié par des deux-points dans la ligne de délimiteurs : :--- pour aligner à gauche (le défaut), :---: pour centrer, ---: pour aligner à droite. La table viable minimale ressemble à ceci en source : | Header | Header | en ligne 1, | --- | --- | en ligne 2, | Cell | Cell | en ligne 3 et suivantes. Le contenu des cellules peut inclure n'importe quel formatage Markdown inline (gras, italique, liens, code inline, images) mais ne peut pas inclure d'éléments de niveau bloc (listes, blocs de code, citations). Les sauts de ligne dans une cellule doivent être encodés comme des balises <br> plutôt que des sauts de ligne littéraux, puisque les sauts de ligne littéraux briseraient la structure du tableau. Les caractères pipe à l'intérieur du contenu d'une cellule doivent être échappés comme \|, sinon le parseur les traite comme des séparateurs de colonne et le compte de colonnes de la ligne devient faux. La plupart des parseurs tolèrent les largeurs de colonne désalignées ; la source | a | b | et | aaa | b | se rendent à l'identique, même si la seconde a l'air plus « correcte » en source. Cet outil émet toujours une source à largeur alignée pour la lisibilité, mais elle se rend comme une source compacte.

Où les tables s'affichent et où elles ne s'affichent pas

S'affiche correctement : GitHub (issues, pull requests, READMEs, pages wiki, discussions, code reviews, commentaires partout), GitLab (mêmes surfaces), Bitbucket, Stack Overflow, Reddit (quand GFM est activé dans le subreddit, ce qui est le cas de la plupart), Discord (uniquement dans le contexte des blocs de code, les tables GFM complètes ne se rendent pas dans les messages de chat mais markdown-it les traite sur la surface docs), Notion (avec son propre import de tables), Obsidian, Logseq, Bear, la plupart des générateurs de sites statiques (Hugo, Jekyll, Eleventy, Astro avec le plugin remark-gfm, Next.js MDX), l'aperçu de VS Code, GitHub Pages, Read the Docs (selon la configuration). Ne s'affiche pas correctement : CommonMark strict (Pandoc avec le reader commonmark et sans extensions, parseur C Discount sans le flag pipe-table), Slack (rend un sous-ensemble de Markdown mais pas les tables), la plupart des clients e-mail (le HTML rendu en e-mail est structurellement correct mais à styles inline, pas du Markdown), les installations WordPress plus anciennes sans plugin Markdown. La règle générale : si votre destination est une plateforme orientée développeur (famille GitHub, documentation technique), les tables GFM fonctionnent. Si votre destination est une plateforme grand public (Slack, e-mail, Twitter), supposez que les tables ne se rendront pas et soit pré-rendez en image, soit réécrivez en liste.

Syntaxes de tables Markdown alternatives

Le format pipe-table domine grâce à la portée de GitHub, mais ce n'est pas la seule syntaxe de tables Markdown. Les tables simples Pandoc utilisent des séparateurs ligne-blanche-et-tirets et alignent les colonnes par position visuelle plutôt que par pipes, bien plus lisibles pour des tables étroites mais plus difficiles à écrire à la main. Les tables multi-ligne Pandoc supportent des cellules qui s'étendent sur plusieurs lignes, important pour du long contenu descriptif qui ne tient pas sur une ligne. Les tables grid Pandoc utilisent des bordures ASCII (+---+---+) qui ont l'air pénibles à maintenir à la main mais sont faciles à émettre pour des outils. reStructuredText (Sphinx) utilise les tables grid exclusivement, la documentation de tout projet Python est écrite ainsi. AsciiDoc utilise une syntaxe pipe-préfixe différente (|===) optimisée pour l'écriture de livres techniques. HTML dans Markdown est toujours disponible comme échappatoire : tout processeur Markdown laisse passer le HTML brut, donc quand les pipe tables ne suffisent pas vous pouvez insérer un vrai <table> avec spanning complet de lignes/colonnes, balisage sémantique et style CSS. La syntaxe pipe-table que cet outil génère est du style GFM, le choix le plus compatible pour l'écosystème développeur moderne.

Utilisations courantes

Le problème de largeur et autres contraintes

Les pipe tables ont plusieurs limitations inhérentes à connaître. La largeur de colonne est contrainte par le contenu de cellule le plus long, une URL longue ou un paragraphe descriptif dans une cellule force toute la colonne à s'élargir, ce qui peut produire des tables ingérables qui ne tiennent pas sur les largeurs standards de page documentaire. La solution est soit de tronquer le contenu long (en liant ailleurs pour le détail), soit d'utiliser du HTML inline si vous avez besoin de cellules qui s'enroulent. Pas de spanning de ligne ou de colonne, chaque cellule occupe exactement une ligne et une colonne. Les tables complexes avec cellules fusionnées nécessitent du vrai HTML <table> avec attributs rowspan / colspan. Pas de tables imbriquées, vous ne pouvez pas mettre une table dans la cellule d'une autre table en Markdown. Pas de contenu de niveau bloc dans les cellules, pas de listes, pas de blocs de code, pas de citations à l'intérieur d'une cellule. Le contenu inline (gras, italique, code inline, liens, images) est ok mais tout ce qui est multi-ligne nécessite des balises <br>. La ligne d'en-tête est obligatoire en GFM, il n'y a pas de syntaxe de table sans en-tête. Si vous voulez une table sans en-tête visible, laissez les cellules d'en-tête vides mais la ligne doit toujours être présente. L'alignement s'applique par colonne à toute la colonne, vous ne pouvez pas avoir d'alignements différents pour des cellules différentes de la même colonne. Pour des layouts de tables sophistiqués qui dépassent ces contraintes, le bon outil est HTML dans votre source Markdown, pas Markdown lui-même.

Conversion CSV ↔ Markdown

La plupart des données tabulaires du monde réel vivent dans des fichiers CSV (exports de tableur, réponses d'API, sorties d'analyse de logs), convertir vers et depuis Markdown est un workflow courant. CSV → Markdown : parser le CSV (en gérant les champs quotés avec virgules incorporées, guillemets échappés, sauts de ligne dans les champs), puis formater chaque ligne comme | valeur | valeur | avec les lignes d'en-tête et de délimiteur appropriées. La plupart des générateurs de tables y compris celui-ci offrent l'import CSV ; pour les conversions ponctuelles vous pouvez aussi utiliser l'outil en ligne de commande csvlook de csvkit qui produit une sortie pipe-format similaire. Markdown → CSV : reparser la table GFM en lignes et colonnes, puis émettre du CSV avec un quotage propre. Utile lors de l'extraction de données structurées de la documentation vers la forme tableur pour analyse. La direction Markdown-vers-CSV est offerte par des outils comme pandoc (avec la bonne combinaison reader/writer), tableconvert.com, et divers utilitaires en ligne de commande. L'aller-retour est avec perte dans une direction, le formatage (gras, liens, images) ne survit à l'étape CSV intact que si vous écrivez le contenu de la cellule CSV comme texte Markdown brut et traitez le résultat comme Markdown à nouveau.

Confidentialité : pourquoi le tout-navigateur compte même ici

Les tables n'ont pas l'air de données sensibles, mais le contenu des tables l'est souvent. Les plans de projet contiennent des décisions de personnel et des fonctionnalités non annoncées. Les tables tarifaires contiennent de l'information commerciale. Les tables comparatives dans des articles de blog non publiés révèlent le positionnement éditorial. Les éléments d'action des notes de réunion contiennent l'information d'affectation et de responsabilité. Les générateurs de tables côté serveur téléversent vos données à un tiers où elles restent dans les journaux. Cet outil tourne entièrement dans votre navigateur via JavaScript, vérifiez dans l'onglet Network de DevTools en éditant des cellules, ou mettez la page hors ligne (mode avion) après chargement et l'éditeur fonctionne encore. Sûr pour des brouillons de documentation non publiés, planification de projet interne, tables comparatives pour des articles de blog pas encore publiés, ou tout contenu de table que vous ne voulez pas voir copié sur le disque dur d'un inconnu.

Questions fréquentes

Quelle syntaxe de table Markdown est générée ?

Il génère la syntaxe standard GFM (GitHub Flavored Markdown) avec barres verticales, une ligne de séparation de tirets et des deux-points optionnels pour l'alignement. Cette syntaxe fonctionne sur GitHub, GitLab, Reddit, Jekyll, Hugo et la plupart des processeurs Markdown.

Comment définir l'alignement des colonnes ?

Cliquez sur les boutons L (gauche), C (centre) ou R (droite) sous chaque en-tête de colonne. L'alignement à gauche utilise :---, le centre :---: et la droite ---: dans la ligne de séparation.

Puis-je importer depuis CSV ou coller depuis un tableur ?

L'import CSV est sur la feuille de route. Pour l'instant, coller-depuis-Excel/Google Sheets marche souvent parce que la plupart des apps de tableur mettent des données séparées par tabulations dans le presse-papiers, que vous pouvez coller dans des cellules individuelles. Pour un import CSV en masse sans collage manuel, des outils en ligne de commande comme csvlook de csvkit produisent une sortie table-GFM similaire, ou pandoc peut convertir CSV en Markdown directement avec pandoc --from csv --to gfm input.csv.

Et les cellules fusionnées, tables imbriquées ou contenu bloc dans les cellules ?

Les pipe tables GFM ne supportent pas ces fonctionnalités. Chaque cellule occupe exactement une ligne et une colonne ; pas de rowspan ni colspan. Pas de tables imbriquées. Pas de contenu de niveau bloc (listes, blocs de code, citations) à l'intérieur d'une cellule, seulement du contenu inline (gras, italique, code inline, liens, images, sauts de ligne via <br>). Pour des layouts de tables sophistiqués qui dépassent ces contraintes, intégrez du HTML <table> brut directement dans votre source Markdown, tout processeur Markdown laisse passer le HTML inchangé. Le compromis est que la source devient bien plus difficile à lire et éditer à la main.

Y a-t-il une limite de lignes ou de colonnes ?

Vous pouvez avoir jusqu'à 20 colonnes et 100 lignes. Pour la plupart des documentations et fichiers README, c'est plus que suffisant. La table se met à jour en temps réel à mesure que vous tapez.

Le contenu de mes tables est-il envoyé quelque part ?

Non. La génération tourne entièrement dans votre navigateur via JavaScript. Les cellules que vous éditez et la sortie Markdown ne traversent jamais le réseau, vérifiez dans l'onglet Network de DevTools en tapant, ou mettez la page hors ligne (mode avion) après chargement et l'éditeur fonctionne encore. Sûr pour des brouillons de documentation non publiés, plans de projet internes, tables comparatives de tarifs pas encore publiées, ou tout contenu tabulaire que vous ne voulez pas voir copié sur le disque dur d'un inconnu.

Outils associés