← back to Dw Pitch Followup
security: add rel=noopener noreferrer to target=_blank links (yoloforever cycle 3)
b5f1281f7b58bbeccca261e539546dbfca5939cb · 2026-09-15 18:50:44 -0700 · Steve Abrams
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UxvvaJ7p6VRZ4RzKDaBXqK
Files touched
Diff
commit b5f1281f7b58bbeccca261e539546dbfca5939cb
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Tue Sep 15 18:50:44 2026 -0700
security: add rel=noopener noreferrer to target=_blank links (yoloforever cycle 3)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UxvvaJ7p6VRZ4RzKDaBXqK
---
public/index.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/public/index.html b/public/index.html
index e9a0901..e9ed810 100644
--- a/public/index.html
+++ b/public/index.html
@@ -422,7 +422,7 @@ function samplesBlock(r){
const nm=typeof s==='string'?s:(s.label||s.sku||'sample');
const w=(withDate&&s&&s.date)?` · ${esc(fmtDay(s.date))}`:'';
const img=(s&&s.image)?`<img src="${esc(s.image)}" style="width:22px;height:22px;object-fit:cover;border-radius:4px;vertical-align:middle;margin-right:6px;border:1px solid var(--line)">`:`<span class="dot ${cls}"></span>`;
- const name=(s&&s.url)?`<a href="${esc(s.url)}" target="_blank">${esc(nm)}</a>`:esc(nm);
+ const name=(s&&s.url)?`<a rel="noopener noreferrer" href="${esc(s.url)}" target="_blank">${esc(nm)}</a>`:esc(nm);
const dead=(s&&s.disco)?`<span class="dtag" title="Discontinued ${esc(s.disco)}">DISCONTINUED · ${esc(fmtDay(s.disco))}</span>`:'';
return `<li>${img}${name}${w}${dead}</li>`;
}).join('');
← 5f4bb6e auto-data-snapshot: 2026-08-19T20:02:37 (1 data files) — dat
·
back to Dw Pitch Followup
·
auto-data-snapshot: 2026-09-17T20:05:20 (1 data files) — dat 1989be5 →