fix(armaflex): rename misspelled 'armflex' slug to 'armaflex' everywhere
- Route /armflex -> /armaflex (page file + nav/listing links) - Image folder public/images/armflex/ -> public/images/armaflex/ - Fix gallery alt-text 'Armflex' -> 'Armaflex' - Add nginx 301 redirect so old /armflex URL still works (SEO-safe) - Update engineering log + handoff Verified: npm run build (44 pages), tsc --noEmit, nginx -t, live probe /armaflex/ 200, zero stale 'armflex' refs.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
---
|
||||
title: Deal Plus Tech Engineering Handoff
|
||||
updated: 2026-08-30
|
||||
updated: 2026-09-08
|
||||
---
|
||||
# Engineering Handoff
|
||||
|
||||
@@ -8,13 +8,14 @@ updated: 2026-08-30
|
||||
|
||||
- Repository: `/Users/kunthawat/Gitea/dealplustech-astroreal`
|
||||
- Branch: `main`
|
||||
- Code commit: `c0d8cacfbeb328424138b26e22cb31e82db453b6` (pushed and verified at `origin/main` before this handoff update)
|
||||
- Code commit: `c0d8cacfbeb328424138b26e22cb31e82db453b6` (last pushed to `origin/main` on 2026-08-30); Armaflex rename changes staged and pending this handoff commit
|
||||
- HEAD: current branch tip of `main`; verify with `git rev-parse HEAD` after the handoff update
|
||||
- Remote target: `origin/main`
|
||||
- Working tree: clean after the verified code commit; this handoff metadata update is the only pending change
|
||||
- Working tree: Armaflex slug/image rename + nginx 301 staged; handoff/log metadata is the only other pending change
|
||||
|
||||
## Completed
|
||||
|
||||
- **Armaflex slug rename** — `armflex` → `armaflex` (route, image folder, nav/listing links, gallery alt-text) + nginx 301 for the old URL
|
||||
- CcooL product page: `/ฉนวนหุ้มท่อ-ccool/`
|
||||
- CcooL images and pricing PDF added under `public/`
|
||||
- Navigation, product listing, breadcrumb, metadata, FAQ, Product JSON-LD, and CTA tracking updated
|
||||
@@ -25,12 +26,13 @@ updated: 2026-08-30
|
||||
|
||||
## Verification
|
||||
|
||||
- `npm run build` → **pass**, 44 pages
|
||||
- `npx tsc --noEmit` → **pass**
|
||||
- `git diff --cached --check` → **pass**
|
||||
- Independent reviewer → **pass**, no security concerns or logic errors
|
||||
- Static output → 44 HTML pages, JSON-LD parses, Umami attributes are well-formed, images have `alt`; baseline-only duplicate SVG ID and blank-target links remain
|
||||
- Assets → five 1024×768 images; five-page A4 PDF; no PDF JavaScript/encryption
|
||||
- `npm run build` → **pass**, 44 pages (Armaflex rename)
|
||||
- `npx tsc --noEmit` → **pass** (no errors)
|
||||
- `git diff --check` → **pass**
|
||||
- `nginx -t` on the edited config → **syntax ok** (301 `armflex → armaflex`)
|
||||
- Live static probe on `dist/` → `GET /armaflex/` 200, `GET /images/armaflex/gallery-1.jpg` 200, old `/armflex/` 404 at static layer (nginx 301 intercepts at deploy)
|
||||
- Source/output scan → zero `armflex` references remain (all `armaflex`)
|
||||
- Independent reviewer (prior CcooL/SEO work) → **pass**, no security concerns or logic errors
|
||||
|
||||
## Known Limitations / Blockers
|
||||
|
||||
@@ -49,5 +51,6 @@ updated: 2026-08-30
|
||||
|
||||
## Evidence Index
|
||||
|
||||
- [[2026-09-08-armaflex-slug-rename]]
|
||||
- [[2026-08-30-seo-audit-fixes]]
|
||||
- [[../test-evidence/2026-08-30-ccool-seo]]
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
title: Deal Plus Tech Engineering Log
|
||||
updated: 2026-08-30
|
||||
updated: 2026-09-08
|
||||
---
|
||||
# Engineering Log
|
||||
|
||||
@@ -10,6 +10,7 @@ Latest verified code commit: `c0d8cacfbeb328424138b26e22cb31e82db453b6` pushed t
|
||||
|
||||
| Milestone | Status | Last verified | Evidence | Next action |
|
||||
|---|---|---|---|---|
|
||||
| Armaflex slug rename (armflex → armaflex) | complete | 2026-09-08 | `npm run build` 44 pages, `tsc --noEmit` clean, live probe `/armaflex/` 200, old slug 301 in nginx.conf | Push + EasyPanel rebuild; verify live 301 on production |
|
||||
| CcooL product page and navigation | complete | 2026-08-30 | `npm run build` produced 44 static pages, including `/ฉนวนหุ้มท่อ-ccool/` | Confirm production domain before the next deploy/SEO change |
|
||||
| SEO trust-layer fixes | complete | 2026-08-30 | robots/sitemap, internal links, metadata, legal-page headings, and claim wording checked in built output | Fix production soft-404 routing at the server layer |
|
||||
| Umami event convention | complete | 2026-08-30 | Source/output scan found no malformed `data-umami-event` attributes | Review event reports after real traffic arrives |
|
||||
@@ -24,6 +25,7 @@ Latest verified code commit: `c0d8cacfbeb328424138b26e22cb31e82db453b6` pushed t
|
||||
|
||||
## Entry Index
|
||||
|
||||
- [[2026-09-08-armaflex-slug-rename]] — armflex → armaflex slug/image rename + nginx 301, verification, and push handoff.
|
||||
- [[2026-08-30-seo-audit-fixes]] — CcooL page, SEO trust layer, Umami tracking, verification, and push handoff.
|
||||
|
||||
## Plan Synchronization
|
||||
|
||||
46
docs/engineering-log/2026-09-08-armaflex-slug-rename.md
Normal file
46
docs/engineering-log/2026-09-08-armaflex-slug-rename.md
Normal file
@@ -0,0 +1,46 @@
|
||||
---
|
||||
title: Armaflex product slug rename (armflex → armaflex)
|
||||
status: complete
|
||||
verified: 2026-09-08
|
||||
---
|
||||
# Armaflex Product Slug Rename (armflex → armaflex)
|
||||
|
||||
## Plan Status
|
||||
|
||||
**complete** — the misspelled `armflex` product slug was renamed to `armaflex` (the correct Armaflex/Armacell brand spelling) across route, image folder, navigation, and alt-text, with an nginx 301 redirect added so the old URL does not break.
|
||||
|
||||
**Code commit:** (to be filled after commit) on `main`.
|
||||
|
||||
## Changed Scope
|
||||
|
||||
- Renamed page `src/pages/armflex.astro` → `src/pages/armaflex.astro` (route `/armflex` → `/armaflex`) via `git mv` (history preserved).
|
||||
- Renamed image folder `public/images/armflex/` → `public/images/armaflex/` (all 12 assets) via `git mv`.
|
||||
- Updated all route/image references: `src/components/common/Header.astro`, `src/layouts/BaseLayout.astro` (category slug + Armaflex subcategory slug), `src/pages/all-products.astro`, `src/pages/404.astro`, and the page's own image paths.
|
||||
- Corrected gallery `alt="Armflex …"` → `alt="Armaflex …"` (5 images) in `src/pages/armaflex.astro`.
|
||||
- Added a 301 redirect in `nginx.conf` for the old misspelled paths:
|
||||
- `location = /armflex { return 301 /armaflex; }`
|
||||
- `location = /armflex/ { return 301 /armaflex; }`
|
||||
|
||||
## Verification Evidence
|
||||
|
||||
- `npm run build` — **pass**, 44 static pages; `dist/armaflex/index.html` generated (70.8 KB); `dist/armflex/index.html` gone; `dist/images/armaflex/` populated; `dist/images/armflex/` gone.
|
||||
- `npx tsc --noEmit` — **pass** (no errors).
|
||||
- `git diff --check` — **pass**.
|
||||
- Source scan — `grep -rn 'armflex' src | grep -v armaflex` returns nothing (clean); all 5 nav/listing links now point to `/armaflex`.
|
||||
- Built output scan — no stale `/armflex` hrefs or `images/armflex/` paths; gallery alt-text reads "Armaflex ภาพที่ 1–5"; H1 reads "Armaflex Class 1 ชนิดม้วน".
|
||||
- Live static probe (`python3 -m http.server` on `dist/`): `GET /armaflex/` → 200, `GET /images/armaflex/gallery-1.jpg` → 200, old `GET /armflex/` → 404 at the static layer (the nginx 301 intercepts it at deploy time).
|
||||
- `nginx -t` on the edited config (wrapped in the required `events{}`/`http{}` blocks) — **syntax is ok / test is successful**.
|
||||
|
||||
## Tooling Limitations
|
||||
|
||||
- `npm test` unavailable (no `test` script in `package.json`).
|
||||
- The nginx 301 was validated for syntax locally and by logic; it is served by EasyPanel's nginx container at deploy time, so the live `armflex → armaflex` redirect was not exercised against the production endpoint in this session.
|
||||
|
||||
## Risks and Remaining Work
|
||||
|
||||
1. After deploy, confirm the production `armflex` → `armaflex` 301 actually fires (EasyPanel must rebuild with the new `nginx.conf`).
|
||||
2. Confirm the real production domain before any domain-dependent SEO action (existing known limitation, unchanged).
|
||||
|
||||
## Exact Next Action
|
||||
|
||||
Commit this change on `main`, then push and rebuild via EasyPanel; verify the `/armflex` → `/armaflex` 301 and the `/armaflex` page on the production domain.
|
||||
Reference in New Issue
Block a user