[object Object]

← back to Dw Yolo Loop

Refine: splitName strips trailing Wallcoverings + never uses junk tags as eyebrow

71696a62a463285ec26e53a841af15f77d6bff03 · 2026-06-12 15:50:56 -0700 · Steve Abrams

Files touched

Diff

commit 71696a62a463285ec26e53a841af15f77d6bff03
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Fri Jun 12 15:50:56 2026 -0700

    Refine: splitName strips trailing Wallcoverings + never uses junk tags as eyebrow
---
 artmura-site/public/index.html   |  2 +-
 artmura-site/public/product.html |  2 +-
 artmura-site/server.js           | 11 ++++++-----
 3 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/artmura-site/public/index.html b/artmura-site/public/index.html
index ba111fa..276bf69 100644
--- a/artmura-site/public/index.html
+++ b/artmura-site/public/index.html
@@ -142,7 +142,7 @@ function render(){
     <div class="card" data-h="${p.handle}">
       <img class="ph" loading="lazy" decoding="async" width="400" height="400" alt="${(p.title||'').replace(/"/g,'&quot;')}" src="${p.swatch||p.room||''}">
       <div class="body">
-        <div class="ser">${p.display_eyebrow||p.series||''}</div>
+        <div class="ser">${p.display_eyebrow||''}</div>
         <div class="nm">${p.display_name||p.title}</div>
         <div class="meta">
           <span class="col">${p.hex?`<span class="dot" style="background:${p.hex}"></span>`:''}${p.book||LINE}</span>
diff --git a/artmura-site/public/product.html b/artmura-site/public/product.html
index 6c9fa8d..8cb4642 100644
--- a/artmura-site/public/product.html
+++ b/artmura-site/public/product.html
@@ -49,7 +49,7 @@ function specRow(k,v){return v?`<div class="row"><span class="k">${k}</span><spa
         ${imgs.length>1?`<div class="thumbs">${imgs.map((s,i)=>`<div class="t ${i===0?'on':''}" data-s="${s}" style="background-image:url('${s}')"></div>`).join('')}</div>`:''}
       </div>
       <div class="rail">
-        <div class="ser">${esc(p.display_eyebrow||p.series)} · ${esc(p.book||LINE)}</div>
+        <div class="ser">${esc(p.display_eyebrow||p.book||LINE)}</div>
         <h1>${esc(p.display_name||p.color||p.title)}</h1>
         <div class="colr">${esc(p.sku)} · ${esc(p.substrate||'Non-Woven')}</div>
         <a class="cta" href="${esc(p.store_url)}" target="_blank" rel="noopener">View &amp; price on Designer Wallcoverings →</a>
diff --git a/artmura-site/server.js b/artmura-site/server.js
index cf4a316..cf23ca6 100644
--- a/artmura-site/server.js
+++ b/artmura-site/server.js
@@ -35,13 +35,14 @@ function localImages(r) {
   const seen = new Set();
   return mapped.filter(u => { const k = (u || '').split('?')[0]; if (!u || seen.has(k)) return false; seen.add(k); return true; });
 }
-// derive a clean { eyebrow=pattern, name=colorway } from a "Pattern - Colorway" title
+// derive a clean { eyebrow=pattern, name=colorway } from a "Pattern - Colorway" title.
+// strips trailing redundant "Wallcovering(s)" and NEVER uses raw tags (which are often junk
+// like "Collection: Texture Resource 8" / "Bedroom" / "Priced Per Single Roll").
 function splitName(r) {
-  const t = (r.title || '').trim();
+  const t = (r.title || '').replace(/(\s+Wallcoverings?){1,2}\s*$/i, '').replace(/\s{2,}/g, ' ').trim();
   const d = t.lastIndexOf(' - ');
-  const pat = d > 0 ? t.slice(0, d).trim() : (r.pattern_series || t);
-  const col = d > 0 ? t.slice(d + 3).trim() : (r.color || '');
-  return { eyebrow: pat, name: col || t };
+  if (d > 0) return { eyebrow: t.slice(0, d).trim(), name: t.slice(d + 3).trim() };
+  return { eyebrow: r.collection_book || '', name: t };   // no " - ": whole title is the name
 }
 let CATALOG = [];
 function load() {

← fca0d80 Brands page: delete+recreate canonical (still cache-frozen);  ·  back to Dw Yolo Loop  ·  Brands page LIVE on /pages/brands (new design, leak-free); p efd6d5f →