← back to Designerlookbooks
add noreferrer to all target=_blank external links
8a72dd21e15ace3f513e20193501dbba1a80e653 · 2026-05-19 15:18:39 -0700 · Steve Abrams
Footer Shop on DW + cluster grid + product detail + search grid all now
carry rel="noopener noreferrer". Standing-rule mechanical fix.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Files touched
Diff
commit 8a72dd21e15ace3f513e20193501dbba1a80e653
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Tue May 19 15:18:39 2026 -0700
add noreferrer to all target=_blank external links
Footer Shop on DW + cluster grid + product detail + search grid all now
carry rel="noopener noreferrer". Standing-rule mechanical fix.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---
server.js | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/server.js b/server.js
index 76c8339..8b4bd4b 100644
--- a/server.js
+++ b/server.js
@@ -545,7 +545,7 @@ ${body}
<h4>More</h4>
<ul>
<li><a href="/lookbooks">All Lookbooks</a></li>
- <li><a href="${DW_SHOPIFY}" rel="noopener">Shop on DW</a></li>
+ <li><a href="${DW_SHOPIFY}" target="_blank" rel="noopener noreferrer">Shop on DW</a></li>
<li><a href="/about">About</a></li>
</ul>
</div>
@@ -736,7 +736,7 @@ app.get('/lookbook/:slug', (req, res) => {
</div>
<div class="actions">
<a href="/p/${esc(p.handle || '')}">View</a>
- <a class="cta" href="${esc(memoSampleUrl(p.handle))}" target="_blank" rel="noopener">Order Memo</a>
+ <a class="cta" href="${esc(memoSampleUrl(p.handle))}" target="_blank" rel="noopener noreferrer">Order Memo</a>
</div>
</article>
`).join('')}</div>`}
@@ -797,8 +797,8 @@ app.get('/p/:handle', (req, res) => {
${p.retail_price ? `<div class="row"><div class="k">Retail</div><div>$${parseFloat(p.retail_price).toFixed(2)} /yd</div></div>` : ''}
${inClusters.length > 1 ? `<div class="row"><div class="k">Also in</div><div>${inClusters.slice(1).map(c => `<a href="/lookbook/${c.slug}" style="color:var(--accent)">${esc(c.title)}</a>`).join(', ')}</div></div>` : ''}
<div class="actions">
- <a class="btn btn-primary" href="${esc(memoSampleUrl(p.handle))}" target="_blank" rel="noopener">Order Memo Sample (free)</a>
- <a class="btn btn-secondary" href="${esc(shopifyUrl(p.handle))}" target="_blank" rel="noopener">Shop on DW</a>
+ <a class="btn btn-primary" href="${esc(memoSampleUrl(p.handle))}" target="_blank" rel="noopener noreferrer">Order Memo Sample (free)</a>
+ <a class="btn btn-secondary" href="${esc(shopifyUrl(p.handle))}" target="_blank" rel="noopener noreferrer">Shop on DW</a>
</div>
</div>
</div>
@@ -865,7 +865,7 @@ app.get('/search', (req, res) => {
</a></div>
<div class="actions">
<a href="/p/${esc(p.handle || '')}">View</a>
- <a class="cta" href="${esc(memoSampleUrl(p.handle))}" target="_blank" rel="noopener">Order Memo</a>
+ <a class="cta" href="${esc(memoSampleUrl(p.handle))}" target="_blank" rel="noopener noreferrer">Order Memo</a>
</div>
</article>
`).join('')}</div>`}
← 2b2d6c7 polish pass — sharper hero copy + Editor's Letter editorial
·
back to Designerlookbooks
·
persist sort + density to localStorage on lookbook and searc 2a95466 →