annexes
This commit is contained in:
70
code_slides.typ
Normal file
70
code_slides.typ
Normal 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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user