Puedes agregar fragmentos de código en línea o bloques de código. Los bloques de código admiten opciones meta para el resaltado de sintaxis, títulos, resaltado de líneas, iconos y más.
Usa bloques de código delimitados encerrando el código entre tres comillas invertidas. Los bloques de código se pueden copiar y, si tienes el Asistente habilitado, los usuarios pueden pedirle a la IA que explique el código.Especifica el lenguaje de programación para el resaltado de sintaxis y para habilitar opciones meta. Agrega cualquier opción meta, como un título o un icono, después del lenguaje.
HelloWorld.java
Report incorrect code
Copy
Ask AI
class HelloWorld { public static void main(String[] args) { System.out.println("¡Hola, Mundo!"); }}
Activa el resaltado de sintaxis indicando el lenguaje de programación después de las comillas invertidas de apertura de un bloque de código.Usamos Shiki para el resaltado de sintaxis y admitimos todos los lenguajes disponibles. Consulta la lista completa de lenguajes en la documentación de Shiki.Personaliza globalmente los temas de los bloques de código usando styling.codeblocks en tu archivo docs.json. Establece temas simples como system o dark, o configura temas de Shiki personalizados para los modos claro y oscuro. Consulta Settings para ver las opciones de configuración detalladas.
Report incorrect code
Copy
Ask AI
class HelloWorld { public static void main(String[] args) { System.out.println("¡Hola, Mundo!"); }}
Permite que los usuarios expandan y contraigan bloques de código largos con expandable.
Expandable Example
Report incorrect code
Copy
Ask AI
from datetime import datetime, timedeltafrom typing import Dict, List, Optionalfrom dataclasses import dataclass@dataclassclass Book: title: str author: str isbn: str checked_out: bool = False due_date: Optional[datetime] = Noneclass Library: def __init__(self): self.books: Dict[str, Book] = {} self.checkouts: Dict[str, List[str]] = {} # usuario -> lista de ISBNs def add_book(self, book: Book) -> None: if book.isbn in self.books: raise ValueError(f"El libro con ISBN {book.isbn} ya existe") 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("Libro no encontrado") if book.checked_out: raise ValueError("El libro ya está en préstamo") if len(self.checkouts[patron]) >= 3: raise ValueError("El usuario ha alcanzado el límite de préstamos") 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("Libro no encontrado o no está en préstamo") 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 # Remove from patron's checkouts # Eliminar de los préstamos del usuario 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() # Agregar algunos libros 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) # Ejemplo de préstamo y devolución library.checkout_book("978-0-261-10295-4", "patron123") late_fee = library.return_book("978-0-261-10295-4") print(f"Multa por retraso: ${late_fee:.2f}")if __name__ == "__main__": main()
Habilita el ajuste de texto para líneas largas con wrap. Esto evita el desplazamiento horizontal y facilita la lectura de líneas largas.
Wrap Example
Report incorrect code
Copy
Ask AI
const greeting = "¡Hola, Mundo! Soy una línea larga de texto que se ajustará a la siguiente línea.";function sayHello() { console.log(greeting);}sayHello();
Report incorrect code
Copy
Ask AI
```javascript Wrap Example wrapconst greeting = "¡Hola, Mundo! Soy una línea larga de texto que se ajustará a la siguiente línea.";function sayHello() { console.log(greeting);}sayHello();```
Muestra un diff visual de las líneas añadidas o eliminadas en tus bloques de código. Las líneas añadidas se resaltan en verde y las eliminadas se resaltan en rojo.Para crear diffs, agrega estos comentarios especiales al final de las líneas en tu bloque de código:
// [!code ++]: Marca una línea como añadida (resaltado en verde).
// [!code --]: Marca una línea como eliminada (resaltado en rojo).
Para varias líneas consecutivas, especifica el número de líneas después de dos puntos:
// [!code ++:3]: Marca la línea actual más las dos siguientes como añadidas.
// [!code --:5]: Marca la línea actual más las cuatro siguientes como eliminadas.
La sintaxis de los comentarios debe coincidir con tu lenguaje de programación (por ejemplo, // para JavaScript o # para Python).