diff --git a/docs-src/src/content/docs/guides/install.mdx b/docs-src/src/content/docs/guides/install.mdx
index 5d53aa106..82b2835f9 100644
--- a/docs-src/src/content/docs/guides/install.mdx
+++ b/docs-src/src/content/docs/guides/install.mdx
@@ -50,11 +50,11 @@ with:
```html
```
diff --git a/landing/src/components/Header.astro b/landing/src/components/Header.astro
index 13f06feba..6cf3c343a 100644
--- a/landing/src/components/Header.astro
+++ b/landing/src/components/Header.astro
@@ -162,3 +162,34 @@ const { isHome } = Astro.props;
}
+
+
diff --git a/landing/src/pages/index.astro b/landing/src/pages/index.astro
index efeb468e9..914d43e4c 100644
--- a/landing/src/pages/index.astro
+++ b/landing/src/pages/index.astro
@@ -24,7 +24,7 @@ import MainPage from '@layouts/MainPage.astro';
-
+
`}
lang="js"
@@ -94,9 +94,25 @@ import MainPage from '@layouts/MainPage.astro';
// wait for shepherd to be ready
setTimeout(function () {
const shepherd = setupShepherd();
- const startBtn = document.querySelector('#showTour');
-
- startBtn?.addEventListener('click', () => shepherd.start());
+
+ // Check if we should auto-start the tour (after redirect from another page)
+ const shouldStartTour = sessionStorage.getItem('startTourOnLoad');
+ if (shouldStartTour) {
+ sessionStorage.removeItem('startTourOnLoad');
+ shepherd.start();
+ }
+
+ // Clean up previous listener if it exists
+ if ((window as any).__startTourAbortController) {
+ (window as any).__startTourAbortController.abort();
+ }
+
+ // Create new AbortController for this listener
+ const controller = new AbortController();
+ (window as any).__startTourAbortController = controller;
+
+ // Listen for custom event from Demo button when already on home page
+ window.addEventListener('startTour', () => shepherd.start(), { signal: controller.signal });
}, 400);
}
@@ -296,7 +312,8 @@ import MainPage from '@layouts/MainPage.astro';
}
function ready() {
- document.addEventListener('DOMContentLoaded', init);
+ // Only listen for astro:page-load which fires on both initial load and transitions
+ document.addEventListener('astro:page-load', init);
}
ready();
diff --git a/shepherd.js/dummy/index.html b/shepherd.js/dummy/index.html
index 3a28c2235..ce3ac30a0 100644
--- a/shepherd.js/dummy/index.html
+++ b/shepherd.js/dummy/index.html
@@ -122,7 +122,7 @@