Passer au contenu principal

Ajouter des exemples de code

Vous pouvez ajouter des extraits de code en ligne ou des code blocks. Les code blocks prennent en charge des options de métadonnées pour la coloration syntaxique, les titles, la mise en évidence de lignes, les icon, et plus encore.

Code en ligne

Pour indiquer qu’un mot ou une expression est du code, encadrez-le de backticks (`).
Pour désigner un `mot` ou une `phrase` comme du code, entourez-le de backticks (`).

Blocs de code

Utilisez des blocs de code délimités en entourant le code de trois accents graves. Les blocs de code sont copiables et, si vous avez activé l’Assistant, les utilisateurs peuvent demander à l’IA d’expliquer le code. Indiquez le langage de programmation pour la coloration syntaxique et pour activer les options méta. Ajoutez les options méta, comme un title ou un icon, après le langage.
class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

Options de code block

Vous pouvez ajouter des options méta à vos code blocks pour personnaliser leur apparence.
Vous devez spécifier un langage de programmation pour un code block avant d’ajouter toute autre option méta.

Syntaxe des options

  • Options de type chaîne ou booléen : Entourez-les de "", '' ou laissez sans guillemets.
  • Options d’expression : Entourez-les de {}, "" ou ''.

Mise en évidence syntaxique

Activez la mise en évidence syntaxique en indiquant le langage de programmation après les backticks ouvrants d’un code block. Nous utilisons Shiki pour la mise en évidence syntaxique et prenons en charge tous les langages disponibles. Consultez la liste complète des langages dans la documentation de Shiki. Personnalisez globalement les thèmes des code blocks via styling.codeblocks dans votre fichier docs.json. Définissez des thèmes simples comme system ou dark, ou configurez des thèmes Shiki personnalisés pour les modes clair et sombre. Consultez Settings pour les options de configuration.
Pour des thèmes personnalisés, définissez votre thème dans docs.json sur "css-variables" et remplacez les couleurs de mise en évidence syntaxique à l’aide de variables CSS avec le préfixe --mint-.Les variables suivantes sont disponibles :Couleurs de base
  • --mint-color-text: Couleur de texte par défaut
  • --mint-color-background: Couleur d’arrière-plan
Couleurs de jeton
  • --mint-token-constant: Constantes et littéraux
  • --mint-token-string: Valeurs de chaîne
  • --mint-token-comment: Commentaires
  • --mint-token-keyword: Mots-clés
  • --mint-token-parameter: Paramètres de fonction
  • --mint-token-function: Noms de fonction
  • --mint-token-string-expression: Expressions de chaîne
  • --mint-token-punctuation: Signes de ponctuation
  • --mint-token-link: Liens
Couleurs ANSI
  • --mint-ansi-black, --mint-ansi-black-dim
  • --mint-ansi-red, --mint-ansi-red-dim
  • --mint-ansi-green, --mint-ansi-green-dim
  • --mint-ansi-yellow, --mint-ansi-yellow-dim
  • --mint-ansi-blue, --mint-ansi-blue-dim
  • --mint-ansi-magenta, --mint-ansi-magenta-dim
  • --mint-ansi-cyan, --mint-ansi-cyan-dim
  • --mint-ansi-white, --mint-ansi-white-dim
  • --mint-ansi-bright-black, --mint-ansi-bright-black-dim
  • --mint-ansi-bright-red, --mint-ansi-bright-red-dim
  • --mint-ansi-bright-green, --mint-ansi-bright-green-dim
  • --mint-ansi-bright-yellow, --mint-ansi-bright-yellow-dim
  • --mint-ansi-bright-blue, --mint-ansi-bright-blue-dim
  • --mint-ansi-bright-magenta, --mint-ansi-bright-magenta-dim
  • --mint-ansi-bright-cyan, --mint-ansi-bright-cyan-dim
  • --mint-ansi-bright-white, --mint-ansi-bright-white-dim
class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

Twoslash

Dans les code blocks JavaScript et TypeScript, utilisez twoslash pour activer des informations de types interactives. Les utilisateurs peuvent survoler des variables, des fonctions et des paramètres pour voir les types et les erreurs, comme dans un IDE.
type  = "cat" | "dog" | "hamster";

function (: string, : ) {
return `${} the ${} is now adopted!`;
}

// Hover to see the inferred types
const  = ("Mintie", "cat");

Icône

