MDViewer

Tour des fonctionnalités

2026-07-27 1521 mots 8 min de lecture

Présentation complète du rendu, du confort de lecture, de la recherche, de l’édition, de l’export et du fonctionnement interne.

Fonctionnalités

Rendu

Syntaxe Markdown

En plus de CommonMark et de GitHub Flavored Markdown, sont également pris en charge :

Syntaxe Écriture Remarques
Tableaux | a | b | Trois alignements ; les en-têtes trient
Listes de tâches - [x] fait Les éléments terminés sont barrés automatiquement
Barré ~~texte~~ GFM
Surlignage ==texte== Effet surligneur jaune
Insertion ++texte++ Souligné
Indice H~2~O
Exposant x^2^
Notes de bas de page texte[^1] Lien dans les deux sens
Listes de définitions terme, retour à la ligne, : explication
Abréviations *[HTML]: HyperText... Forme complète au survol
Émoji :rocket: Les noms deviennent des émoji
Liens automatiques <https://…> Les URL brutes sont aussi détectées

Formules mathématiques

Rendues par KaTeX , bien plus rapide que MathJax.

  • En ligne : $E = mc^2$ ou \(E = mc^2\)
  • En bloc : $$…$$ ou \[…\]
  • Matrices, alignement multiligne avec aligned, fonctions par morceaux avec cases, sommes et intégrales, lettres grecques et symboles des paquets courants

Le lecteur protège le caractère $ : des prix comme $100 ou $5 - $10 ne sont pas pris pour des formules.

Diagrammes

