Old CTAs (e.g. 'สนใจสินค้าของเรา?', 'สอบถามราคาและสั่งซื้อ',
'sนใจรั้วเทวดา?') were still present above the canonical CTA
section added in 17f4eb7. Each page now has exactly one CTA.
Deleted section types:
- 12x section gradient (สนใจสินค้าของเรา?)
- 5x section gradient (สนใจสินค้านี้? — different buttons)
- 3x box bg-primary-50 (สอบถามราคาและสั่งซื้อ)
- 2x accent gradient sections
- 1x div-based (ตู้ดับเพลิง — special format)
Verified: new CTA intact, no duplicate headings, build 40/40 OK,
HTML render: 20/20 have correct single CTA with 2 buttons.
Two changes driven by content review:
1) @JPPSELECTION → JPPSELECTION in user-visible text only
- 19 page files: drop @ from inline JPPSELECTION in <p> tags
- BaseLayout.astro + Footer.astro: drop @ from companyInfo.line
(rendered as "LINE: @JPPSELECTION" in mobile CTA + footer)
- URL line.me/ti/p/~JPPSELECTION left unchanged (the @ belongs
in the URL per line.me convention)
2) Add missing CTA section to all 20 product pages
- 16 pages had no CTA at all
- 4 pages (armflex, aeroflex, maxflex, xy-lent) had bespoke
CTA variants; replaced with canonical template
- Template copied from ppr-thai-ppr
- CTA inserted before </main> in all 20 product pages
Verified rendered HTML:
- @JPPSELECTION in <p> text = 0 across all 20 pages
- "LINE: JPPSELECTION" rendered in footer / mobile CTA
- heading + contact + line buttons present in all 20
Files touched: 30
- Extract data from each page (pill, title, image, features, hasPricelist)
- Generate hero from canonical template (text-LEFT, image-RIGHT, animated bg)
- Remove dead <Header slot=Footer slot= StickyBottomCTA slots (BaseLayout renders defaults)
- Remove dead data-price-button when id="pricelist" missing (auto-detect hides it)
- Drop legacy justify-center/max-w-md workarounds; use canonical classes
- Apply consistent TEXT-LEFT order across all product heroes
- Drop unused mobile-only sections in ตู้ดับเพลิง (page now follows template)
- Add overflow-x-clip on header/footer (submenu overflow fix)
- Add .submenu-anchor class for submenu positioning
Verified: 9 pages render with valid HTML, TEXT-LEFT, correct features, no dead links.
- Add EmDash CMS integration with SQLite and local storage
- Add blog collection (seed/seed.json) with 3 sample posts
- Add /บทความ list page and /บทความ/[slug] detail page
- Add blog section to homepage
- Fix reserved field slugs (slug, published_at removed from fields)
- Fix date field mapping (publishedAt camelCase)
- Fix featured image URL for admin-uploaded images (meta.storageKey)
- Standardize all product page hero sections
- Update navigation with 'บทความ' link
- Configure Google OAuth provider
1. Fixed animated hero background - now inside the hero section with proper class structure
2. Changed อุปกรณ์ดับเพลิง to ตู้ดับเพลิง in Header main menu
- Added 3 new brand pages: armflex.astro, aeroflex.astro, maxflex.astro
- Updated hero images with product photos from 3t-insulation.com
- Enhanced content with product specifications and benefits
- Added standard certifications (FM Approved, UL 94, GREENGUARD)
- Added product gallery sections
- Shortened menu names to brand only (Armaflex, Aeroflex, Maxflex)
- Removed old ฉนวนหุ้มท่อ.astro page
- Updated Header and BaseLayout navigation
- Downloaded product images for all 3 brands