From 8df90f4cdedb8de43405e962b0b9c0ed6c06e79f Mon Sep 17 00:00:00 2001 From: eric-burel Date: Tue, 15 Oct 2024 16:55:04 +0200 Subject: [PATCH 01/13] can ovewrite default head links --- .../docs/guides/overriding-components.mdx | 11 +++++++++ e2e/configs/override-components.ts | 1 + packages/astro/package.json | 1 + .../src/default/components/HeadLinks.astro | 1 + packages/astro/src/default/env-default.d.ts | 3 ++- .../astro/src/default/layouts/Layout.astro | 16 +++++++++---- .../src/vite-plugins/override-components.ts | 24 +++++++++++++++++++ 7 files changed, 52 insertions(+), 5 deletions(-) create mode 100644 packages/astro/src/default/components/HeadLinks.astro diff --git a/docs/tutorialkit.dev/src/content/docs/guides/overriding-components.mdx b/docs/tutorialkit.dev/src/content/docs/guides/overriding-components.mdx index 52c09114f..fdcc3f18b 100644 --- a/docs/tutorialkit.dev/src/content/docs/guides/overriding-components.mdx +++ b/docs/tutorialkit.dev/src/content/docs/guides/overriding-components.mdx @@ -89,4 +89,15 @@ interface Props { /** Content of the dialog */ children: ReactNode; } +``` + +### HeadLinks + +Component for overriding links in the head tag. + +When overriding `HeadLinks` you can place TutorialKit's default links using the `default-links` [Astro slot](https://docs.astro.build/en/basics/astro-components/#named-slots). + +```jsx title="src/components/CustomHeadLinks.astro" + + ``` \ No newline at end of file diff --git a/e2e/configs/override-components.ts b/e2e/configs/override-components.ts index 120234dcf..ad3a81311 100644 --- a/e2e/configs/override-components.ts +++ b/e2e/configs/override-components.ts @@ -10,6 +10,7 @@ export default defineConfig({ components: { Dialog: './src/components/Dialog.tsx', TopBar: './src/components/TopBar.astro', + HeadLinks: './src/components/HeadLinks.astro', }, }), ], diff --git a/packages/astro/package.json b/packages/astro/package.json index da837197f..642731453 100644 --- a/packages/astro/package.json +++ b/packages/astro/package.json @@ -20,6 +20,7 @@ "./default/pages/index.astro": "./dist/default/pages/index.astro", "./default/pages/[...slug].astro": "./dist/default/pages/[...slug].astro", "./default/components/TopBar.astro": "./dist/default/components/TopBar.astro", + "./default/components/HeadLinks.astro": "./dist/default/components/HeadLinks.astro", "./package.json": "./package.json" }, "files": [ diff --git a/packages/astro/src/default/components/HeadLinks.astro b/packages/astro/src/default/components/HeadLinks.astro new file mode 100644 index 000000000..6cc2df642 --- /dev/null +++ b/packages/astro/src/default/components/HeadLinks.astro @@ -0,0 +1 @@ + diff --git a/packages/astro/src/default/env-default.d.ts b/packages/astro/src/default/env-default.d.ts index 101487bff..370b7c8dd 100644 --- a/packages/astro/src/default/env-default.d.ts +++ b/packages/astro/src/default/env-default.d.ts @@ -9,9 +9,10 @@ interface WebContainerConfig { declare module 'tutorialkit:override-components' { const topBar: typeof import('./src/default/components/TopBar.astro').default; + const headLinks: typeof import('./src/default/components/HeadLinks.astro').default; const dialog: typeof import('@tutorialkit/react/dialog').default; - export { topBar as TopBar, dialog as Dialog }; + export { topBar as TopBar, dialog as Dialog, headLinks as HeadLinks }; } declare const __ENTERPRISE__: boolean; diff --git a/packages/astro/src/default/layouts/Layout.astro b/packages/astro/src/default/layouts/Layout.astro index ae98d9826..777c5934a 100644 --- a/packages/astro/src/default/layouts/Layout.astro +++ b/packages/astro/src/default/layouts/Layout.astro @@ -1,4 +1,5 @@ --- +import { HeadLinks } from 'tutorialkit:override-components'; import { ViewTransitions } from 'astro:transitions'; import type { MetaTagsConfig } from '@tutorialkit/types'; import MetaTags from '../components/MetaTags.astro'; @@ -18,10 +19,17 @@ const faviconUrl = readPublicAsset('favicon.svg'); {title} {faviconUrl ? : null} - - - - + + + + + + + +