peux tu me traduire le site en français
Browse files- components/footer.js +14 -14
- components/navbar.js +5 -5
- index.html +35 -33
- script.js +17 -18
components/footer.js
CHANGED
|
@@ -12,27 +12,27 @@ class CustomFooter extends HTMLElement {
|
|
| 12 |
<div class="grid grid-cols-1 md:grid-cols-4 gap-8">
|
| 13 |
<div>
|
| 14 |
<h3 class="text-lg font-semibold text-gray-900 mb-4">SearchStellar</h3>
|
| 15 |
-
<p class="text-gray-600 text-sm">
|
| 16 |
-
|
| 17 |
<div>
|
| 18 |
-
<h4 class="text-sm font-semibold text-gray-900 uppercase tracking-wider mb-4">
|
| 19 |
-
|
| 20 |
<li><a href="#" class="text-gray-600 hover:text-purple-600 transition-colors text-sm">Documentation</a></li>
|
| 21 |
-
<li><a href="#" class="text-gray-600 hover:text-purple-600 transition-colors text-sm">
|
| 22 |
-
<li><a href="#" class="text-gray-600 hover:text-purple-600 transition-colors text-sm">
|
| 23 |
-
|
| 24 |
</div>
|
| 25 |
<div>
|
| 26 |
-
<h4 class="text-sm font-semibold text-gray-900 uppercase tracking-wider mb-4">
|
| 27 |
-
|
| 28 |
-
<li><a href="#" class="text-gray-600 hover:text-purple-600 transition-colors text-sm">
|
| 29 |
-
<li><a href="#" class="text-gray-600 hover:text-purple-600 transition-colors text-sm">
|
| 30 |
<li><a href="#" class="text-gray-600 hover:text-purple-600 transition-colors text-sm">Cookies</a></li>
|
| 31 |
-
|
| 32 |
</div>
|
| 33 |
<div>
|
| 34 |
-
<h4 class="text-sm font-semibold text-gray-900 uppercase tracking-wider mb-4">
|
| 35 |
-
|
| 36 |
<a href="#" class="text-gray-600 hover:text-purple-600 transition-colors">
|
| 37 |
<i data-feather="twitter"></i>
|
| 38 |
</a>
|
|
|
|
| 12 |
<div class="grid grid-cols-1 md:grid-cols-4 gap-8">
|
| 13 |
<div>
|
| 14 |
<h3 class="text-lg font-semibold text-gray-900 mb-4">SearchStellar</h3>
|
| 15 |
+
<p class="text-gray-600 text-sm">Exploration de la recherche scientifique à travers des visualisations cosmiques.</p>
|
| 16 |
+
</div>
|
| 17 |
<div>
|
| 18 |
+
<h4 class="text-sm font-semibold text-gray-900 uppercase tracking-wider mb-4">Ressources</h4>
|
| 19 |
+
<ul class="space-y-2">
|
| 20 |
<li><a href="#" class="text-gray-600 hover:text-purple-600 transition-colors text-sm">Documentation</a></li>
|
| 21 |
+
<li><a href="#" class="text-gray-600 hover:text-purple-600 transition-colors text-sm">Accès API</a></li>
|
| 22 |
+
<li><a href="#" class="text-gray-600 hover:text-purple-600 transition-colors text-sm">Sources de données</a></li>
|
| 23 |
+
</ul>
|
| 24 |
</div>
|
| 25 |
<div>
|
| 26 |
+
<h4 class="text-sm font-semibold text-gray-900 uppercase tracking-wider mb-4">Légal</h4>
|
| 27 |
+
<ul class="space-y-2">
|
| 28 |
+
<li><a href="#" class="text-gray-600 hover:text-purple-600 transition-colors text-sm">Politique de confidentialité</a></li>
|
| 29 |
+
<li><a href="#" class="text-gray-600 hover:text-purple-600 transition-colors text-sm">Conditions d'utilisation</a></li>
|
| 30 |
<li><a href="#" class="text-gray-600 hover:text-purple-600 transition-colors text-sm">Cookies</a></li>
|
| 31 |
+
</ul>
|
| 32 |
</div>
|
| 33 |
<div>
|
| 34 |
+
<h4 class="text-sm font-semibold text-gray-900 uppercase tracking-wider mb-4">Nous suivre</h4>
|
| 35 |
+
<div class="flex space-x-4">
|
| 36 |
<a href="#" class="text-gray-600 hover:text-purple-600 transition-colors">
|
| 37 |
<i data-feather="twitter"></i>
|
| 38 |
</a>
|
components/navbar.js
CHANGED
|
@@ -22,11 +22,11 @@ class CustomNavbar extends HTMLElement {
|
|
| 22 |
</a>
|
| 23 |
</div>
|
| 24 |
<div class="hidden md:flex items-center space-x-6">
|
| 25 |
-
<a href="/" class="text-gray-700 hover:text-purple-600 transition-colors font-medium">
|
| 26 |
-
<a href="#" class="text-gray-700 hover:text-purple-600 transition-colors font-medium">
|
| 27 |
-
<a href="#" class="text-gray-700 hover:text-purple-600 transition-colors font-medium">
|
| 28 |
-
<a href="#" class="text-gray-700 hover:text-purple-600 transition-colors font-medium">
|
| 29 |
-
|
| 30 |
<div class="flex items-center space-x-4">
|
| 31 |
<button class="p-2 text-gray-600 hover:text-purple-600 transition-colors">
|
| 32 |
<i data-feather="user"></i>
|
|
|
|
| 22 |
</a>
|
| 23 |
</div>
|
| 24 |
<div class="hidden md:flex items-center space-x-6">
|
| 25 |
+
<a href="/" class="text-gray-700 hover:text-purple-600 transition-colors font-medium">Accueil</a>
|
| 26 |
+
<a href="#" class="text-gray-700 hover:text-purple-600 transition-colors font-medium">À propos</a>
|
| 27 |
+
<a href="#" class="text-gray-700 hover:text-purple-600 transition-colors font-medium">Bases de données</a>
|
| 28 |
+
<a href="#" class="text-gray-700 hover:text-purple-600 transition-colors font-medium">Aide</a>
|
| 29 |
+
</div>
|
| 30 |
<div class="flex items-center space-x-4">
|
| 31 |
<button class="p-2 text-gray-600 hover:text-purple-600 transition-colors">
|
| 32 |
<i data-feather="user"></i>
|
index.html
CHANGED
|
@@ -3,8 +3,10 @@
|
|
| 3 |
<head>
|
| 4 |
<meta charset="UTF-8">
|
| 5 |
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
| 6 |
-
<title>
|
| 7 |
-
|
|
|
|
|
|
|
| 8 |
<script src="https://cdn.tailwindcss.com"></script>
|
| 9 |
<script src="https://unpkg.com/feather-icons"></script>
|
| 10 |
<script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
|
|
@@ -17,14 +19,14 @@
|
|
| 17 |
|
| 18 |
<main class="flex-grow container mx-auto px-4 py-8">
|
| 19 |
<div class="max-w-4xl mx-auto text-center mb-12">
|
| 20 |
-
<h1 class="text-4xl md:text-5xl font-bold text-gray-900 mb-4">
|
| 21 |
-
<p class="text-xl text-gray-600">
|
| 22 |
-
|
| 23 |
<div class="bg-white rounded-xl shadow-lg p-8 mb-12">
|
| 24 |
<div class="flex flex-col md:flex-row gap-4 mb-6">
|
| 25 |
<div class="flex-grow relative">
|
| 26 |
-
<input type="text" id="searchQuery" placeholder="
|
| 27 |
-
|
| 28 |
<i data-feather="search" class="absolute left-4 top-3.5 text-gray-400"></i>
|
| 29 |
</div>
|
| 30 |
<button id="searchButton" class="px-6 py-3 bg-purple-600 text-white rounded-lg hover:bg-purple-700 transition-colors">
|
|
@@ -33,8 +35,8 @@
|
|
| 33 |
</div>
|
| 34 |
<div class="grid grid-cols-1 md:grid-cols-3 gap-6 mb-8">
|
| 35 |
<div class="bg-gray-50 p-4 rounded-xl">
|
| 36 |
-
<h3 class="text-sm font-medium text-gray-700 mb-3">
|
| 37 |
-
|
| 38 |
<label class="flex items-center space-x-2 cursor-pointer">
|
| 39 |
<input type="checkbox" name="database" value="pubmed" checked class="rounded border-gray-300 text-purple-600 focus:ring-purple-500">
|
| 40 |
<span class="text-gray-700">PubMed</span>
|
|
@@ -59,54 +61,54 @@
|
|
| 59 |
</div>
|
| 60 |
|
| 61 |
<div class="bg-gray-50 p-4 rounded-xl">
|
| 62 |
-
<h3 class="text-sm font-medium text-gray-700 mb-3">
|
| 63 |
-
|
| 64 |
<label class="flex items-center space-x-2 cursor-pointer">
|
| 65 |
<input type="radio" name="timeRange" value="all" checked class="rounded-full border-gray-300 text-purple-600 focus:ring-purple-500">
|
| 66 |
-
<span class="text-gray-700">
|
| 67 |
-
|
| 68 |
<label class="flex items-center space-x-2 cursor-pointer">
|
| 69 |
<input type="radio" name="timeRange" value="10" class="rounded-full border-gray-300 text-purple-600 focus:ring-purple-500">
|
| 70 |
-
<span class="text-gray-700">
|
| 71 |
-
|
| 72 |
<label class="flex items-center space-x-2 cursor-pointer">
|
| 73 |
<input type="radio" name="timeRange" value="5" class="rounded-full border-gray-300 text-purple-600 focus:ring-purple-500">
|
| 74 |
-
<span class="text-gray-700">
|
| 75 |
-
|
| 76 |
<label class="flex items-center space-x-2 cursor-pointer">
|
| 77 |
<input type="radio" name="timeRange" value="2" class="rounded-full border-gray-300 text-purple-600 focus:ring-purple-500">
|
| 78 |
-
<span class="text-gray-700">
|
| 79 |
-
|
| 80 |
</div>
|
| 81 |
</div>
|
| 82 |
|
| 83 |
<div class="bg-gray-50 p-4 rounded-xl">
|
| 84 |
-
<h3 class="text-sm font-medium text-gray-700 mb-3">
|
| 85 |
-
|
| 86 |
<label class="flex items-center space-x-2 cursor-pointer">
|
| 87 |
<input type="radio" name="sortBy" value="relevance" checked class="rounded-full border-gray-300 text-purple-600 focus:ring-purple-500">
|
| 88 |
-
<span class="text-gray-700">
|
| 89 |
-
|
| 90 |
<label class="flex items-center space-x-2 cursor-pointer">
|
| 91 |
<input type="radio" name="sortBy" value="citations" class="rounded-full border-gray-300 text-purple-600 focus:ring-purple-500">
|
| 92 |
<span class="text-gray-700">Citations</span>
|
| 93 |
-
|
| 94 |
<label class="flex items-center space-x-2 cursor-pointer">
|
| 95 |
<input type="radio" name="sortBy" value="date" class="rounded-full border-gray-300 text-purple-600 focus:ring-purple-500">
|
| 96 |
<span class="text-gray-700">Date</span>
|
| 97 |
-
|
| 98 |
</div>
|
| 99 |
</div>
|
| 100 |
</div>
|
| 101 |
</div>
|
| 102 |
<div id="loadingSpinner" class="hidden text-center py-16">
|
| 103 |
<div class="animate-spin rounded-full h-16 w-16 border-t-4 border-b-4 border-purple-500 mx-auto mb-6"></div>
|
| 104 |
-
<p class="text-gray-600 text-lg font-medium">
|
| 105 |
-
|
| 106 |
<div id="resultsContainer" class="hidden">
|
| 107 |
<div class="flex flex-col md:flex-row justify-between items-start md:items-center mb-8 gap-4">
|
| 108 |
-
<h2 class="text-3xl font-bold text-gray-900">
|
| 109 |
-
|
| 110 |
</div>
|
| 111 |
|
| 112 |
<div class="bg-gradient-to-br from-purple-50 to-blue-50 rounded-xl shadow-lg p-6 h-[600px] relative overflow-hidden border border-gray-100">
|
|
@@ -118,11 +120,11 @@
|
|
| 118 |
</div>
|
| 119 |
<div id="noResults" class="hidden text-center py-16">
|
| 120 |
<i data-feather="alert-circle" class="mx-auto text-gray-400 w-16 h-16 mb-6"></i>
|
| 121 |
-
<h3 class="text-2xl font-bold text-gray-900 mb-3">
|
| 122 |
-
<p class="text-gray-600 text-lg">
|
| 123 |
<button class="mt-6 px-6 py-3 bg-purple-600 text-white rounded-lg hover:bg-purple-700 transition-colors font-medium">
|
| 124 |
-
|
| 125 |
-
|
| 126 |
</div>
|
| 127 |
</main>
|
| 128 |
|
|
|
|
| 3 |
<head>
|
| 4 |
<meta charset="UTF-8">
|
| 5 |
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
| 6 |
+
<title>
|
| 7 |
+
Rechercher
|
| 8 |
+
Stellar - Explorateur Scientifique Cosmique</title>
|
| 9 |
+
<link rel="stylesheet" href="style.css">
|
| 10 |
<script src="https://cdn.tailwindcss.com"></script>
|
| 11 |
<script src="https://unpkg.com/feather-icons"></script>
|
| 12 |
<script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
|
|
|
|
| 19 |
|
| 20 |
<main class="flex-grow container mx-auto px-4 py-8">
|
| 21 |
<div class="max-w-4xl mx-auto text-center mb-12">
|
| 22 |
+
<h1 class="text-4xl md:text-5xl font-bold text-gray-900 mb-4">Explorez les Constellations Scientifiques</h1>
|
| 23 |
+
<p class="text-xl text-gray-600">Découvrez les recherches médicales les plus influentes grâce à notre visualisation cosmique</p>
|
| 24 |
+
</div>
|
| 25 |
<div class="bg-white rounded-xl shadow-lg p-8 mb-12">
|
| 26 |
<div class="flex flex-col md:flex-row gap-4 mb-6">
|
| 27 |
<div class="flex-grow relative">
|
| 28 |
+
<input type="text" id="searchQuery" placeholder="Rechercher des études médicales..."
|
| 29 |
+
class="w-full pl-12 pr-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-purple-500 focus:border-purple-500">
|
| 30 |
<i data-feather="search" class="absolute left-4 top-3.5 text-gray-400"></i>
|
| 31 |
</div>
|
| 32 |
<button id="searchButton" class="px-6 py-3 bg-purple-600 text-white rounded-lg hover:bg-purple-700 transition-colors">
|
|
|
|
| 35 |
</div>
|
| 36 |
<div class="grid grid-cols-1 md:grid-cols-3 gap-6 mb-8">
|
| 37 |
<div class="bg-gray-50 p-4 rounded-xl">
|
| 38 |
+
<h3 class="text-sm font-medium text-gray-700 mb-3">Bases de données</h3>
|
| 39 |
+
<div class="space-y-2">
|
| 40 |
<label class="flex items-center space-x-2 cursor-pointer">
|
| 41 |
<input type="checkbox" name="database" value="pubmed" checked class="rounded border-gray-300 text-purple-600 focus:ring-purple-500">
|
| 42 |
<span class="text-gray-700">PubMed</span>
|
|
|
|
| 61 |
</div>
|
| 62 |
|
| 63 |
<div class="bg-gray-50 p-4 rounded-xl">
|
| 64 |
+
<h3 class="text-sm font-medium text-gray-700 mb-3">Période</h3>
|
| 65 |
+
<div class="space-y-2">
|
| 66 |
<label class="flex items-center space-x-2 cursor-pointer">
|
| 67 |
<input type="radio" name="timeRange" value="all" checked class="rounded-full border-gray-300 text-purple-600 focus:ring-purple-500">
|
| 68 |
+
<span class="text-gray-700">Toutes périodes</span>
|
| 69 |
+
</label>
|
| 70 |
<label class="flex items-center space-x-2 cursor-pointer">
|
| 71 |
<input type="radio" name="timeRange" value="10" class="rounded-full border-gray-300 text-purple-600 focus:ring-purple-500">
|
| 72 |
+
<span class="text-gray-700">10 dernières années</span>
|
| 73 |
+
</label>
|
| 74 |
<label class="flex items-center space-x-2 cursor-pointer">
|
| 75 |
<input type="radio" name="timeRange" value="5" class="rounded-full border-gray-300 text-purple-600 focus:ring-purple-500">
|
| 76 |
+
<span class="text-gray-700">5 dernières années</span>
|
| 77 |
+
</label>
|
| 78 |
<label class="flex items-center space-x-2 cursor-pointer">
|
| 79 |
<input type="radio" name="timeRange" value="2" class="rounded-full border-gray-300 text-purple-600 focus:ring-purple-500">
|
| 80 |
+
<span class="text-gray-700">2 dernières années</span>
|
| 81 |
+
</label>
|
| 82 |
</div>
|
| 83 |
</div>
|
| 84 |
|
| 85 |
<div class="bg-gray-50 p-4 rounded-xl">
|
| 86 |
+
<h3 class="text-sm font-medium text-gray-700 mb-3">Trier par</h3>
|
| 87 |
+
<div class="space-y-2">
|
| 88 |
<label class="flex items-center space-x-2 cursor-pointer">
|
| 89 |
<input type="radio" name="sortBy" value="relevance" checked class="rounded-full border-gray-300 text-purple-600 focus:ring-purple-500">
|
| 90 |
+
<span class="text-gray-700">Pertinence</span>
|
| 91 |
+
</label>
|
| 92 |
<label class="flex items-center space-x-2 cursor-pointer">
|
| 93 |
<input type="radio" name="sortBy" value="citations" class="rounded-full border-gray-300 text-purple-600 focus:ring-purple-500">
|
| 94 |
<span class="text-gray-700">Citations</span>
|
| 95 |
+
</label>
|
| 96 |
<label class="flex items-center space-x-2 cursor-pointer">
|
| 97 |
<input type="radio" name="sortBy" value="date" class="rounded-full border-gray-300 text-purple-600 focus:ring-purple-500">
|
| 98 |
<span class="text-gray-700">Date</span>
|
| 99 |
+
</label>
|
| 100 |
</div>
|
| 101 |
</div>
|
| 102 |
</div>
|
| 103 |
</div>
|
| 104 |
<div id="loadingSpinner" class="hidden text-center py-16">
|
| 105 |
<div class="animate-spin rounded-full h-16 w-16 border-t-4 border-b-4 border-purple-500 mx-auto mb-6"></div>
|
| 106 |
+
<p class="text-gray-600 text-lg font-medium">Découverte des constellations de recherche...</p>
|
| 107 |
+
</div>
|
| 108 |
<div id="resultsContainer" class="hidden">
|
| 109 |
<div class="flex flex-col md:flex-row justify-between items-start md:items-center mb-8 gap-4">
|
| 110 |
+
<h2 class="text-3xl font-bold text-gray-900">Constellation de Recherche</h2>
|
| 111 |
+
<div id="resultCount" class="text-lg text-purple-600 font-medium"></div>
|
| 112 |
</div>
|
| 113 |
|
| 114 |
<div class="bg-gradient-to-br from-purple-50 to-blue-50 rounded-xl shadow-lg p-6 h-[600px] relative overflow-hidden border border-gray-100">
|
|
|
|
| 120 |
</div>
|
| 121 |
<div id="noResults" class="hidden text-center py-16">
|
| 122 |
<i data-feather="alert-circle" class="mx-auto text-gray-400 w-16 h-16 mb-6"></i>
|
| 123 |
+
<h3 class="text-2xl font-bold text-gray-900 mb-3">Aucun résultat trouvé</h3>
|
| 124 |
+
<p class="text-gray-600 text-lg">Essayez d'autres termes de recherche ou filtres</p>
|
| 125 |
<button class="mt-6 px-6 py-3 bg-purple-600 text-white rounded-lg hover:bg-purple-700 transition-colors font-medium">
|
| 126 |
+
Réessayer
|
| 127 |
+
</button>
|
| 128 |
</div>
|
| 129 |
</main>
|
| 130 |
|
script.js
CHANGED
|
@@ -57,28 +57,28 @@ const loadingSpinner = document.getElementById('loadingSpinner');
|
|
| 57 |
|
| 58 |
// Generate central article
|
| 59 |
articles.push({
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
| 63 |
year: currentYear - Math.floor(Math.random() * (yearsFilter === 'all' ? 20 : parseInt(yearsFilter))),
|
| 64 |
citations: centralArticleCitations,
|
| 65 |
doi: "10.1038/nm.1234",
|
| 66 |
-
|
| 67 |
-
|
| 68 |
|
| 69 |
// Generate surrounding articles
|
| 70 |
for (let i = 0; i < count - 1; i++) {
|
| 71 |
const citationCount = Math.floor(Math.random() * centralArticleCitations * 0.8);
|
| 72 |
|
| 73 |
articles.push({
|
| 74 |
-
title: `
|
| 75 |
-
authors: `${['
|
| 76 |
-
journal: ["
|
| 77 |
-
|
| 78 |
citations: citationCount,
|
| 79 |
doi: `10.1234/abcd.${1000 + i}`,
|
| 80 |
-
abstract: `
|
| 81 |
-
|
| 82 |
}
|
| 83 |
|
| 84 |
return articles;
|
|
@@ -89,9 +89,8 @@ const loadingSpinner = document.getElementById('loadingSpinner');
|
|
| 89 |
articles.sort((a, b) => b.citations - a.citations);
|
| 90 |
|
| 91 |
// Update result count
|
| 92 |
-
|
| 93 |
-
|
| 94 |
-
// Create constellation visualization
|
| 95 |
createConstellation(articles);
|
| 96 |
|
| 97 |
// Create article list
|
|
@@ -234,12 +233,12 @@ const loadingSpinner = document.getElementById('loadingSpinner');
|
|
| 234 |
<p class="text-gray-700 text-sm line-clamp-2 mb-3">${article.abstract}</p>
|
| 235 |
<div class="flex flex-wrap gap-2">
|
| 236 |
<a href="https://doi.org/${article.doi}" target="_blank" class="text-xs px-3 py-1 bg-gray-100 text-gray-700 rounded-full hover:bg-gray-200 transition-colors">
|
| 237 |
-
|
| 238 |
-
|
| 239 |
${index === 0 ? `
|
| 240 |
<span class="text-xs px-3 py-1 bg-purple-100 text-purple-700 rounded-full">
|
| 241 |
-
|
| 242 |
-
|
| 243 |
` : ''}
|
| 244 |
</div>
|
| 245 |
</div>
|
|
|
|
| 57 |
|
| 58 |
// Generate central article
|
| 59 |
articles.push({
|
| 60 |
+
title: `L'étude la plus influente sur ${query} ces dernières années`,
|
| 61 |
+
authors: "Dupont, J.; Martin, A.; Leroy, K. et al.",
|
| 62 |
+
journal: "Nature Medicine",
|
| 63 |
year: currentYear - Math.floor(Math.random() * (yearsFilter === 'all' ? 20 : parseInt(yearsFilter))),
|
| 64 |
citations: centralArticleCitations,
|
| 65 |
doi: "10.1038/nm.1234",
|
| 66 |
+
abstract: `Cette étude révolutionnaire a transformé notre compréhension de ${query} en démontrant des améliorations significatives des résultats pour les patients. L'équipe de recherche a employé des méthodologies innovantes qui sont depuis devenues standard dans le domaine.`
|
| 67 |
+
});
|
| 68 |
|
| 69 |
// Generate surrounding articles
|
| 70 |
for (let i = 0; i < count - 1; i++) {
|
| 71 |
const citationCount = Math.floor(Math.random() * centralArticleCitations * 0.8);
|
| 72 |
|
| 73 |
articles.push({
|
| 74 |
+
title: `Étude ${i+1} sur ${query}: ${['Nouvelle', 'Complète', 'Systématique', 'Randomisée', 'Clinique'][i%5]} ${['découverte', 'analyse', 'étude', 'revue', 'évaluation'][i%5]}`,
|
| 75 |
+
authors: `${['Dubois', 'Bernard', 'Petit', 'Moreau', 'Lefevre'][i%5]}, ${String.fromCharCode(65 + (i%26))}. et al.`,
|
| 76 |
+
journal: ["La Presse Médicale", "NEJM", "The Lancet", "BMJ", "Annales"][i%5],
|
| 77 |
+
year: currentYear - Math.floor(Math.random() * (yearsFilter === 'all' ? 20 : parseInt(yearsFilter))),
|
| 78 |
citations: citationCount,
|
| 79 |
doi: `10.1234/abcd.${1000 + i}`,
|
| 80 |
+
abstract: `Cette étude ${['importante', 'fondamentale', 'innovante', 'détaillée', 'approfondie'][i%5]} a examiné ${query} à travers l'analyse ${['clinique', 'épidémiologique', 'moléculaire', 'biochimique', 'génomique'][i%5]}. Les résultats ont ${['confirmé', 'remis en question', 'élargi', 'affiné', 'redéfini'][i%5]} les connaissances précédentes dans ce domaine.`
|
| 81 |
+
});
|
| 82 |
}
|
| 83 |
|
| 84 |
return articles;
|
|
|
|
| 89 |
articles.sort((a, b) => b.citations - a.citations);
|
| 90 |
|
| 91 |
// Update result count
|
| 92 |
+
resultCount.textContent = `${articles.length} articles de recherche trouvés`;
|
| 93 |
+
// Create constellation visualization
|
|
|
|
| 94 |
createConstellation(articles);
|
| 95 |
|
| 96 |
// Create article list
|
|
|
|
| 233 |
<p class="text-gray-700 text-sm line-clamp-2 mb-3">${article.abstract}</p>
|
| 234 |
<div class="flex flex-wrap gap-2">
|
| 235 |
<a href="https://doi.org/${article.doi}" target="_blank" class="text-xs px-3 py-1 bg-gray-100 text-gray-700 rounded-full hover:bg-gray-200 transition-colors">
|
| 236 |
+
Voir la publication
|
| 237 |
+
</a>
|
| 238 |
${index === 0 ? `
|
| 239 |
<span class="text-xs px-3 py-1 bg-purple-100 text-purple-700 rounded-full">
|
| 240 |
+
Plus cité
|
| 241 |
+
</span>
|
| 242 |
` : ''}
|
| 243 |
</div>
|
| 244 |
</div>
|