Vérifier la structure Markdown avant publication

Collez un README ou un brouillon de documentation pour voir le plan des titres et les remarques : sauts de niveau, ancres répétées, blocs de code non fermés, liens vides ou sans définition et espaces en fin de ligne. Le Markdown est lu comme du texte, jamais rendu, et aucun lien n’est ouvert.

Fonctionne localement dans votre navigateur
Tout dans cet outil est traité dans ce navigateur. KivTools ne télécharge pas, ne stocke pas et n’appelle aucune API tierce avec votre entrée.
Source MarkdownVérifie les problèmes structurels sans rendu, téléchargement ou ouverture de liens.

Comment vérifier un document Markdown avant publication

Le contrôle lit comme du texte le Markdown que vous collez et répond avec trois éléments : le plan des titres, les compteurs de titres, de liens et de blocs de code, puis les remarques structurelles qu’il peut prouver à partir du source. Il ne rend jamais le document, ne le téléverse pas et n’ouvre aucun lien : un brouillon qui n’est pas encore à partager se vérifie donc sur place.

Tout s’exécute dans la page. Dans une session mesurée, les seules requêtes sorties du navigateur étaient celles de l’analyse d’audience du site : le brouillon, les liens et le plan sont restés dans l’onglet, ce qui explique aussi que le contrôle continue de fonctionner sans connexion.

  1. Collez le README, le guide ou le brouillon de documentation dans Source Markdown, ou choisissez Charger un exemple pour partir d’un document qui contient déjà un titre répété et un lien vide.
  2. Choisissez Vérifier le Markdown. Le plan liste chaque titre avec l’ancre générée et son numéro de ligne, le rapport rassemble ce que chaque règle a trouvé et les compteurs affichent les totaux de titres, de liens et de blocs de code.
  3. Lisez les remarques dans l’ordre : saut de niveau de titre, ancre utilisée deux fois, bloc de code non fermé, lien au texte vide ou sans destination, lien de référence sans définition, ligne terminée par des espaces autres que les deux du saut de ligne, dièse sans espace derrière et document sans titre de niveau un.
  4. Choisissez Copier pour récupérer le rapport en texte brut, ou Télécharger pour l’enregistrer en markdown-report.txt à côté du fichier source.
  5. Choisissez Effacer pour vider les deux panneaux avant le document suivant.

Ce que le contrôle lit, et ce qu’il laisse de côté

Ce qui compte comme lien

Les liens en ligne sont comptés avec un titre facultatif, comme dans [texte](https://example.com "titre"), et avec un niveau de parenthèses dans la destination, ce dont les URL à la Wikipédia ont besoin. Les liens de référence comptent lorsque le document définit le libellé quelque part : la forme complète [texte][ref], la forme repliée [texte][] et la forme abrégée [ref] se résolvent contre une ligne telle que [ref]: https://example.com, avec ou sans titre. Les liens automatiques — <https://example.com> et <mailto:docs@example.com> — comptent également.

Trois éléments qui ressemblent à des liens sont volontairement écartés : les images écrites ![alt](image.png), la syntaxe de lien dans le code en ligne comme `[texte](url)`, et les balises HTML telles que <a href="https://example.com">, qui sont du balisage et non un lien automatique. Un lien de référence sans définition est signalé au lieu d’être compté.

Comment titres, blocs et front matter sont lus

Les deux styles de titre sont reconnus : ATX (de # à ######, avec jusqu’à trois espaces d’indentation et un éventuel rappel de #) et setext (une ligne de paragraphe soulignée par ==== pour le niveau un ou ---- pour le niveau deux). Les ancres sont générées comme le font les générateurs de site statique — minuscules, ponctuation retirée, espaces changés en tirets — si bien que « Install now! » et « Install now? » se rejoignent sur #install-now, et le second est signalé comme ancre répétée.

Un bloc ouvert par ``` ou ~~~ cache son contenu à toutes les autres règles, et se ferme par une ligne finale au moins aussi longue que celle d’ouverture ; un bloc non fermé est signalé à la ligne où il a commencé. Un document qui commence par une ligne --- est lu comme front matter YAML jusqu’à la ligne --- ou ... suivante : les deux-points, les crochets et les espaces finaux des métadonnées ne sont donc pas signalés comme du texte.

Ce que le contrôle ne fait pas

Il ne rend pas le Markdown, donc il ne peut pas montrer l’aspect final de la page, et il ne demande pas les cibles des liens : une URL injoignable n’est jamais signalée. Il vérifie les règles décrites ici et rien d’autre : longueur de ligne, style des puces, lignes vides autour des blocs, alignement des tableaux et les autres règles de style d’un linter complet restent hors de son périmètre, et un bloc de code indenté de quatre espaces est lu comme du texte ordinaire.

Un document de 4000 lignes contenant 4000 liens a été analysé en environ 0,6 s dans un navigateur de bureau, et le travail se fait au clic sur le bouton, pas pendant la frappe. Pour contrôler tout un dépôt avec un jeu de règles figé, un linter en ligne de commande reste le meilleur outil ; cette page répond pour un seul brouillon, sans le téléverser.

Outils récents :