'Junior']; const STATUTS = ['recu' => 'Reçu']; require __DIR__ . '/../src/i18n.php'; require __DIR__ . '/../src/Recherche.php'; require __DIR__ . '/../src/markdown.php'; require __DIR__ . '/../src/aide.php'; $ok = 0; $ko = 0; function verifier(string $nom, bool $cond): void { global $ok, $ko; if ($cond) { $ok++; } else { $ko++; echo "ECHEC : $nom\n"; } } foreach (array_keys(DOCUMENTS_AIDE) as $guide) { $fr = aide($guide, 'fr'); $en = aide($guide, 'en'); verifier("$guide : existe en français et en anglais", $fr !== null && $en !== null && $fr['langue'] === 'fr' && $en['langue'] === 'en'); verifier("$guide : même nombre de chapitres dans les deux langues", count($fr['chapitres']) === count($en['chapitres']) && count($fr['chapitres']) >= 10); foreach (['fr' => $fr, 'en' => $en] as $langue => $a) { preg_match_all('/ id="([^"]+)"/', $a['html'], $ids); verifier("$guide ($langue) : ancres uniques et non vides", count($ids[1]) === count(array_unique($ids[1])) && !in_array('', $ids[1], true)); verifier("$guide ($langue) : chaque chapitre du sommaire a son ancre", !array_diff(array_column($a['chapitres'], 'id'), $ids[1])); verifier("$guide ($langue) : aucun balisage Markdown resté visible", !preg_match('/\*\*|^#|\|\s*---/m', strip_tags($a['html']))); } // Même structure : autant de sous-titres, de tableaux et de listes numérotées de part et d'autre foreach (['