Spaces:
Sleeping
Sleeping
Update templates/index.html
Browse files- templates/index.html +35 -7
templates/index.html
CHANGED
|
@@ -134,9 +134,9 @@
|
|
| 134 |
data.results.forEach(item => {
|
| 135 |
// Create Card
|
| 136 |
const div = document.createElement('div');
|
| 137 |
-
div.className = "bg-slate-800/50 p-4 rounded-lg border border-slate-700 hover:border-indigo-500/50 transition flex flex-col gap-
|
| 138 |
|
| 139 |
-
// Header: Title
|
| 140 |
const header = document.createElement('div');
|
| 141 |
header.className = "flex justify-between items-start";
|
| 142 |
header.innerHTML = `
|
|
@@ -144,18 +144,46 @@
|
|
| 144 |
<h3 class="font-semibold text-slate-200 text-sm">${item.title}</h3>
|
| 145 |
<span class="text-xs text-slate-500">${formatDate(item.date)}</span>
|
| 146 |
</div>
|
| 147 |
-
<span class="bg-indigo-900/50 text-indigo-300 text-xs px-2 py-1 rounded font-mono">
|
| 148 |
-
|
| 149 |
</span>
|
| 150 |
`;
|
| 151 |
|
| 152 |
-
// Body:
|
| 153 |
const body = document.createElement('div');
|
| 154 |
-
body.className = "text-
|
| 155 |
-
body.textContent = item.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 156 |
|
| 157 |
div.appendChild(header);
|
| 158 |
div.appendChild(body);
|
|
|
|
|
|
|
| 159 |
resultsArea.appendChild(div);
|
| 160 |
});
|
| 161 |
} else if (data.success) {
|
|
|
|
| 134 |
data.results.forEach(item => {
|
| 135 |
// Create Card
|
| 136 |
const div = document.createElement('div');
|
| 137 |
+
div.className = "bg-slate-800/50 p-4 rounded-lg border border-slate-700 hover:border-indigo-500/50 transition flex flex-col gap-3";
|
| 138 |
|
| 139 |
+
// 1. Header: Title, Date, Score
|
| 140 |
const header = document.createElement('div');
|
| 141 |
header.className = "flex justify-between items-start";
|
| 142 |
header.innerHTML = `
|
|
|
|
| 144 |
<h3 class="font-semibold text-slate-200 text-sm">${item.title}</h3>
|
| 145 |
<span class="text-xs text-slate-500">${formatDate(item.date)}</span>
|
| 146 |
</div>
|
| 147 |
+
<span class="bg-indigo-900/50 text-indigo-300 text-xs px-2 py-1 rounded font-mono border border-indigo-500/20">
|
| 148 |
+
${item.score}
|
| 149 |
</span>
|
| 150 |
`;
|
| 151 |
|
| 152 |
+
// 2. Body: Clean Text
|
| 153 |
const body = document.createElement('div');
|
| 154 |
+
body.className = "text-sm text-slate-300 snippet-text pl-2 border-l-2 border-slate-600";
|
| 155 |
+
body.textContent = item.text;
|
| 156 |
+
|
| 157 |
+
// 3. Footer: Tags & Labels
|
| 158 |
+
const footer = document.createElement('div');
|
| 159 |
+
footer.className = "flex flex-wrap gap-2 mt-1";
|
| 160 |
+
|
| 161 |
+
// Render Tags (Green)
|
| 162 |
+
if (item.tags && item.tags.length > 0) {
|
| 163 |
+
item.tags.forEach(tag => {
|
| 164 |
+
const span = document.createElement('span');
|
| 165 |
+
span.className = "px-2 py-0.5 rounded text-[10px] uppercase font-bold tracking-wider bg-emerald-900/40 text-emerald-400 border border-emerald-700/50";
|
| 166 |
+
span.textContent = tag;
|
| 167 |
+
footer.appendChild(span);
|
| 168 |
+
});
|
| 169 |
+
}
|
| 170 |
+
|
| 171 |
+
// Render Labels (Blue)
|
| 172 |
+
if (item.labels && item.labels.length > 0) {
|
| 173 |
+
item.labels.forEach(lbl => {
|
| 174 |
+
// Filter out generic 'text' label to reduce noise
|
| 175 |
+
if(lbl === 'text') return;
|
| 176 |
+
const span = document.createElement('span');
|
| 177 |
+
span.className = "px-2 py-0.5 rounded text-[10px] uppercase font-bold tracking-wider bg-sky-900/40 text-sky-400 border border-sky-700/50";
|
| 178 |
+
span.textContent = lbl;
|
| 179 |
+
footer.appendChild(span);
|
| 180 |
+
});
|
| 181 |
+
}
|
| 182 |
|
| 183 |
div.appendChild(header);
|
| 184 |
div.appendChild(body);
|
| 185 |
+
if (footer.hasChildNodes()) div.appendChild(footer);
|
| 186 |
+
|
| 187 |
resultsArea.appendChild(div);
|
| 188 |
});
|
| 189 |
} else if (data.success) {
|