@turnipxenon/pineapple 4.1.4 → 4.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -17,50 +17,37 @@ export const load = async (): Promise<OverridableMetaProps> => {
17
17
  -->
18
18
 
19
19
  <script lang="ts">
20
- import WebThumbnailImage from "../../assets/placeholder/placeholder_circle.png";
20
+ import { pinyaHead } from "../../ui/templates/runes.svelte";
21
21
 
22
-
23
- import { page } from "$app/stores";
24
- import type { OverridableMetaProps } from "./OverridableMetaProps";
25
22
  interface Props {
26
23
  rootUrl?: string;
27
24
  title?: string;
28
25
  ogTitle?: string;
29
26
  ogDescription?: string;
30
- ogImage?: any;
27
+ ogImage?: string[];
31
28
  }
32
29
 
33
30
  let {
34
- rootUrl = "http://localhost:5173",
35
- title = "Welcome to my portfolio",
36
- ogTitle = "Turnip time!",
37
- ogDescription = "Welcome to Turnip's test portfolio",
38
- ogImage = WebThumbnailImage
31
+ rootUrl = undefined,
32
+ title = undefined,
33
+ ogTitle = undefined,
34
+ ogDescription = undefined,
35
+ ogImage = undefined
39
36
  }: Props = $props();
40
37
 
41
- const data: OverridableMetaProps = $state({
42
- title: "Welcome to my portfolio",
43
- ogUrl: "https://www.crouton.net/",
44
- ogTitle: "Turnip time!",
45
- ogDescription: "Welcome to Turnip's test portfolio",
46
- ogImage: WebThumbnailImage
47
- });
48
- page.subscribe(p => {
49
- const pageData: OverridableMetaProps = p.data;
50
- data.title = pageData.title ?? title;
51
- data.ogUrl = `${rootUrl}${p.url.pathname}`;
52
- data.ogTitle = pageData.ogTitle ?? ogTitle;
53
- data.ogDescription = pageData.ogDescription ?? ogDescription;
54
- data.ogImage = pageData.ogImage ?? ogImage;
55
- });
38
+ if (rootUrl) {
39
+ pinyaHead.rootUrl = rootUrl;
40
+ }
41
+ if (title) {
42
+ pinyaHead.title = title;
43
+ }
44
+ if (ogTitle) {
45
+ pinyaHead.ogTitle = ogTitle;
46
+ }
47
+ if (ogDescription) {
48
+ pinyaHead.ogDescription = ogDescription;
49
+ }
50
+ if (ogImage) {
51
+ pinyaHead.ogImage = ogImage;
52
+ }
56
53
  </script>
57
-
58
- <svelte:head>
59
- <meta charset="utf-8" />
60
- <title>{data.title}</title>
61
- <meta name="twitter:card" content="summary" />
62
- <meta property="og:url" content={data.ogUrl} />
63
- <meta property="og:title" content={data.ogTitle} />
64
- <meta property="og:description" content={data.ogDescription} />
65
- <meta property="og:image" content={data.ogImage} />
66
- </svelte:head>
@@ -3,7 +3,7 @@ interface Props {
3
3
  title?: string;
4
4
  ogTitle?: string;
5
5
  ogDescription?: string;
6
- ogImage?: any;
6
+ ogImage?: string[];
7
7
  }
8
8
  declare const OverridableMeta: import("svelte").Component<Props, {}, "">;
9
9
  type OverridableMeta = ReturnType<typeof OverridableMeta>;
@@ -22,7 +22,7 @@
22
22
  title={parsnipEntry.basename}
23
23
  ogTitle={parsnipEntry.basename}
24
24
  ogDescription={parsnipEntry.tagline}
25
- ogImage={`${getCmsBaseUrl()}/${parsnipEntry.preview}`}
25
+ ogImage={[`${getCmsBaseUrl()}/${parsnipEntry.preview}`]}
26
26
  />
27
27
 
28
28
  <BlogTemplate pageMeta={pageMeta}>
@@ -1,4 +1,5 @@
1
1
  <script lang="ts">
2
+ import { pinyaHead } from "./runes.svelte";
2
3
  import { ModeWatcher } from "mode-watcher";
3
4
  import { Modals } from "svelte-modals";
4
5
  import { page } from "$app/state";
@@ -9,8 +10,21 @@
9
10
  import { ToastProvider } from "@skeletonlabs/skeleton-svelte";
10
11
 
11
12
  let { children } = $props();
13
+
14
+ const ogUrl = $derived(`${pinyaHead.rootUrl}${page.url.pathname}`);
12
15
  </script>
13
16
 
17
+ <svelte:head>
18
+ <meta charset="utf-8" />
19
+ <title>{pinyaHead.title}</title>
20
+ <meta property="og:url" content={ogUrl} />
21
+ <meta property="og:title" content={pinyaHead.ogTitle} />
22
+ <meta property="og:description" content={pinyaHead.ogDescription} />
23
+ {#each pinyaHead.ogImage ?? [] as imgUrl, idx (`${idx}_${imgUrl}`)}
24
+ <meta property="og:image" content={imgUrl} />
25
+ {/each}
26
+ </svelte:head>
27
+
14
28
  <Modals>
15
29
  <!-- shown when any modal is opened -->
16
30
  {#snippet backdrop({ close })}
@@ -45,4 +59,4 @@
45
59
  background: rgba(0, 0, 0, 0.50);
46
60
  backdrop-filter: blur(4px);
47
61
  }
48
- </style>
62
+ </style>
@@ -0,0 +1,8 @@
1
+ export interface PinyaHead {
2
+ rootUrl?: string;
3
+ title?: string;
4
+ ogTitle?: string;
5
+ ogDescription?: string;
6
+ ogImage?: string[];
7
+ }
8
+ export declare const pinyaHead: PinyaHead;
@@ -0,0 +1,9 @@
1
+ import WebThumbnailImage from "../../assets/placeholder/placeholder_circle.png";
2
+ const defaultData = {
3
+ rootUrl: "http://localhost:5173",
4
+ title: "Welcome to my portfolio",
5
+ ogTitle: "Turnip time!",
6
+ ogDescription: "Welcome to Turnip's test portfolio",
7
+ ogImage: [WebThumbnailImage]
8
+ };
9
+ export const pinyaHead = $state({ ...defaultData });
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@turnipxenon/pineapple",
3
3
  "description": "personal package for base styling for other personal projects",
4
- "version": "4.1.4",
4
+ "version": "4.2.1",
5
5
  "scripts": {
6
6
  "dev": "vite dev",
7
7
  "build": "vite build && yarn package",