Aller au contenu principal
LisibleDocumentation
Previewer en direct

Rédiger et publier

Markdown enrichi

Utiliser la typographie, les tableaux, callouts, blocs de code, formules et diagrammes pris en charge.

Lisible prend en charge Markdown standard, GFM et plusieurs extensions adaptées aux articles techniques. Chaque exemple ci-dessous présente d’abord le code à écrire, puis son rendu réel. Le comportement reste identique dans les six variantes, même si leur style change. Pour ajouter de vraies interactions, poursuivez avec Composants MDX.

Titres et paragraphes

Utilisez un seul titre de niveau 1 dans le frontmatter avec title. Dans le corps de l’article, commencez à ## pour les grandes sections, puis descendez sans sauter de niveau. Les titres de niveaux 2 à 4 reçoivent automatiquement une ancre copiable.

Code

#### Un titre d’exemple
Un paragraphe reste une suite de lignes sans ligne vide.
Une ligne vide commence un nouveau paragraphe.

Rendu

Un titre d’exemple

Un paragraphe reste une suite de lignes sans ligne vide. Une ligne vide commence un nouveau paragraphe.

Mise en forme inline

L’emphase sert à structurer une phrase, pas à remplacer les titres. GFM ajoute le texte barré. Le code inline convient aux commandes courtes, noms de fichiers et identifiants. Les balises HTML mark et kbd sont acceptées dans MDX pour un surlignage ou une touche de clavier.

Code

Un texte peut être **important**, *nuancé*, ~~obsolète~~ ou contenir `const value = 1`.
Appuyez sur <kbd>Ctrl</kbd> + <kbd>K</kbd> pour ouvrir la <mark>recherche</mark>.

Rendu

Un texte peut être important, nuancé, obsolète ou contenir const value = 1.

Appuyez sur Ctrl + K pour ouvrir la recherche.

Liens

Le texte du lien doit décrire sa destination. Utilisez une route commençant par / pour une page interne et une URL absolue pour un site externe. Un titre facultatif peut compléter le lien au survol sans remplacer son libellé.

Code