Ajoutez une icône à votre code block à l’aide de la propriété icon. Consultez Icônes pour voir toutes les options disponibles.
const hello = "world";

Mise en évidence de lignes

Mettez en évidence des lignes spécifiques dans vos code blocks à l’aide de highlight avec les numéros de ligne ou plages à surligner.
const greeting = "Hello, World!";
function sayHello() {
  console.log(greeting);
}
sayHello();

Mise en évidence de lignes

Mettez en évidence des lignes spécifiques dans vos code blocks à l’aide de focus avec des numéros de ligne ou des plages.
const greeting = "Hello, World!";
function sayHello() {
  console.log(greeting);
}
sayHello();

Afficher les numéros de ligne

Affichez les numéros de ligne sur le côté gauche de votre code block à l’aide de lines.
const greeting = "Hello, World!";
function sayHello() {
  console.log(greeting);
}
sayHello();

Dépliable

Permettez aux utilisateurs d’ouvrir et de réduire de longs code blocks à l’aide de expandable.
from datetime import datetime, timedelta
from typing import Dict, List, Optional
from dataclasses import dataclass

@dataclass
class Book:
title: str
author: str
isbn: str
checked_out: bool = False
due_date: Optional[datetime] = None

class Library:
def **init**(self):
self.books: Dict[str, Book] = {}
self.checkouts: Dict[str, List[str]] = {} # abonné -> liste d'ISBN

    def add_book(self, book: Book) -> None:
        if book.isbn in self.books:
            raise ValueError(f"Book with ISBN {book.isbn} already exists")
        self.books[book.isbn] = book

    def checkout_book(self, isbn: str, patron: str, days: int = 14) -> None:
        if patron not in self.checkouts:
            self.checkouts[patron] = []

        book = self.books.get(isbn)
        if not book:
            raise ValueError("Book not found")

        if book.checked_out:
            raise ValueError("Book is already checked out")

        if len(self.checkouts[patron]) >= 3:
            raise ValueError("Patron has reached checkout limit")

        book.checked_out = True
        book.due_date = datetime.now() + timedelta(days=days)
        self.checkouts[patron].append(isbn)

    def return_book(self, isbn: str) -> float:
        book = self.books.get(isbn)
        if not book or not book.checked_out:
            raise ValueError("Book not found or not checked out")

        late_fee = 0.0
        if datetime.now() > book.due_date:
            days_late = (datetime.now() - book.due_date).days
            late_fee = days_late * 0.50

        book.checked_out = False
        book.due_date = None

        # Retirer des emprunts de l'abonné
        for patron, books in self.checkouts.items():
            if isbn in books:
                books.remove(isbn)
                break

        return late_fee

    def search(self, query: str) -> List[Book]:
        query = query.lower()
        return [
            book for book in self.books.values()
            if query in book.title.lower() or query in book.author.lower()
        ]

def main():
library = Library()

    # Ajouter quelques livres
    books = [
        Book("The Hobbit", "J.R.R. Tolkien", "978-0-261-10295-4"),
        Book("1984", "George Orwell", "978-0-452-28423-4"),
    ]

    for book in books:
        library.add_book(book)

    # Exemple d’emprunt et de retour
    library.checkout_book("978-0-261-10295-4", "patron123")
    late_fee = library.return_book("978-0-261-10295-4")
    print(f"Late fee: ${late_fee:.2f}")

if **name** == "**main**":
main()

Diff

Affichez un diff visuel des lignes ajoutées ou supprimées dans vos code blocks. Les lignes ajoutées sont mises en évidence en vert et les lignes supprimées en rouge. Pour créer des diffs, ajoutez ces commentaires spéciaux à la fin des lignes dans votre code block :
  • // [!code ++] : Marque une ligne comme ajoutée (mise en évidence en vert).
  • // [!code --] : Marque une ligne comme supprimée (mise en évidence en rouge).
Pour plusieurs lignes consécutives, indiquez le nombre de lignes après un deux-points :
  • // [!code ++:3] : Marque la ligne actuelle plus les deux suivantes comme ajoutées.
  • // [!code --:5] : Marque la ligne actuelle plus les quatre suivantes comme supprimées.
La syntaxe des commentaires doit correspondre à votre langage de programmation (par exemple, // pour JavaScript ou # pour Python).
const greeting = "Hello, World!"; 
function sayHello() {
  console.log("Hello, World!"); 
  console.log(greeting); 
}
sayHello();