corrige /ide, sert Mulish depuis le portail et complète les mentions légales
/ide avait une erreur de syntaxe depuis la maquette et un aperçu hors de son bac à sable. Mulish était encore importée depuis Google par la feuille de thème. Nouveaux tests : syntaxe des scripts de chaque page, feuilles de style sans import externe. public/vendor exclu du rsync. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
e4a6aaebb1
commit
1ac8d4773a
10 changed files with 77 additions and 15 deletions
|
|
@ -117,7 +117,7 @@
|
|||
<button type="button" role="tab" data-onglet="terminal" aria-selected="false" class="border-r border-[#e3e5e8] px-4 py-2 text-white aria-selected:bg-[#fef7e0] aria-selected:text-black">Terminal</button>
|
||||
</div>
|
||||
<pre id="p-sortie" data-panneau="sortie" class="h-[220px] overflow-auto whitespace-pre-wrap p-4 font-mono text-sm text-[#E8EDF5]">Clique sur ▶ Exécuter pour lancer ton code.</pre>
|
||||
<div data-panneau="apercu" hidden class="h-[220px] bg-white"><iframe id="p-apercu" title="Aperçu de la page" class="h-full w-full" sandbox="allow-scripts allow-same-origin"></iframe></div>
|
||||
<div data-panneau="apercu" hidden class="h-[220px] bg-white"><iframe id="p-apercu" title="Aperçu de la page" class="h-full w-full" sandbox="allow-scripts"></iframe></div>
|
||||
<div data-panneau="terminal" hidden class="h-[220px] p-2"><div id="p-terminal" class="h-full"></div></div>
|
||||
</div>
|
||||
</section>
|
||||
|
|
@ -217,17 +217,23 @@
|
|||
afficher([['Requête valide', true], ['Bonnes lignes, dans le bon ordre', obtenu === attendu]]);
|
||||
});
|
||||
if (cur.lang === 'web') {
|
||||
var f = $('p-apercu'); f.srcdoc = code; onglet('apercu');
|
||||
return new Promise(function (ok) { f.onload = function () {
|
||||
var d = f.contentDocument, b = d && d.getElementById('bouton'), m = d && d.getElementById('message');
|
||||
var r = [['Le bouton #bouton existe',.b], ['Le paragraphe #message existe',.m]];
|
||||
if (b && m) { b.click(); r.push(['Le clic affiche « Bonjour ! »', /Bonjour/.test(m.textContent)]); }
|
||||
afficher(r); ok();
|
||||
}; });
|
||||
// La vérification tourne DANS l'aperçu, isolé (sandbox sans
|
||||
// allow-same-origin : le code de l'élève ne peut pas agir sur
|
||||
// la page) ; elle renvoie ses résultats par postMessage.
|
||||
var f = $('p-apercu'); onglet('apercu');
|
||||
var verif = '<script>addEventListener("load",function(){var b=document.getElementById("bouton"),m=document.getElementById("message"),r=[["Le bouton #bouton existe",!!b],["Le paragraphe #message existe",!!m]];if(b&&m){b.click();r.push(["Le clic affiche « Bonjour ! »",/Bonjour/.test(m.textContent)]);}parent.postMessage({syllabusVerif:r},"*");});<\/script>';
|
||||
return new Promise(function (ok) {
|
||||
var fini = false;
|
||||
function terminer(r) { if (fini) return; fini = true; removeEventListener('message', recevoir); afficher(r); ok(); }
|
||||
function recevoir(e) { if (e.source === f.contentWindow && e.data && e.data.syllabusVerif) terminer(e.data.syllabusVerif); }
|
||||
addEventListener('message', recevoir);
|
||||
setTimeout(function () { terminer([['La page s’affiche sans erreur', false]]); }, 3000);
|
||||
f.srcdoc = code + verif;
|
||||
});
|
||||
}
|
||||
onglet('terminal');
|
||||
var h = shell ? shell.home : '/home/eleve', f2 = shell && shell.files.get(h + '/tp/script.sh');
|
||||
afficher([['Le dossier ~/tp existe',.(shell && shell.dirs.has(h + '/tp'))], ['Le fichier ~/tp/script.sh existe', f2 !== undefined && f2 !== null], ['Il contient echo Bonjour',.f2 && /echo\s+"?Bonjour/.test(f2)]]);
|
||||
afficher([['Le dossier ~/tp existe', !!(shell && shell.dirs.has(h + '/tp'))], ['Le fichier ~/tp/script.sh existe', f2 !== undefined && f2 !== null], ['Il contient echo Bonjour', !!f2 && /echo\s+"?Bonjour/.test(f2)]]);
|
||||
return Promise.resolve();
|
||||
}
|
||||
document.querySelectorAll('[data-ex]').forEach(function (b) { b.addEventListener('click', function () { charger(b.dataset.ex); }); });
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue