Skip to content

Commit 04de093

Browse files
committed
site_v0.3
1 parent 9692c20 commit 04de093

File tree

7 files changed

+260
-365
lines changed

7 files changed

+260
-365
lines changed

.github/scripts/generate-site.py

Lines changed: 40 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -419,7 +419,7 @@ def generate_project_page(project_name, source_files, output_file, compile_log,
419419
<div class="output-area">
420420
<div class="info-box">
421421
<i class="fas fa-info-circle"></i>
422-
Premi "Esegui" per compilare ed eseguire il codice
422+
Il codice è già compilato ed eseguito. Premi "Esegui" per vedere l'output animato.
423423
</div>
424424
<div id="statusIndicator"></div>
425425
<div class="output-box" id="output">{escape_html(output) if output else 'Nessun output ancora...'}</div>
@@ -428,10 +428,11 @@ def generate_project_page(project_name, source_files, output_file, compile_log,
428428
</div>
429429
430430
<script>
431-
const sourceCode = {json.dumps([f['code'] for f in source_files_data])};
432-
const projectName = {json.dumps(project_name)};
433-
const buildStatus = {json.dumps(compile_status)};
434-
const precompiledOutput = {json.dumps(output)};
431+
// Project data
432+
const sourceCode = {json.dumps([f['code'] for f in source_files_data], ensure_ascii=False)};
433+
const projectName = {json.dumps(project_name, ensure_ascii=False)};
434+
const buildStatus = {json.dumps(compile_status, ensure_ascii=False)};
435+
const precompiledOutput = {json.dumps(output, ensure_ascii=False)};
435436
436437
// Tab switching functionality
437438
function switchTab(tabId) {{
@@ -492,74 +493,58 @@ def generate_project_page(project_name, source_files, output_file, compile_log,
492493
493494
// Disable button
494495
runBtn.disabled = true;
495-
runBtn.innerHTML = '<div class="spinner"></div> Compilazione...';
496+
runBtn.innerHTML = '<div class="spinner"></div> Esecuzione...';
496497
497498
// Show running status
498-
statusIndicator.innerHTML = '<div class="status-indicator running"><div class="spinner"></div> Compilazione ed esecuzione in corso...</div>';
499+
statusIndicator.innerHTML = '<div class="status-indicator running"><div class="spinner"></div> Esecuzione in corso...</div>';
499500
output.className = 'output-box';
500-
output.textContent = 'Attendere...';
501+
output.textContent = '';
501502
502-
try {{
503-
// Get the main code (first file)
504-
const code = sourceCode[0];
505-
console.log('Code to execute:', code.substring(0, 100) + '...');
506-
507-
// Use JDoodle API for compilation and execution
508-
const response = await fetch('https://api.jdoodle.com/v1/execute', {{
509-
method: 'POST',
510-
headers: {{
511-
'Content-Type': 'application/json'
512-
}},
513-
body: JSON.stringify({{
514-
clientId: '8c4e567af1e9ad942eb1465f47a3141f',
515-
clientSecret: 'cfef3c1ab0f3bc1c5f3e80e2cf8cc6f7e73c6f8a1f6b3e6b8b1c0f3e6b8b1c0f',
516-
script: code,
517-
language: 'java',
518-
versionIndex: '4'
519-
}})
520-
}});
521-
522-
console.log('Response status:', response.status);
523-
const result = await response.json();
524-
console.log('Result:', result);
525-
526-
if (result.error) {{
527-
statusIndicator.innerHTML = '<div class="status-indicator error"><i class="fas fa-times-circle"></i> Errore di compilazione</div>';
528-
output.className = 'output-box error';
529-
output.textContent = result.error;
530-
}} else if (result.output) {{
531-
statusIndicator.innerHTML = '<div class="status-indicator success"><i class="fas fa-check-circle"></i> Eseguito con successo</div>';
532-
output.className = 'output-box success';
533-
output.textContent = result.output;
503+
// Simulate compilation and execution with animation
504+
await new Promise(resolve => setTimeout(resolve, 500));
505+
506+
// Show the pre-compiled output with typing effect
507+
statusIndicator.innerHTML = '<div class="status-indicator success"><i class="fas fa-check-circle"></i> Eseguito con successo</div>';
508+
output.className = 'output-box success';
509+
510+
// Type out the output character by character
511+
let i = 0;
512+
const outputText = precompiledOutput;
513+
const typeSpeed = 2; // milliseconds per character
514+
515+
function typeWriter() {{
516+
if (i < outputText.length) {{
517+
output.textContent += outputText.charAt(i);
518+
i++;
519+
setTimeout(typeWriter, typeSpeed);
534520
}} else {{
535-
statusIndicator.innerHTML = '<div class="status-indicator error"><i class="fas fa-exclamation-circle"></i> Nessun output</div>';
536-
output.className = 'output-box error';
537-
output.textContent = 'Il programma è stato eseguito ma non ha prodotto output.\\n\\nOutput pre-compilato:\\n' + precompiledOutput;
521+
// Re-enable button when done
522+
runBtn.disabled = false;
523+
runBtn.innerHTML = '<i class="fas fa-redo"></i> Ri-esegui';
538524
}}
539-
}} catch (error) {{
540-
console.error('Error during execution:', error);
541-
statusIndicator.innerHTML = '<div class="status-indicator error"><i class="fas fa-exclamation-triangle"></i> Errore di rete</div>';
542-
output.className = 'output-box error';
543-
output.textContent = 'Errore: ' + error.message + '\\n\\nMostrando output pre-compilato:\\n\\n' + precompiledOutput;
544525
}}
545526
546-
// Re-enable button
547-
runBtn.disabled = false;
548-
runBtn.innerHTML = '<i class="fas fa-play"></i> Esegui';
527+
typeWriter();
549528
}}
550529
551530
// Initialize syntax highlighting
552531
document.addEventListener('DOMContentLoaded', function() {{
532+
console.log('DOM Content Loaded');
533+
534+
// Highlight code
553535
hljs.highlightAll();
554536
555537
// Show precompiled status
538+
const statusIndicator = document.getElementById('statusIndicator');
556539
if (buildStatus === 'success') {{
557-
document.getElementById('statusIndicator').innerHTML =
558-
'<div class="status-indicator success"><i class="fas fa-check-circle"></i> Pre-compilato con successo</div>';
540+
statusIndicator.innerHTML =
541+
'<div class="status-indicator success"><i class="fas fa-check-circle"></i> Compilato con successo</div>';
559542
}} else {{
560-
document.getElementById('statusIndicator').innerHTML =
561-
'<div class="status-indicator error"><i class="fas fa-times-circle"></i> Errori nella pre-compilazione</div>';
543+
statusIndicator.innerHTML =
544+
'<div class="status-indicator error"><i class="fas fa-times-circle"></i> Errori di compilazione</div>';
562545
}}
546+
547+
console.log('Initialization complete');
563548
}});
564549
</script>
565550
</body>

docs/cerchio.html

Lines changed: 36 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -391,7 +391,7 @@ <h2>
391391
<div class="output-area">
392392
<div class="info-box">
393393
<i class="fas fa-info-circle"></i>
394-
Premi "Esegui" per compilare ed eseguire il codice
394+
Il codice è già compilato ed eseguito. Premi "Esegui" per vedere l'output animato.
395395
</div>
396396
<div id="statusIndicator"></div>
397397
<div class="output-box" id="output">10.0
@@ -411,6 +411,7 @@ <h2>
411411
</div>
412412

413413
<script>
414+
// Project data
414415
const sourceCode = ["public class Cerchio {\n private double raggio;\n\n public Cerchio() {\n this.raggio = 10;\n }\n public Cerchio(double r) {\n this.raggio = r;\n }\n public double getraggio() {\n return raggio;\n }\n public void setraggio(double r) {\n this.raggio = r;\n }\n public double area() {\n return Math.PI * raggio * raggio;\n }\n public double circonferenza() {\n return 2 * Math.PI * raggio;\n }\n\n public static void main(String[] args) {\n Cerchio CIrl1 = new Cerchio();\n System.out.println(CIrl1.getraggio());\n System.out.println(CIrl1.area());\n System.out.println(CIrl1.circonferenza());\n System.out.println();\n\n Cerchio CIrl2 = new Cerchio(5);\n System.out.println(CIrl2.getraggio());\n System.out.println(CIrl2.area());\n System.out.println(CIrl2.circonferenza());\n System.out.println();\n\n Cerchio CIrl3 = new Cerchio(7.5);\n System.out.println(CIrl3.getraggio());\n System.out.println(CIrl3.area());\n System.out.println(CIrl3.circonferenza());\n }\n}"];
415416
const projectName = "Cerchio";
416417
const buildStatus = "success";
@@ -475,74 +476,58 @@ <h2>
475476

476477
// Disable button
477478
runBtn.disabled = true;
478-
runBtn.innerHTML = '<div class="spinner"></div> Compilazione...';
479+
runBtn.innerHTML = '<div class="spinner"></div> Esecuzione...';
479480

480481
// Show running status
481-
statusIndicator.innerHTML = '<div class="status-indicator running"><div class="spinner"></div> Compilazione ed esecuzione in corso...</div>';
482+
statusIndicator.innerHTML = '<div class="status-indicator running"><div class="spinner"></div> Esecuzione in corso...</div>';
482483
output.className = 'output-box';
483-
output.textContent = 'Attendere...';
484+
output.textContent = '';
484485

485-
try {
486-
// Get the main code (first file)
487-
const code = sourceCode[0];
488-
console.log('Code to execute:', code.substring(0, 100) + '...');
489-
490-
// Use JDoodle API for compilation and execution
491-
const response = await fetch('https://api.jdoodle.com/v1/execute', {
492-
method: 'POST',
493-
headers: {
494-
'Content-Type': 'application/json'
495-
},
496-
body: JSON.stringify({
497-
clientId: '8c4e567af1e9ad942eb1465f47a3141f',
498-
clientSecret: 'cfef3c1ab0f3bc1c5f3e80e2cf8cc6f7e73c6f8a1f6b3e6b8b1c0f3e6b8b1c0f',
499-
script: code,
500-
language: 'java',
501-
versionIndex: '4'
502-
})
503-
});
504-
505-
console.log('Response status:', response.status);
506-
const result = await response.json();
507-
console.log('Result:', result);
508-
509-
if (result.error) {
510-
statusIndicator.innerHTML = '<div class="status-indicator error"><i class="fas fa-times-circle"></i> Errore di compilazione</div>';
511-
output.className = 'output-box error';
512-
output.textContent = result.error;
513-
} else if (result.output) {
514-
statusIndicator.innerHTML = '<div class="status-indicator success"><i class="fas fa-check-circle"></i> Eseguito con successo</div>';
515-
output.className = 'output-box success';
516-
output.textContent = result.output;
486+
// Simulate compilation and execution with animation
487+
await new Promise(resolve => setTimeout(resolve, 500));
488+
489+
// Show the pre-compiled output with typing effect
490+
statusIndicator.innerHTML = '<div class="status-indicator success"><i class="fas fa-check-circle"></i> Eseguito con successo</div>';
491+
output.className = 'output-box success';
492+
493+
// Type out the output character by character
494+
let i = 0;
495+
const outputText = precompiledOutput;
496+
const typeSpeed = 2; // milliseconds per character
497+
498+
function typeWriter() {
499+
if (i < outputText.length) {
500+
output.textContent += outputText.charAt(i);
501+
i++;
502+
setTimeout(typeWriter, typeSpeed);
517503
} else {
518-
statusIndicator.innerHTML = '<div class="status-indicator error"><i class="fas fa-exclamation-circle"></i> Nessun output</div>';
519-
output.className = 'output-box error';
520-
output.textContent = 'Il programma è stato eseguito ma non ha prodotto output.\n\nOutput pre-compilato:\n' + precompiledOutput;
504+
// Re-enable button when done
505+
runBtn.disabled = false;
506+
runBtn.innerHTML = '<i class="fas fa-redo"></i> Ri-esegui';
521507
}
522-
} catch (error) {
523-
console.error('Error during execution:', error);
524-
statusIndicator.innerHTML = '<div class="status-indicator error"><i class="fas fa-exclamation-triangle"></i> Errore di rete</div>';
525-
output.className = 'output-box error';
526-
output.textContent = 'Errore: ' + error.message + '\n\nMostrando output pre-compilato:\n\n' + precompiledOutput;
527508
}
528509

529-
// Re-enable button
530-
runBtn.disabled = false;
531-
runBtn.innerHTML = '<i class="fas fa-play"></i> Esegui';
510+
typeWriter();
532511
}
533512

534513
// Initialize syntax highlighting
535514
document.addEventListener('DOMContentLoaded', function() {
515+
console.log('DOM Content Loaded');
516+
517+
// Highlight code
536518
hljs.highlightAll();
537519

538520
// Show precompiled status
521+
const statusIndicator = document.getElementById('statusIndicator');
539522
if (buildStatus === 'success') {
540-
document.getElementById('statusIndicator').innerHTML =
541-
'<div class="status-indicator success"><i class="fas fa-check-circle"></i> Pre-compilato con successo</div>';
523+
statusIndicator.innerHTML =
524+
'<div class="status-indicator success"><i class="fas fa-check-circle"></i> Compilato con successo</div>';
542525
} else {
543-
document.getElementById('statusIndicator').innerHTML =
544-
'<div class="status-indicator error"><i class="fas fa-times-circle"></i> Errori nella pre-compilazione</div>';
526+
statusIndicator.innerHTML =
527+
'<div class="status-indicator error"><i class="fas fa-times-circle"></i> Errori di compilazione</div>';
545528
}
529+
530+
console.log('Initialization complete');
546531
});
547532
</script>
548533
</body>

0 commit comments

Comments
 (0)