Spaces:
Sleeping
Sleeping
Update templates/index.html
Browse files- templates/index.html +84 -3
templates/index.html
CHANGED
@@ -366,8 +366,7 @@
|
|
366 |
// Process analysis
|
367 |
const analysisText = data.analysis;
|
368 |
|
369 |
-
// Split content based on language sections
|
370 |
-
// In real implementation, you would need to parse properly based on your API response
|
371 |
const [spanishPart, frenchPart] = splitAnalysis(analysisText);
|
372 |
|
373 |
// Display preview based on file type
|
@@ -422,4 +421,86 @@
|
|
422 |
tabContentFrench.classList.add('hidden');
|
423 |
});
|
424 |
|
425 |
-
tabFrench.addEventListener('click', ()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
366 |
// Process analysis
|
367 |
const analysisText = data.analysis;
|
368 |
|
369 |
+
// Split content based on language sections
|
|
|
370 |
const [spanishPart, frenchPart] = splitAnalysis(analysisText);
|
371 |
|
372 |
// Display preview based on file type
|
|
|
421 |
tabContentFrench.classList.add('hidden');
|
422 |
});
|
423 |
|
424 |
+
tabFrench.addEventListener('click', () => {
|
425 |
+
tabFrench.classList.remove('bg-gray-200', 'text-gray-700');
|
426 |
+
tabFrench.classList.add('bg-indigo-600', 'text-white');
|
427 |
+
tabSpanish.classList.remove('bg-indigo-600', 'text-white');
|
428 |
+
tabSpanish.classList.add('bg-gray-200', 'text-gray-700');
|
429 |
+
|
430 |
+
tabContentFrench.classList.remove('hidden');
|
431 |
+
tabContentSpanish.classList.add('hidden');
|
432 |
+
});
|
433 |
+
|
434 |
+
// Download functionality
|
435 |
+
downloadBtn.addEventListener('click', () => {
|
436 |
+
const activeTab = document.querySelector('.tab-btn.bg-indigo-600');
|
437 |
+
let content, filename;
|
438 |
+
|
439 |
+
if (activeTab.id === 'tab-spanish') {
|
440 |
+
content = spanishContent.innerHTML;
|
441 |
+
filename = 'analysis_spanish.html';
|
442 |
+
} else {
|
443 |
+
content = frenchContent.innerHTML;
|
444 |
+
filename = 'analysis_french.html';
|
445 |
+
}
|
446 |
+
|
447 |
+
// Create a simple HTML document
|
448 |
+
const html = `
|
449 |
+
<!DOCTYPE html>
|
450 |
+
<html>
|
451 |
+
<head>
|
452 |
+
<meta charset="UTF-8">
|
453 |
+
<title>Analyse - Mariam Espagnol</title>
|
454 |
+
<style>
|
455 |
+
body { font-family: Arial, sans-serif; line-height: 1.6; max-width: 800px; margin: 0 auto; padding: 20px; }
|
456 |
+
h1, h2, h3 { color: #4338ca; }
|
457 |
+
</style>
|
458 |
+
</head>
|
459 |
+
<body>
|
460 |
+
<h1>Analyse de document - Mariam Espagnol</h1>
|
461 |
+
<div>${content}</div>
|
462 |
+
</body>
|
463 |
+
</html>
|
464 |
+
`;
|
465 |
+
|
466 |
+
const blob = new Blob([html], { type: 'text/html' });
|
467 |
+
const url = URL.createObjectURL(blob);
|
468 |
+
const a = document.createElement('a');
|
469 |
+
a.href = url;
|
470 |
+
a.download = filename;
|
471 |
+
document.body.appendChild(a);
|
472 |
+
a.click();
|
473 |
+
document.body.removeChild(a);
|
474 |
+
URL.revokeObjectURL(url);
|
475 |
+
});
|
476 |
+
|
477 |
+
// Helper functions
|
478 |
+
function splitAnalysis(text) {
|
479 |
+
// This is a simplified split - in real implementation,
|
480 |
+
// you would need to parse based on your specific response format
|
481 |
+
|
482 |
+
// For demonstration purposes, let's assume the text has a clear
|
483 |
+
// Spanish part first, then French part marked by "TRADUCCIÓN FRANCESA" or similar
|
484 |
+
const parts = text.split(/TRADUCCIÓN FRANCESA|TRADUCTION FRANÇAISE/i);
|
485 |
+
|
486 |
+
if (parts.length >= 2) {
|
487 |
+
return [parts[0].trim(), parts[1].trim()];
|
488 |
+
}
|
489 |
+
|
490 |
+
// If no clear separation, attempt a rough half-split (not ideal but fallback)
|
491 |
+
const midPoint = Math.floor(text.length / 2);
|
492 |
+
return [text.substring(0, midPoint).trim(), text.substring(midPoint).trim()];
|
493 |
+
}
|
494 |
+
|
495 |
+
function formatText(text) {
|
496 |
+
// Basic formatting for better display
|
497 |
+
return text
|
498 |
+
.replace(/\n\n/g, '</p><p>')
|
499 |
+
.replace(/\n/g, '<br>')
|
500 |
+
.replace(/^/, '<p>')
|
501 |
+
.replace(/$/, '</p>');
|
502 |
+
}
|
503 |
+
});
|
504 |
+
</script>
|
505 |
+
</body>
|
506 |
+
</html>
|