Consultez [le modèle de contenu](/docs/authoring/content/) ou la [documentation Astro](https://docs.astro.build/ "Documentation officielle Astro").

Rendu

Consultez le modèle de contenu ou la documentation Astro.

Images

Placez les fichiers partagés dans public/images, puis référencez-les depuis la racine. Le texte alternatif décrit l’information portée par l’image ; laissez-le vide uniquement pour une image strictement décorative. Le titre entre guillemets est facultatif.

Les dimensions ne sont pas à votre charge : au build, Lisible lit la taille intrinsèque de toute image locale (SVG, PNG, JPEG, GIF) et pose width, height, loading="lazy" et decoding="async" sur la balise produite. La place est donc réservée avant le chargement et l’image ne décale jamais la mise en page.

Code

![Pipeline en îlots Astro](/images/demo-ilots.svg "Pipeline de rendu")

Rendu

Pipeline en îlots Astro

Listes

Markdown gère les listes à puces, numérotées et imbriquées. GFM ajoute les tâches avec - [ ] et - [x] ; les cases rendues sont informatives et ne modifient pas le fichier source.

Code

- Écrire le brouillon
- Ajouter les exemples
- Relire le contenu
1. Construire le site
2. Vérifier les liens
- [x] Documentation rédigée
- [ ] Relecture terminée

Rendu

  • Écrire le brouillon
    • Ajouter les exemples
  • Relire le contenu
  1. Construire le site
  2. Vérifier les liens
  • Documentation rédigée
  • Relecture terminée

Citations

Préfixez chaque paragraphe cité avec >. Une seconde citation imbriquée utilise >>. Ajoutez la source dans le texte ou dans un lien : Markdown ne l’invente pas.

Code

> La performance est une fonctionnalité éditoriale.
>
> Équipe Lisible

Rendu

La performance est une fonctionnalité éditoriale.

Équipe Lisible

Tableaux

La deuxième ligne définit l’alignement de chaque colonne : :--- à gauche, :---: au centre et ---: à droite. Les tableaux larges deviennent défilables horizontalement sur petit écran.

Code

| Variante | Usage | Articles |
| :--- | :---: | ---: |
| Organique | Éditorial | 12 |
| Terminal | Technique | 8 |

Rendu

VarianteUsageArticles
OrganiqueÉditorial12
TerminalTechnique8

Notes de bas de page

Une référence [^id] pointe vers une définition portant le même identifiant. Les définitions peuvent être placées près du paragraphe source ; le moteur les rassemble automatiquement en fin de page et ajoute les liens de retour.

Code

Les îlots réduisent le JavaScript envoyé au navigateur.[^islands]
[^islands]: Astro hydrate uniquement les composants marqués par une directive client.

Rendu

Les îlots réduisent le JavaScript envoyé au navigateur.1

Détails repliables

La balise HTML native details masque un complément non essentiel. Le summary doit annoncer clairement ce qui sera révélé. Ajoutez open pour afficher le contenu dès le chargement.

Code

<details>
<summary>Afficher la commande complète</summary>
Exécutez `bun run check:all` avant le déploiement.
</details>

Rendu

Afficher la commande complète

Exécutez bun run check:all avant le déploiement.

Séparateur horizontal

Trois tirets seuls sur une ligne créent une séparation thématique. Réservez-la aux changements de sujet importants ; les titres suffisent dans la plupart des sections.

Code

Fin de la première partie.
---
Début de la partie suivante.

Rendu

Fin de la première partie.


Début de la partie suivante.

Callouts

Un callout met en avant une information qui mérite un niveau d’attention particulier. Les variantes disponibles sont note, tip, important, warning et caution. Le texte entre crochets remplace le titre traduit par défaut.

VarianteUsage recommandé
notecontexte ou précision utile
tipconseil facultatif qui facilite une tâche
importantinformation indispensable à la réussite
warningrisque récupérable ou comportement inattendu
cautionrisque de perte, sécurité ou action difficile à annuler

Code

:::note[Contexte]
Les brouillons restent visibles en développement.
:::
:::tip[Gain de temps]
Lancez les contrôles avant de pousser.
:::
:::important[Configuration requise]
Définissez l’URL publique avant le build.
:::
:::warning[Avant de déployer]
Vérifiez les liens internes.
:::
:::caution[Action destructive]
Sauvegardez les données avant une migration.
:::

Rendu

Callout repliable

Ajoutez l’attribut {collapse} après le titre pour transformer le callout en zone repliable native. Le contenu reste présent dans la page et ne doit donc jamais contenir un secret.

Code

:::note[Détails facultatifs]{collapse}
Cette explication peut être ouverte à la demande.
:::

Rendu

Détails facultatifs

Cette explication peut être ouverte à la demande.

Blocs Expressive Code

Expressive Code fournit ici la coloration Shiki, le bouton de copie, un badge de langage, les cadres de fichier ou de terminal, les numéros de lignes, le retour à la ligne, les marqueurs de texte et de lignes ainsi que les sections de code repliables. Indiquez toujours le langage juste après les trois accents graves.

MétadonnéeEffet
title="src/file.ts"affiche un onglet de fichier ou le titre du terminal
frame="code" / "terminal" / "none" / "auto"force ou désactive le cadre
showLineNumbers=falsemasque les numéros, déjà masqués par défaut dans les terminaux
startLineNumber=40commence la numérotation visuelle à 40
wrap=truereplie les lignes longues au lieu d’ajouter un défilement horizontal
preserveIndent=false et hangingIndent=2règlent l’indentation des lignes repliées
{2,5-7} ou mark={2,5-7}surligne plusieurs lignes et plages sans sémantique de modification
ins={3-4} / del={8}marque des ajouts ou suppressions
collapse={1-4,10-12}masque une ou plusieurs plages jusqu’à leur ouverture

Lignes, plages et libellés

Un même bloc peut combiner surlignage neutre, ajouts et suppressions. Les sélecteurs acceptent une ligne, plusieurs lignes séparées par des virgules et des plages inclusives. Un texte placé avant : ajoute un libellé visible.

Code

```ts title="src/users.ts" {2,8-9} ins={"Ajout":4-5} del={"Suppression":7}
interface User {
id: string;
name: string;
plan: "free" | "pro";
lastLogin: Date;
}
const legacyUser = loadLegacyUser();
export function displayName(user: User) {
return user.name.trim();
}
```

Rendu

src/users.ts
interface User {
id: string;
name: string;
plan: "free" | "pro";
lastLogin: Date;
}
const legacyUser = loadLegacyUser();
export function displayName(user: User) {
return user.name.trim();
}

Marqueurs dans une ligne

Une chaîne entre guillemets surligne toutes ses occurrences. Préfixez-la avec ins= ou del= pour lui donner le sens d’un ajout ou d’une suppression. Une expression entre /.../ accepte les expressions régulières ; avec un groupe capturant, seule la partie capturée est marquée.

Code

```ts "user.name" ins="cache.get" del="legacyToken" /user(Id|Name)/
const userId = request.params.id;
const legacyToken = request.headers.token;
const cached = cache.get(userId);
return user.name ?? cached;
```

Rendu

const userId = request.params.id;
const legacyToken = request.headers.token;
const cached = cache.get(userId);
return user.name ?? cached;

Diff avec coloration du langage

Le langage diff interprète + et - comme des ajouts et suppressions. Ajoutez lang="ts" pour conserver la coloration TypeScript ; l’espace d’alignement placé devant les lignes inchangées disparaît au rendu.

Code

```diff lang="ts" title="src/config.ts"
export const config = {
- locale: "fr",
+ locale: "en",
trailingSlash: true,
};
```

Rendu

src/config.ts
export const config = {
locale: "fr",
locale: "en",
trailingSlash: true,
};

Sections de code repliables

collapse accepte plusieurs plages. Le projet utilise collapseStyle=collapsible-auto par défaut : le résumé reste disponible après ouverture et se place du côté le plus logique de la plage. Les autres valeurs sont github (ouverture définitive), collapsible-start (résumé au début) et collapsible-end (résumé à la fin). Ajoutez collapsePreserveIndent=false pour aligner le résumé à gauche.

Code

```ts title="src/server.ts" collapse={1-4,8-10} collapseStyle=collapsible-auto
import { logger } from "./logger";
import { metrics } from "./metrics";
const app = createApp();
app.use(logger, metrics);
app.get("/health", () => {
return new Response("ok");
});
app.listen(4321);
console.log("ready");
process.on("SIGTERM", shutdown);
```

Rendu

src/server.ts
4 lignes masquées
import { logger } from "./logger";
import { metrics } from "./metrics";
const app = createApp();
app.use(logger, metrics);
app.get("/health", () => {
return new Response("ok");
});
3 lignes masquées
app.listen(4321);
console.log("ready");
process.on("SIGTERM", shutdown);

Cadres, numéros et retour à la ligne

title crée automatiquement un cadre d’éditeur pour un fichier. Les langages shell utilisent un terminal ; frame="none" convient aux commandes isolées. startLineNumber change seulement les numéros affichés : les marqueurs continuent de compter depuis la première ligne source.

Code

```ts title="src/config.ts" startLineNumber=40 wrap=true preserveIndent=true hangingIndent=2 {2}
export const description =
"Une ligne volontairement longue qui conserve son indentation lorsqu’elle revient à la ligne dans une colonne étroite.";
```
```bash frame="none" showLineNumbers=false
bun run check:all
```

Rendu

src/config.ts
export const description =
"Une ligne volontairement longue qui conserve son indentation lorsqu’elle revient à la ligne dans une colonne étroite.";
bun run check:all

Références : marqueurs de texte et de lignes, cadres, numéros de lignes, retour à la ligne et sections repliables.

Mathématiques

KaTeX rend les expressions LaTeX. Une formule entre deux $ reste dans la ligne ; un bloc entouré de $$ est centré et séparé du paragraphe. Utilisez des commandes LaTeX prises en charge par KaTeX.

Code

La relation $E = mc^2$ est affichée dans la phrase.
$$
L = -\sum_{i=1}^{n} y_i \log(\hat{y}_i)
$$

Rendu

La relation E=mc2E = mc^2 est affichée dans la phrase.

L=i=1nyilog(y^i)L = -\sum_{i=1}^{n} y_i \log(\hat{y}_i)

Mermaid

Une fence mermaid est transformée en diagramme interactif. La barre d’outils permet le zoom, le déplacement, la réinitialisation, la copie de la source et le plein écran ; les couleurs se synchronisent avec le thème clair ou sombre. Le plein écran utilise l’API du navigateur lorsqu’elle existe, sinon un overlay occupant la viewport. Quittez-le avec le bouton de la barre ou Échap. La syntaxe interne reste celle de Mermaid.

Code

```mermaid
flowchart TD
MD[Markdown] --> R[remark]
R --> H[rehype]
H --> HTML[HTML statique]
HTML --> M[Mermaid interactif]
```

Rendu

Diagramme
100%
Rendu du diagramme...
Molette pour zoomer, glisser pour deplacer

Footnotes

  1. Astro hydrate uniquement les composants marqués par une directive client.

Documentation maintenue avec LisibleModifier cette page ↗

Actions

Recherchez une API, une commande ou un concept.