diff --git a/TODO.md b/TODO.md index cfb0c5c..d9769f2 100644 --- a/TODO.md +++ b/TODO.md @@ -45,6 +45,7 @@ - [x] Close TOC (licence/charte/apropos) and Filtres (search.php)
by default on mobile - [x] Wider heading scale (h1/h2/h3) for apropos/licence/charte pages: step-5 / step-3 / step-1 - [x] Reduce heading sizes in content-page.css, use explicit clamp() values instead of step-system vars, tighter hierarchy +- [x] Fix TOC: extractToc now captures h1/h2/h3 (was h1-only), templates render level classes, toc.css adds indentation per level - [x] Masquer le bloc "Durée" sur la page TFE quand aucune durée n'est encodée (ni pages ni minutes) - [x] Fix: locked_year cleared on edit — edit dialog didn't populate the field, so any edit cleared the locked academic year - [x] Fix repertoire Années column: sort reverse chronological (newest first) instead of ascending alpha diff --git a/app/public/assets/css/components/toc.css b/app/public/assets/css/components/toc.css index 039950d..01d4e1e 100644 --- a/app/public/assets/css/components/toc.css +++ b/app/public/assets/css/components/toc.css @@ -38,6 +38,13 @@ font-weight: 400; } +/* Indent sub-headings in TOC */ +.toc-list .toc-level-2 { padding-left: var(--space-s); } +.toc-list .toc-level-3 { padding-left: var(--space-m); } + +.toc-list .toc-level-2 a { font-size: var(--step--1); } +.toc-list .toc-level-3 a { font-size: var(--step--2); } + /* ── Public TOC (details/summary block) ─────────────────────────────────── */ .toc { border: none; diff --git a/app/src/MarkdownHelper.php b/app/src/MarkdownHelper.php index 0c75249..ba1f443 100644 --- a/app/src/MarkdownHelper.php +++ b/app/src/MarkdownHelper.php @@ -6,12 +6,12 @@ class MarkdownHelper { /** - * Extract h1 headings from raw markdown content as TOC items. + * Extract h1–h3 headings from raw markdown content as TOC items. * * Each heading gets an anchor id matching CommonMark's default slugification * (lowercase, spaces → hyphens, punctuation stripped). * - * @return array + * @return array */ public static function extractToc(string $content): array { @@ -22,10 +22,11 @@ class MarkdownHelper $normalizer = new \League\CommonMark\Normalizer\SlugNormalizer(); foreach ($lines as $line) { - if (preg_match('/^#\s+(.+)$/', $line, $m)) { - $label = trim($m[1]); + if (preg_match('/^(#{1,3})\s+(.+)$/', $line, $m)) { + $level = strlen($m[1]); + $label = trim($m[2]); $id = $normalizer->normalize($label); - $items[] = ['label' => $label, 'href' => '#' . $id]; + $items[] = ['label' => $label, 'href' => '#' . $id, 'level' => $level]; } } return $items; diff --git a/app/templates/public/charte.php b/app/templates/public/charte.php index 8a45755..25daff5 100644 --- a/app/templates/public/charte.php +++ b/app/templates/public/charte.php @@ -6,7 +6,7 @@ PARTIES
    -
  • +
diff --git a/app/templates/public/licence.php b/app/templates/public/licence.php index 8a45755..25daff5 100644 --- a/app/templates/public/licence.php +++ b/app/templates/public/licence.php @@ -6,7 +6,7 @@ PARTIES