From 65bdc8dc2067d4ff66935630a047ac0314b9e5ed Mon Sep 17 00:00:00 2001 From: ponzischeme89 Date: Tue, 5 May 2026 08:12:36 +1200 Subject: [PATCH] =?UTF-8?q?-=20Add=20"Explore=20our=20other=20services"=20?= =?UTF-8?q?block=20to=20service=20landing=20pages=20=20=20with=20colour-ti?= =?UTF-8?q?nted=20cards=20+=20Our=20Pricing=20entry=20(grey=20"All=20servi?= =?UTF-8?q?ces"=20pill)=20-=20Wrap=20homepage=20Instagram=20CTA=20in=20=20-=20Always=20emit=20og:image:width/?= =?UTF-8?q?height=20with=201200x630=20fallback=20when=20=20=20image=20meta?= =?UTF-8?q?data=20is=20unknown=20-=20Add=20aria-current=3D"page"=20to=20ac?= =?UTF-8?q?tive=20desktop,=20mega-menu,=20and=20mobile=20=20=20nav=20links?= =?UTF-8?q?=20(exact-path=20match=20only=20=E2=80=94=20not=20"Services"=20?= =?UTF-8?q?parent)=20-=20Richer=20testimonial=20alt=20text=20derived=20fro?= =?UTF-8?q?m=20dog=20name=20in=20the=20detail=20=20=20field=20(e.g.=20"Arc?= =?UTF-8?q?hie,=20a=20happy=20Goodwalk=20dog=20walking=20client...")=20-?= =?UTF-8?q?=20Tier=20sitemap.xml=20priorities:=20home=201.0,=20services=20?= =?UTF-8?q?0.9,=20pricing=200.8,=20=20=20about/contact=200.7,=20legal=200.?= =?UTF-8?q?3=20(yearly=20changefreq)=20-=20Bump=20to=204.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .claude/scheduled_tasks.lock | 1 + .claude/settings.local.json | 9 + package.json | 2 +- src/lib/components/Header.svelte | 14 ++ src/lib/components/InstagramSection.svelte | 4 +- src/lib/components/SeoHead.svelte | 6 +- src/lib/components/ServiceLandingPage.svelte | 203 +++++++++++++++++- src/lib/components/TestimonialsSection.svelte | 14 +- src/routes/[slug]/+page.svelte | 6 +- src/routes/sitemap.xml/+server.ts | 33 +-- 10 files changed, 265 insertions(+), 27 deletions(-) create mode 100644 .claude/scheduled_tasks.lock create mode 100644 .claude/settings.local.json diff --git a/.claude/scheduled_tasks.lock b/.claude/scheduled_tasks.lock new file mode 100644 index 0000000..0ea8a77 --- /dev/null +++ b/.claude/scheduled_tasks.lock @@ -0,0 +1 @@ +{"sessionId":"00a1ac5c-2553-49fc-9cf5-c6ecf5a89a7c","pid":13584,"acquiredAt":1777925044532} \ No newline at end of file diff --git a/.claude/settings.local.json b/.claude/settings.local.json new file mode 100644 index 0000000..7d102c0 --- /dev/null +++ b/.claude/settings.local.json @@ -0,0 +1,9 @@ +{ + "permissions": { + "allow": [ + "Bash(kill %1)", + "Bash(pkill -f \"vite dev\")", + "Bash(npm run *)" + ] + } +} diff --git a/package.json b/package.json index d67f385..d531707 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "goodwalk-svelte-port", - "version": "4.0.2", + "version": "4.1.0", "private": true, "type": "module", "scripts": { diff --git a/src/lib/components/Header.svelte b/src/lib/components/Header.svelte index 3dd60c6..f85708f 100644 --- a/src/lib/components/Header.svelte +++ b/src/lib/components/Header.svelte @@ -56,6 +56,17 @@ return normalizePath($page.url.pathname) === normalizePath(href); } + function isExactPageMatch(href: string) { + if (!href || href.startsWith('http') || href.startsWith('#')) { + return false; + } + return normalizePath($page.url.pathname) === normalizePath(href); + } + + function ariaCurrent(href: string): 'page' | undefined { + return isExactPageMatch(href) ? 'page' : undefined; + } + function handleViewportChange() { if (window.innerWidth > 768) { mobileMenuOpen = false; @@ -79,6 +90,7 @@ href={link.href} target={linkTarget(link.external)} rel={linkRel(link.external)} + aria-current={ariaCurrent(link.href)} class:nav-link-active={isActiveLink(link.href, i === 0 && Boolean(navigation.megaMenuServices?.length))} > {link.label} @@ -96,6 +108,7 @@ href={service.href} target={linkTarget(service.href.startsWith('http'))} rel={linkRel(service.href.startsWith('http'))} + aria-current={ariaCurrent(service.href)} class="mega-service" >
@@ -183,6 +196,7 @@ href={link.href} target={linkTarget(link.external)} rel={linkRel(link.external)} + aria-current={ariaCurrent(link.href)} class:mobile-link-active={isActiveLink(link.href)} on:click={closeMenu} > diff --git a/src/lib/components/InstagramSection.svelte b/src/lib/components/InstagramSection.svelte index 7fbcad4..d655951 100644 --- a/src/lib/components/InstagramSection.svelte +++ b/src/lib/components/InstagramSection.svelte @@ -7,7 +7,7 @@ const dogCutoutSrc = '/images/smiling-dogs-instagram-cta.png'; -
+
+