feat: tags dc.subject de cada peça acima do link no cartão

This commit is contained in:
2026-09-30 17:13:33 +02:00
parent 19cb7aa185
commit 278aab5094
+20
View File
@@ -378,6 +378,13 @@
#card-title { font-size: 1.02rem; color: #f5f5f0; }
#card-date { font-size: .85rem; color: #b9b9b0; margin-top: 2px; }
#card-contrib { font-size: .82rem; color: #cdd8e0; margin-top: 10px; }
#card-tags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 12px; }
#card-tags:empty { display: none; }
#card-tags span {
font-family: system-ui, sans-serif; font-size: .64rem; letter-spacing: .02em; line-height: 1.7;
padding: 0 8px; border-radius: 999px; color: #b8c6d1;
background: rgba(127,168,201,.12); border: 1px solid rgba(127,168,201,.22);
}
#card-footer {
margin-top: 16px; padding-top: 14px; border-top: 1px solid rgba(255,255,255,.12);
font-family: system-ui, sans-serif; font-size: .68rem; letter-spacing: .04em; color: #888;
@@ -596,6 +603,7 @@
<div id="card-title">—</div>
<div id="card-date">—</div>
<div id="card-contrib"></div>
<div id="card-tags"></div>
<div id="card-footer">
<div><a id="card-link" href="#" target="_blank" rel="noopener">ver item original ↗</a> · <span id="card-handle"></span></div>
<div id="card-rights"></div>
@@ -1262,6 +1270,18 @@ function showCard(data) {
document.getElementById('card-title').textContent = meta.title || '(sem título)';
document.getElementById('card-date').textContent = meta.date || '';
document.getElementById('card-contrib').textContent = meta.contributor ? meta.contributor : '';
// this piece's dc.subject, one chip each (accent/case duplicates folded)
const tagsEl = document.getElementById('card-tags');
tagsEl.replaceChildren();
const seen = new Set();
[].concat(meta.subject || []).forEach(t => {
const k = deburr(String(t)).trim();
if (!k || seen.has(k)) return;
seen.add(k);
const chip = document.createElement('span');
chip.textContent = t;
tagsEl.appendChild(chip);
});
document.getElementById('card-handle').textContent = data.handle || '';
document.getElementById('card-link').href = data.handle ? sourceUrl(data.handle) : '#';
document.getElementById('card-rights').textContent = meta.rights ? `Direitos: ${meta.rights}` : '';