Composants
DocAnvil propose des composants intégrés rendus via des directives délimitées. Ils sont traités avant le rendu Markdown, donc vous pouvez utiliser du Markdown à l'intérieur.
Syntaxe des directives
Les composants utilisent une syntaxe de bloc délimité avec des triples deux-points :
<div class="nom"> <p>Le contenu va ici. <strong>Markdown</strong> est pris en charge.</p> </div>
La clôture ouvrante est ::: suivi du nom du composant et des attributs optionnels entre accolades. La clôture fermante est ::: seul sur sa ligne.
Attributs
Les attributs sont spécifiés à l'intérieur de {...} après le nom du composant :
| Syntaxe | Résultat |
|---|---|
cle="valeur" |
Attribut nommé |
.nomclasse |
Ajoute une classe CSS |
#nomid |
Définit l'ID de l'élément |
Plusieurs attributs peuvent être combinés : :::note{title="Important" .classe-perso #ma-note}
Note
Affiche des blocs d'information avec un thème bleu/indigo.
Note
Ceci est une note avec le titre par défaut.
Titre personnalisé
Les notes acceptent un attribut title. Le titre par défaut est "Note".
Syntaxe brute :
<div class="admonition note"> <p class="admonition-title">Titre personnalisé</p> <p>Votre contenu ici. Prend en charge le <strong>Markdown</strong>.</p> </div>
Warning
Affiche des messages d'avertissement avec un thème orange.
Warning
Ceci est un avertissement avec le titre par défaut.
Zone de danger
Les avertissements acceptent un attribut title. Le titre par défaut est "Warning".
Syntaxe brute :
<div class="admonition warning"> <p class="admonition-title">Zone de danger</p> <p>Votre contenu d'avertissement ici.</p> </div>
Lozenge
Affiche un statut visuel rapide avec un lozenge.
La syntaxe est la suivante : :::lozenge{type="default",text="Défaut"}
| Syntaxe | Résultat |
|---|---|
| Default | Default |
| Warning | Warning |
| In Progress | In Progress |
| Error | Error |
| Success | Success |
Onglets
Regroupez du contenu en onglets commutables. Chaque onglet est défini avec une directive :::tab imbriquée. L'extérieur ::::tabs utilise quatre deux-points pour que les clôtures internes :::tab (trois deux-points) ne ferment pas prématurément le conteneur :
console.log("Bonjour !");
print("Bonjour !")
fn main() { println!("Bonjour !"); }
Syntaxe brute :
<div class="tabs"> <div class="tab-headers"> <button class="tab-header active" data-tab="0">JavaScript</button> <button class="tab-header" data-tab="1">Python</button> </div> <div class="tab-content active" data-tab="0"> <p>Contenu pour l'onglet JavaScript.</p> </div> <div class="tab-content" data-tab="1"> <p>Contenu pour l'onglet Python.</p> </div> </div>
Si aucun title n'est fourni, les onglets sont étiquetés "Tab 1", "Tab 2", etc.
Groupe de code
Un composant d'onglets spécialisé pour comparer des blocs de code entre langages. Chaque bloc de code délimité devient un onglet, avec le nom du langage comme libellé d'onglet :
fn saluer(nom: &str) { println!("Bonjour, {nom} !"); }
def saluer(nom): print(f"Bonjour, {nom} !")
function saluer(nom) { console.log(`Bonjour, ${nom} !`); }
Syntaxe brute :
<div class="code-group"> <div class="tab-headers"> <button class="tab-header active" data-tab="0">rust</button> <button class="tab-header" data-tab="1">python</button> </div> <div class="tab-content active" data-tab="0"><pre><code class="language-rust">fn saluer(nom: &str) { println!("Bonjour, {nom} !"); }</code></pre></div> <div class="tab-content" data-tab="1"><pre><code class="language-python">def saluer(nom): print(f"Bonjour, {nom} !")</code></pre></div> </div>
Diagrammes Mermaid
Rendez des diagrammes et graphiques avec Mermaid.js. Le contenu à l'intérieur d'un bloc :::mermaid est passé directement à Mermaid — il n'est pas traité comme Markdown.
graph TD
A[Écrire du Markdown] --> B[Lancer docanvil build]
B --> C[Site HTML statique]
C --> D[Déployer partout]
Syntaxe brute :
<pre class="mermaid">graph TD A[Écrire du Markdown] --> B[Lancer docanvil build] B --> C[Site HTML statique] C --> D[Déployer partout]</pre>
Mermaid prend en charge de nombreux types de diagrammes incluant les organigrammes, les diagrammes de séquence, les diagrammes de classes, les diagrammes d'état, les diagrammes de Gantt, et plus encore. Consultez la documentation Mermaid pour la référence complète de la syntaxe.
Configuration
Mermaid est activé par défaut. Désactivez-le en définissant enabled = false sous [charts] dans docanvil.toml. Quand il est désactivé, les blocs :::mermaid sont rendus comme du texte préformaté. Consultez Configuration pour les détails.
Imbrication des directives
Lors de l'imbrication de directives, utilisez plus de deux-points sur la clôture extérieure pour la distinguer des clôtures intérieures. Le motif ::::tabs (quatre deux-points) et :::tab (trois deux-points) en est l'exemple principal :
<div class="tabs"> <div class="tab-headers"> <button class="tab-header active" data-tab="0">Premier</button> <button class="tab-header" data-tab="1">Deuxième</button> </div> <div class="tab-content active" data-tab="0"> <p>Contenu ici.</p> </div> <div class="tab-content" data-tab="1"> <p>Contenu ici.</p> </div> </div>
La directive extérieure utilise 4 deux-points (::::) tandis que les intérieures utilisent 3 (:::). La clôture fermante doit correspondre au nombre exact de deux-points utilisé dans la clôture ouvrante.
Directives inconnues
Si vous utilisez un nom de directive qui ne correspond à aucun composant intégré, le contenu est enveloppé dans un <div> avec le nom de la directive comme classe :
<div class="bloc-personnalise"> <p>Cela devient un <code><div class="bloc-personnalise extra"></code>.</p> </div>
Cela vous permet de créer des blocs stylisés personnalisés avec votre propre CSS.
Résumé
| Composant | Directive | Attribut clé | Défaut |
|---|---|---|---|
| Note | :::note |
title |
"Note" |
| Warning | :::warning |
title |
"Warning" |
| Onglets | ::::tabs + :::tab |
title (sur l'onglet) |
"Tab 1", "Tab 2", ... |
| Groupe de code | :::code-group |
(aucun) | Nom du langage depuis la clôture de code |
| Mermaid | :::mermaid |
(aucun) | Rend le diagramme via Mermaid.js |
Note
Les composants sont traités avant le rendu Markdown. Cela signifie que vous pouvez utiliser le gras, l'italique, les liens, le code, et d'autres mises en forme Markdown à l'intérieur de n'importe quel composant.
Pages associées
- Markdown — mise en forme du texte, tableaux, et autres fonctionnalités Markdown
- Wiki-links — liens à doubles crochets et popovers inline