This commit is contained in:
2026-05-31 21:11:59 +02:00
parent 8034fc44f2
commit 956be40295
13 changed files with 40270 additions and 12353 deletions

70
code_slides.typ Normal file
View File

@ -0,0 +1,70 @@
// ============================================================
// code_slides.typ — Module de génération de slides de code
// Thème clair, sobre, lisible
// ============================================================
// Couleurs
#let couleur-orange = rgb("#E85D04")
#let fond-code = rgb("#F4F4F4") // gris très clair
#let texte-code = rgb("#1A1A1A") // quasi-noir, très lisible
#let bordure-code = rgb("#CCCCCC") // gris moyen pour le contour
// ----------------------------------------------------------
// STYLE DU BLOC DE CODE — fond clair, texte foncé, sobre
// ----------------------------------------------------------
#let style-bloc-code(contenu) = block(
width: 100%,
fill: fond-code,
radius: 4pt,
inset: (x: 1.2em, y: 1em),
breakable: true,
stroke: (paint: bordure-code, thickness: 1pt),
)[
#set text(fill: texte-code, size: 14pt) // taille augmentée
#contenu
]
// ----------------------------------------------------------
// SLIDE DE TRANSITION — texte simple, pas d'effet
// ----------------------------------------------------------
#let slide-titre-fichier(nom-fichier, myslide, graphe_tanner_fond) = myslide(
// Header : juste le texte de section
[Code Source],
// Contenu : nom du fichier centré, sobre
align(center + horizon)[
// Graphe de Tanner en fond décoratif (discret)
#place(center + horizon, dy: 8.2cm)[
#graphe_tanner_fond(0.9cm, 1.75)
]
#place(center + horizon, dy: 7.5cm)[#text(size: 50pt, weight: "bold")[#nom-fichier]]
],
)
// ----------------------------------------------------------
// SLIDE DE CODE — header texte seul, sans icône
// ----------------------------------------------------------
#let slide-code-fichier(nom-fichier, contenu-code, myslide) = myslide(
// Header : juste le nom du fichier, texte brut
[#nom-fichier],
// Contenu
style-bloc-code[
#raw(contenu-code, lang: "rust", block: true)
],
)
// ----------------------------------------------------------
// FONCTION PRINCIPALE
// ----------------------------------------------------------
#let generer_slides_code(fichiers, myslide, graphe_tanner_fond) = {
for chemin in fichiers {
let parties = chemin.split("/")
let nom = parties.last()
slide-titre-fichier(nom, myslide, graphe_tanner_fond)
let source = read(chemin)
slide-code-fichier(nom, source, myslide)
}
}