Rendus par Mermaid ; il suffit de les écrire dans un bloc ```mermaid. Diagrammes de flux, de séquence, de classes, d’états, ER, Gantt, camemberts, parcours utilisateur, cartes mentales, graphes Git, quadrants et frises chronologiques sont pris en charge.

Le thème des diagrammes est lié aux variables de thème du site : passer en mode sombre les redessine avec les couleurs correspondantes. Au survol, le coin supérieur droit permet de copier la source ou de télécharger le SVG.

Coloration syntaxique

  • Côté serveur, Chroma colore les pages de documentation ; côté client, c’est highlight.js (le lecteur). Les deux partagent les mêmes variables de couleur, le rendu est donc identique
  • Chaque bloc de code propose une étiquette de langage, un bouton de copie, un interrupteur de numéros de ligne et un interrupteur de retour à la ligne
  • Les blocs de plus de 24 lignes se replient d’eux-mêmes ; un clic les déplie
  • title permet d’indiquer le nom du fichier :
1
2
3
```js {title="app.js"}
const a = 1;
```

Encadrés

Les deux notations fonctionnent. Style GitHub (disponible dans cette documentation et dans le lecteur) :

1
2
3
4
5
6
7
8
> [!NOTE]
> Une remarque générale

> [!TIP]
> Un conseil pratique

> [!WARNING]
> Un point de vigilance

Style conteneur (lecteur uniquement ; les pages de documentation ne l’interprètent pas) :

1
2
3
::: tip Titre personnalisé
La syntaxe conteneur prend en charge note / tip / important / warning / caution / danger / details
:::

Six types : NOTE TIP IMPORTANT WARNING CAUTION DANGER.

Front matter

YAML (---), TOML (+++) et JSON ({}) sont tous reconnus. title, description, date, author, tags et categories sont remontés dans l’en-tête du document ; le reste est replié dans une carte « Front matter ».

Confort de lecture

Thèmes

  • Clair, sombre et suivi du système ; D fait défiler les options
  • Un script inline applique le thème avant le premier affichage : aucun flash blanc
  • En mode sombre, les couleurs du code, des diagrammes et des formules s’ajustent ensemble

Typographie

Appuyez sur , pour ouvrir le panneau de réglages :

Réglage Plage
Taille du texte 13 – 22 px
Interligne 1,40 – 2,40
Largeur de colonne Étroite / normale / large / pleine
Police du texte Sans serif / serif
Numéros de ligne Afficher / masquer

Les réglages sont stockés dans le localStorage du navigateur et persistent d’une page et d’une session à l’autre.

  • Arborescence : dossiers repliables, filtrage en direct par nom de fichier
  • Plan : niveaux 2 à 4, avec IntersectionObserver pour surligner la section courante pendant le défilement ; le plan défile lui aussi pour suivre
  • Progression : une barre dégradée en haut, plus un bouton de retour en haut au-delà de 600 px
  • Mémoire de position : la position de défilement de chaque document est enregistrée en proportion et restaurée au retour
  • Précédent / suivant : J et K parcourent la liste des fichiers

Images

Cliquez pour ouvrir la visionneuse : molette pour zoomer, glisser pour déplacer, double-clic pour basculer 1×/2×, contrôle au clavier avec + - 0, et téléchargement direct.

Recherche

Recherche multi-fichiers dans le lecteur

Appuyez sur / ou Ctrl+K. Une fois le dossier chargé, tous les fichiers Markdown sont lus en arrière-plan pour construire un index flou Fuse.js , pondéré titre > nom de fichier > corps > chemin. Les résultats affichent le chemin et un extrait de contexte surligné ; les flèches sélectionnent, Entrée ouvre.

Recherche dans un document

Appuyez sur F ou Ctrl+F pour surligner les correspondances une à une dans le document courant. Entrée va à la suivante, Maj+Entrée à la précédente, avec un compteur « n sur m ».

Recherche globale

Les pages de documentation sont indexées à l’avance ; le champ de recherche interroge cet index entièrement dans le navigateur, sans aucune requête au serveur.

Édition

Appuyez sur M pour passer en mode édition : la source Markdown à gauche, l’aperçu en direct à droite (avec un délai de 260 ms). Le séparateur central se déplace à la souris et sa position est mémorisée dans les réglages.

  • Barre d’outils : titres, gras, italique, barré, code en ligne, trois types de listes, citation, lien, image, tableau, bloc de code, formule, Mermaid, encadré et ligne de séparation. Un second clic retire un format déjà appliqué
  • Clavier : Ctrl+B/I/K pour gras, italique et lien ; Tab indente une sélection de plusieurs lignes ; Entrée poursuit la liste en incrémentant la numérotation, et y met fin sur un élément vide. Toutes les opérations passent par execCommand, ce qui préserve la pile d’annulation native du navigateur
  • Enregistrement : Ctrl+S réécrit le fichier local d’origine. Au premier enregistrement, le navigateur demande une autorisation et fait passer l’accès de lecture seule à lecture-écriture
  • Brouillons : le contenu est enregistré dans IndexedDB après 1,2 s d’inactivité. Changer de fichier, fermer l’espace de travail ou fermer la page déclenchent une confirmation s’il reste des modifications non enregistrées ; à la prochaine ouverture du fichier, le brouillon vous est proposé
  • Cache Mermaid : l’aperçu met en cache les diagrammes rendus par leur source, de sorte que la frappe ne les redessine pas en continu

Note

La réécriture du fichier d’origine repose sur la File System Access API, prise en charge uniquement par Chrome, Edge et navigateurs similaires. Sur Firefox et Safari — et pour les espaces de travail ouverts par glisser-déposer — l’enregistrement se transforme automatiquement en téléchargement d’un fichier .md.

Export

Méthode Raccourci Résultat
Export HTML E Un seul fichier .html avec CSS intégré et images en data URI ; il s’ouvre hors ligne
Export PDF P Une boîte d’options puis la chaîne d’impression du navigateur, avec du texte vectoriel sélectionnable et indexable

L’export PDF permet de régler le format de papier (A4 / Letter / A5), l’orientation, les marges, l’échelle du texte, une page de titre, un sommaire cliquable, le saut de page aux H1 ou aux H2, le retour à la ligne du code et l’impression des URL des liens externes. En thème sombre, les diagrammes Mermaid sont temporairement redessinés en clair pour ne pas imprimer du texte pâle sur fond sombre.

Important

La dernière étape est la boîte de dialogue d’impression du navigateur : choisissez « Enregistrer au format PDF » comme destination. Les numéros de page et les en-têtes dépendent de l’option « En-têtes et pieds de page » de cette boîte de dialogue — Chrome ne prend pas en charge les boîtes de marge CSS @page, il est donc impossible de dessiner des numéros de page en CSS seul.

Fonctionnement interne

Dépendances et poids

Module Rôle Poids Chargement
Bundle principal markdown-it et ses plugins, highlight.js, Fuse.js, code applicatif ~505 Ko Au premier affichage
Bundle documentation Script d’amélioration et recherche ~60 Ko Au premier affichage
KaTeX Formules ~261 Ko + 660 Ko de polices Quand une formule apparaît
Mermaid Diagrammes ~3,3 Mo Quand un diagramme apparaît

Toutes les dépendances sont intégrées au build, si bien qu’aucun CDN tiers n’est sollicité à l’exécution. Le site peut être déployé entièrement hors ligne, et aucune ressource externe ne peut être bloquée.

Confidentialité

  • La lecture et l’écriture des fichiers se font intégralement dans le navigateur ; rien n’est jamais envoyé
  • Aucun script tiers, aucune analytique, aucun traceur, aucun cookie
  • Les réglages vivent dans localStorage ; les descripteurs de dossiers, les positions de lecture et les brouillons dans IndexedDB — le tout sur votre machine

Langues

L’interface est disponible en anglais, chinois simplifié, chinois traditionnel, japonais, espagnol et français. L’anglais occupe la racine ; les autres se trouvent sous /zh/, /zh-hant/, /ja/, /es/ et /fr/, chacun avec sa propre URL partageable. L’icône de globe dans l’en-tête permet de changer à tout moment et mène à la traduction de la page courante lorsqu’elle existe.

Les textes d’interface sont regroupés dans data/i18n/<lang>.toml, partagés par les gabarits et les scripts du navigateur ; une page ne charge que les textes de sa langue. À la première visite, si la langue du navigateur diffère de celle de la page, une invite de changement apparaît en bas — définitivement fermable.

Voir aussi