Leagă linkurile din blog de catalogul acestui magazin
Cele 72 de articole au fost importate de pe magazinul original împreună cu adresele de acolo, care nu există aici: 376 de linkuri în 61 din cele 72 de articole, în toate cele trei limbi. Un cititor care dădea click pe produsul despre care tocmai citise ajungea nicăieri, exact în punctul în care interesul era cel mai mare.
Ce s-a schimbat
Cele 28 de adrese moarte au fost extrase din datele reale, iar fiecare înlocuitor a fost verificat că răspunde 200 pe magazinul live. Maparea e cu potriviri exacte, nu cu tipare — un regex peste HTML scris de mână e exact locul unde o rescriere strică pe tăcute o adresă la care nu s-a uitat nimeni.
| ce era | unde duce acum |
|---|---|
/get-hypervolt/, /get-normatec/, /get-venom/, /get-hyperice-x/
|
colecția corespunzătoare |
/get-vyper/, /get-hypersphere/
|
/products/vyper-3, /products/hypersphere-go
|
/products/?product-type=X |
/collections/X |
hypervolt-2-pro, hypervolt-2-black, hypervolt-go-2
|
generația care le-a înlocuit |
hyperice-knee, hyperice-x-shoulder, hypersphere, heated-head-attachment
|
produsul actual echivalent |
/blog/<articol>/products/<handle>/ |
/products/<handle> |
/blog/treatment/how-to-improve-circulation-in-leg/ |
articolul cu același subiect de aici |
De ce e nevoie și de un script
Repararea fișierelor sursă ar ajuta doar o bază de date nouă:
import-hyperhub.ts refuză intenționat să suprascrie un tabel care are deja
rânduri, tocmai ca să nu calce peste editările din panou. Așa că aceeași mapare
alimentează prisma/fix-hyperhub-links.ts, legat de ambele joburi de seed.
Scriptul nu atinge nimic în afară de valoarea unui href deja știut ca mort —
textul rescris de cineva din panou rămâne exact cum a fost lăsat. Rulat pe baza
locală: 376 reparate în 61 de articole la prima rulare, 0 la a doua,
„72 already clean". Verificat și că imaginea containerului conține ce importă
scriptul.
Verificare
Șase teste noi în backend/tests/hyperhub-links.test.ts care păzesc datele, nu
doar funcția: că niciun href din articole nu mai e o adresă moartă, că nu mai
există nicio formă /get-, ?product-type= sau /blog/, că fiecare înlocuitor
duce la un produs, o colecție sau un articol care chiar există în catalog, și că
o a doua rulare nu schimbă nimic.
Backend 417 teste în 26 de fișiere, frontend 158 în 19; build-uri și typecheck curate.
Closes #6 (closed)