@slicemachine/adapter-sveltekit 0.3.78-beta.8 → 0.3.78
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.
- package/dist/AlternateGrid/javascript.4.svelte +227 -0
- package/dist/AlternateGrid/javascript.svelte +6 -5
- package/dist/AlternateGrid/typescript.4.svelte +224 -0
- package/dist/AlternateGrid/typescript.svelte +9 -4
- package/dist/CallToAction/javascript.4.svelte +127 -0
- package/dist/CallToAction/javascript.svelte +6 -5
- package/dist/CallToAction/typescript.4.svelte +124 -0
- package/dist/CallToAction/typescript.svelte +4 -2
- package/dist/CustomerLogos/javascript.4.svelte +124 -0
- package/dist/CustomerLogos/javascript.svelte +6 -5
- package/dist/CustomerLogos/typescript.4.svelte +121 -0
- package/dist/CustomerLogos/typescript.svelte +4 -2
- package/dist/Hero/javascript.4.svelte +190 -0
- package/dist/Hero/javascript.svelte +5 -4
- package/dist/Hero/typescript.4.svelte +187 -0
- package/dist/Hero/typescript.svelte +4 -2
- package/dist/hooks/documentation-read.cjs +14 -51
- package/dist/hooks/documentation-read.cjs.map +1 -1
- package/dist/hooks/documentation-read.js +14 -51
- package/dist/hooks/documentation-read.js.map +1 -1
- package/dist/hooks/documentation-read.templates.cjs +114 -0
- package/dist/hooks/documentation-read.templates.cjs.map +1 -0
- package/dist/hooks/documentation-read.templates.d.ts +9 -0
- package/dist/hooks/documentation-read.templates.js +114 -0
- package/dist/hooks/documentation-read.templates.js.map +1 -0
- package/dist/hooks/project-init.cjs +44 -143
- package/dist/hooks/project-init.cjs.map +1 -1
- package/dist/hooks/project-init.js +44 -143
- package/dist/hooks/project-init.js.map +1 -1
- package/dist/hooks/project-init.templates.cjs +181 -0
- package/dist/hooks/project-init.templates.cjs.map +1 -0
- package/dist/hooks/project-init.templates.d.ts +12 -0
- package/dist/hooks/project-init.templates.js +181 -0
- package/dist/hooks/project-init.templates.js.map +1 -0
- package/dist/hooks/slice-create.cjs +5 -52
- package/dist/hooks/slice-create.cjs.map +1 -1
- package/dist/hooks/slice-create.js +5 -52
- package/dist/hooks/slice-create.js.map +1 -1
- package/dist/hooks/slice-create.templates.cjs +61 -0
- package/dist/hooks/slice-create.templates.cjs.map +1 -0
- package/dist/hooks/slice-create.templates.d.ts +6 -0
- package/dist/hooks/slice-create.templates.js +61 -0
- package/dist/hooks/slice-create.templates.js.map +1 -0
- package/dist/hooks/snippet-read.cjs.map +1 -1
- package/dist/hooks/snippet-read.js.map +1 -1
- package/dist/lib/getSvelteMajor.cjs +38 -0
- package/dist/lib/getSvelteMajor.cjs.map +1 -0
- package/dist/lib/getSvelteMajor.d.ts +1 -0
- package/dist/lib/getSvelteMajor.js +16 -0
- package/dist/lib/getSvelteMajor.js.map +1 -0
- package/dist/lib/requireResolve.cjs +16 -0
- package/dist/lib/requireResolve.cjs.map +1 -0
- package/dist/lib/requireResolve.d.ts +10 -0
- package/dist/lib/requireResolve.js +16 -0
- package/dist/lib/requireResolve.js.map +1 -0
- package/dist/lib/upsertSliceLibraryIndexFile.cjs.map +1 -1
- package/dist/lib/upsertSliceLibraryIndexFile.js.map +1 -1
- package/dist/plugin.cjs +6 -3
- package/dist/plugin.cjs.map +1 -1
- package/dist/plugin.js +4 -2
- package/dist/plugin.js.map +1 -1
- package/dist/simulator/SliceSimulator.svelte +3 -2
- package/dist/simulator/SliceSimulator.svelte.d.ts +7 -19
- package/package.json +9 -9
- package/src/hooks/documentation-read.templates.ts +170 -0
- package/src/hooks/documentation-read.ts +21 -59
- package/src/hooks/project-init.templates.ts +208 -0
- package/src/hooks/project-init.ts +57 -147
- package/src/hooks/slice-create.templates.ts +103 -0
- package/src/hooks/slice-create.ts +7 -66
- package/src/lib/getSvelteMajor.ts +23 -0
- package/src/lib/requireResolve.ts +30 -0
- package/src/plugin.ts +5 -2
- package/src/simulator/SliceSimulator.svelte +3 -2
@@ -0,0 +1,170 @@
|
|
1
|
+
import { CustomType } from "@prismicio/types-internal/lib/customtypes";
|
2
|
+
import { source as svelte, source as ts, source as js } from "common-tags";
|
3
|
+
|
4
|
+
export function dataFileTemplate(args: {
|
5
|
+
model: CustomType;
|
6
|
+
typescript: boolean;
|
7
|
+
}): string {
|
8
|
+
const { model, typescript } = args;
|
9
|
+
|
10
|
+
const repeatableTS = ts`
|
11
|
+
import { createClient } from "$lib/prismicio";
|
12
|
+
import type { PageServerLoad, EntryGenerator } from './$types';
|
13
|
+
|
14
|
+
export const load: PageServerLoad = async ({ params, fetch, cookies }) => {
|
15
|
+
const client = createClient({ fetch, cookies });
|
16
|
+
|
17
|
+
const page = await client.getByUID("${model.id}", params.uid);
|
18
|
+
|
19
|
+
return {
|
20
|
+
page,
|
21
|
+
};
|
22
|
+
}
|
23
|
+
|
24
|
+
export const entries: EntryGenerator = async () => {
|
25
|
+
const client = createClient();
|
26
|
+
|
27
|
+
const pages = await client.getAllByType("${model.id}");
|
28
|
+
|
29
|
+
return pages.map((page) => {
|
30
|
+
return { uid: page.uid };
|
31
|
+
});
|
32
|
+
}
|
33
|
+
`;
|
34
|
+
|
35
|
+
const nonrepeatableTS = ts`
|
36
|
+
import { createClient } from "$lib/prismicio";
|
37
|
+
import type { PageServerLoad, EntryGenerator } from './$types';
|
38
|
+
|
39
|
+
export const load: PageServerLoad = async ({ params, fetch, cookies }) => {
|
40
|
+
const client = createClient({ fetch, cookies });
|
41
|
+
|
42
|
+
const page = await client.getSingle("${model.id}");
|
43
|
+
|
44
|
+
return {
|
45
|
+
page,
|
46
|
+
};
|
47
|
+
}
|
48
|
+
|
49
|
+
export const entries: EntryGenerator = async () => {
|
50
|
+
return [{}]
|
51
|
+
}
|
52
|
+
`;
|
53
|
+
|
54
|
+
const repeatableJS = js`
|
55
|
+
import { createClient } from "$lib/prismicio";
|
56
|
+
|
57
|
+
/* @type {import("./$types").PageServerLoad} */
|
58
|
+
export async function load({ params, fetch, cookies }) {
|
59
|
+
const client = createClient({ fetch, cookies });
|
60
|
+
|
61
|
+
const page = await client.getByUID("${model.id}", params.uid);
|
62
|
+
|
63
|
+
return {
|
64
|
+
page,
|
65
|
+
};
|
66
|
+
}
|
67
|
+
|
68
|
+
/* @type {import("./$types").EntryGenerator} */
|
69
|
+
export async function entries() {
|
70
|
+
const client = createClient();
|
71
|
+
|
72
|
+
const pages = await client.getAllByType("${model.id}");
|
73
|
+
|
74
|
+
return pages.map((page) => {
|
75
|
+
return { uid: page.uid };
|
76
|
+
});
|
77
|
+
}
|
78
|
+
`;
|
79
|
+
|
80
|
+
const nonrepeatableJS = js`
|
81
|
+
import { createClient } from "$lib/prismicio";
|
82
|
+
|
83
|
+
/* @type {import("./$types").PageServerLoad} */
|
84
|
+
export async function load({ params, fetch, cookies }) {
|
85
|
+
const client = createClient({ fetch, cookies });
|
86
|
+
|
87
|
+
const page = await client.getSingle("${model.id}");
|
88
|
+
|
89
|
+
return {
|
90
|
+
page,
|
91
|
+
};
|
92
|
+
}
|
93
|
+
|
94
|
+
/* @type {import("./$types").EntryGenerator} */
|
95
|
+
export async function entries() {
|
96
|
+
return [{}]
|
97
|
+
}
|
98
|
+
`;
|
99
|
+
|
100
|
+
if (typescript) {
|
101
|
+
return model.repeatable ? repeatableTS : nonrepeatableTS;
|
102
|
+
}
|
103
|
+
|
104
|
+
return model.repeatable ? repeatableJS : nonrepeatableJS;
|
105
|
+
}
|
106
|
+
|
107
|
+
export function componentFileTemplate(args: {
|
108
|
+
typescript: boolean;
|
109
|
+
version: number;
|
110
|
+
}): string {
|
111
|
+
const { typescript, version } = args;
|
112
|
+
|
113
|
+
const v5TS = svelte`
|
114
|
+
<script lang="ts">
|
115
|
+
import { SliceZone } from "@prismicio/svelte";
|
116
|
+
|
117
|
+
import { components } from "$lib/slices";
|
118
|
+
import type { PageProps } from "./$types";
|
119
|
+
|
120
|
+
const { data }: PageProps = $props();
|
121
|
+
</script>
|
122
|
+
|
123
|
+
<SliceZone slices={data.page.data.slices} {components} />
|
124
|
+
`;
|
125
|
+
|
126
|
+
const v5JS = svelte`
|
127
|
+
<script>
|
128
|
+
import { SliceZone } from "@prismicio/svelte";
|
129
|
+
|
130
|
+
import { components } from "$lib/slices";
|
131
|
+
|
132
|
+
/* @type {import("./$types").PageProps} */
|
133
|
+
const { data } = $props();
|
134
|
+
</script>
|
135
|
+
|
136
|
+
<SliceZone slices={data.page.data.slices} {components} />
|
137
|
+
`;
|
138
|
+
|
139
|
+
const v4TS = svelte`
|
140
|
+
<script lang="ts">
|
141
|
+
import { SliceZone } from "@prismicio/svelte";
|
142
|
+
|
143
|
+
import { components } from "$lib/slices";
|
144
|
+
import type { PageData } from "./$types";
|
145
|
+
|
146
|
+
export let data: PageData;
|
147
|
+
</script>
|
148
|
+
|
149
|
+
<SliceZone slices={data.page.data.slices} {components} />
|
150
|
+
`;
|
151
|
+
|
152
|
+
const v4JS = svelte`
|
153
|
+
<script>
|
154
|
+
import { SliceZone } from "@prismicio/svelte";
|
155
|
+
|
156
|
+
import { components } from "$lib/slices";
|
157
|
+
|
158
|
+
/* @type {import("./$types").PageData} */
|
159
|
+
export let data;
|
160
|
+
</script>
|
161
|
+
|
162
|
+
<SliceZone slices={data.page.data.slices} {components} />
|
163
|
+
`;
|
164
|
+
|
165
|
+
if (typescript) {
|
166
|
+
return version <= 4 ? v4TS : v5TS;
|
167
|
+
}
|
168
|
+
|
169
|
+
return version <= 4 ? v4JS : v5JS;
|
170
|
+
}
|
@@ -3,8 +3,14 @@ import { source } from "common-tags";
|
|
3
3
|
import type { DocumentationReadHook } from "@slicemachine/plugin-kit";
|
4
4
|
|
5
5
|
import { getJSFileExtension } from "../lib/getJSFileExtension";
|
6
|
+
import { checkIsTypeScriptProject } from "../lib/checkIsTypeScriptProject";
|
6
7
|
|
7
8
|
import type { PluginOptions } from "../types";
|
9
|
+
import {
|
10
|
+
componentFileTemplate,
|
11
|
+
dataFileTemplate,
|
12
|
+
} from "./documentation-read.templates";
|
13
|
+
import { getSvelteMajor } from "../lib/getSvelteMajor";
|
8
14
|
|
9
15
|
const nestRouteFilePath = (filePath: string, nesting: string): string => {
|
10
16
|
return [
|
@@ -22,68 +28,17 @@ export const documentationRead: DocumentationReadHook<PluginOptions> = async (
|
|
22
28
|
const { model } = data.data;
|
23
29
|
|
24
30
|
const pageDataExtension = await getJSFileExtension({ helpers, options });
|
31
|
+
const pageDataLanguage =
|
32
|
+
pageDataExtension === "ts" ? "typescript" : "javascript";
|
33
|
+
const typescript = await checkIsTypeScriptProject({ options, helpers });
|
25
34
|
|
26
|
-
const routePath = `src/routes/${
|
35
|
+
const routePath = `src/routes/[[preview=preview]]/${
|
36
|
+
model.repeatable ? "[uid]" : model.id
|
37
|
+
}`;
|
27
38
|
const dataFilePath = `${routePath}/+page.server.${pageDataExtension}`;
|
28
39
|
const componentFilePath = `${routePath}/+page.svelte`;
|
29
40
|
|
30
|
-
let dataFileContent
|
31
|
-
if (model.repeatable) {
|
32
|
-
dataFileContent = source`
|
33
|
-
import { createClient } from "$lib/prismicio";
|
34
|
-
|
35
|
-
export async function load({ params, fetch, cookies }) {
|
36
|
-
const client = createClient({ fetch, cookies });
|
37
|
-
|
38
|
-
const page = await client.getByUID("${model.id}", params.uid);
|
39
|
-
|
40
|
-
return {
|
41
|
-
page,
|
42
|
-
};
|
43
|
-
}
|
44
|
-
|
45
|
-
export async function entries() {
|
46
|
-
const client = createClient();
|
47
|
-
|
48
|
-
const pages = await client.getAllByType("${model.id}");
|
49
|
-
|
50
|
-
return pages.map((page) => {
|
51
|
-
return { uid: page.uid };
|
52
|
-
});
|
53
|
-
}
|
54
|
-
`;
|
55
|
-
} else {
|
56
|
-
dataFileContent = source`
|
57
|
-
import { createClient } from "$lib/prismicio";
|
58
|
-
|
59
|
-
export async function load({ params, fetch, cookies }) {
|
60
|
-
const client = createClient({ fetch, cookies });
|
61
|
-
|
62
|
-
const page = await client.getSingle("${model.id}");
|
63
|
-
|
64
|
-
return {
|
65
|
-
page,
|
66
|
-
};
|
67
|
-
}
|
68
|
-
|
69
|
-
export async function entries() {
|
70
|
-
return [{}]
|
71
|
-
}
|
72
|
-
`;
|
73
|
-
}
|
74
|
-
|
75
|
-
let componentFileContent = source`
|
76
|
-
<script>
|
77
|
-
import { SliceZone } from "@prismicio/svelte";
|
78
|
-
|
79
|
-
import { components } from "$lib/slices";
|
80
|
-
|
81
|
-
export let data;
|
82
|
-
</script>
|
83
|
-
|
84
|
-
<SliceZone slices={data.page.data.slices} {components} />
|
85
|
-
`;
|
86
|
-
|
41
|
+
let dataFileContent = dataFileTemplate({ model, typescript });
|
87
42
|
if (options.format) {
|
88
43
|
dataFileContent = await helpers.format(
|
89
44
|
dataFileContent,
|
@@ -92,6 +47,13 @@ export const documentationRead: DocumentationReadHook<PluginOptions> = async (
|
|
92
47
|
includeNewlineAtEnd: false,
|
93
48
|
},
|
94
49
|
);
|
50
|
+
}
|
51
|
+
|
52
|
+
let componentFileContent = componentFileTemplate({
|
53
|
+
typescript,
|
54
|
+
version: await getSvelteMajor(),
|
55
|
+
});
|
56
|
+
if (options.format) {
|
95
57
|
componentFileContent = await helpers.format(
|
96
58
|
componentFileContent,
|
97
59
|
helpers.joinPathFromRoot(componentFilePath),
|
@@ -121,7 +83,7 @@ export const documentationRead: DocumentationReadHook<PluginOptions> = async (
|
|
121
83
|
|
122
84
|
Paste in this code:
|
123
85
|
|
124
|
-
${`~~~${
|
86
|
+
${`~~~${pageDataLanguage} [${dataFilePath}]\n${dataFileContent}\n~~~`}
|
125
87
|
|
126
88
|
## Create your ${model.label}'s page component
|
127
89
|
|
@@ -0,0 +1,208 @@
|
|
1
|
+
import { source as svelte, source as ts, source as js } from "common-tags";
|
2
|
+
|
3
|
+
import { PRISMIC_ENVIRONMENT_ENVIRONMENT_VARIABLE_NAME } from "../constants";
|
4
|
+
|
5
|
+
export function prismicIOFileTemplate(args: { typescript: boolean }): string {
|
6
|
+
const { typescript } = args;
|
7
|
+
|
8
|
+
const TS = ts`
|
9
|
+
import { createClient as baseCreateClient, type Route } from "@prismicio/client";
|
10
|
+
import { type CreateClientConfig, enableAutoPreviews } from '@prismicio/svelte/kit';
|
11
|
+
import sm from "../../slicemachine.config.json";
|
12
|
+
|
13
|
+
/**
|
14
|
+
* The project's Prismic repository name.
|
15
|
+
*/
|
16
|
+
export const repositoryName =
|
17
|
+
import${"."}meta${"."}env.${PRISMIC_ENVIRONMENT_ENVIRONMENT_VARIABLE_NAME} || sm.repositoryName;
|
18
|
+
|
19
|
+
/**
|
20
|
+
* A list of Route Resolver objects that define how a document's \`url\` field is resolved.
|
21
|
+
*
|
22
|
+
* {@link https://prismic.io/docs/route-resolver}
|
23
|
+
*/
|
24
|
+
// TODO: Update the routes array to match your project's route structure.
|
25
|
+
const routes: Route[] = [
|
26
|
+
// Examples:
|
27
|
+
// { type: "homepage", path: "/" },
|
28
|
+
// { type: "page", path: "/:uid" },
|
29
|
+
];
|
30
|
+
|
31
|
+
/**
|
32
|
+
* Creates a Prismic client for the project's repository. The client is used to
|
33
|
+
* query content from the Prismic API.
|
34
|
+
*
|
35
|
+
* @param config - Configuration for the Prismic client.
|
36
|
+
*/
|
37
|
+
export const createClient = ({ cookies, ...config }: CreateClientConfig = {}) => {
|
38
|
+
const client = baseCreateClient(repositoryName, {
|
39
|
+
routes,
|
40
|
+
...config,
|
41
|
+
});
|
42
|
+
|
43
|
+
enableAutoPreviews({ client, cookies });
|
44
|
+
|
45
|
+
return client;
|
46
|
+
};
|
47
|
+
`;
|
48
|
+
|
49
|
+
const JS = js`
|
50
|
+
import { createClient as baseCreateClient } from "@prismicio/client";
|
51
|
+
import { enableAutoPreviews } from '@prismicio/svelte/kit';
|
52
|
+
import sm from "../../slicemachine.config.json";
|
53
|
+
|
54
|
+
/**
|
55
|
+
* The project's Prismic repository name.
|
56
|
+
*/
|
57
|
+
export const repositoryName =
|
58
|
+
import${"."}meta${"."}env.${PRISMIC_ENVIRONMENT_ENVIRONMENT_VARIABLE_NAME} || sm.repositoryName;
|
59
|
+
|
60
|
+
/**
|
61
|
+
* A list of Route Resolver objects that define how a document's \`url\` field is resolved.
|
62
|
+
*
|
63
|
+
* {@link https://prismic.io/docs/route-resolver#route-resolver}
|
64
|
+
*
|
65
|
+
* @type {import("@prismicio/client").Route[]}
|
66
|
+
*/
|
67
|
+
// TODO: Update the routes array to match your project's route structure.
|
68
|
+
const routes = [
|
69
|
+
// Examples:
|
70
|
+
// { type: "homepage", path: "/" },
|
71
|
+
// { type: "page", path: "/:uid" },
|
72
|
+
];
|
73
|
+
|
74
|
+
/**
|
75
|
+
* Creates a Prismic client for the project's repository. The client is used to
|
76
|
+
* query content from the Prismic API.
|
77
|
+
*
|
78
|
+
* @param {import('@prismicio/svelte/kit').CreateClientConfig} config - Configuration for the Prismic client.
|
79
|
+
*/
|
80
|
+
export const createClient = ({ cookies, ...config } = {}) => {
|
81
|
+
const client = prismic.createClient(repositoryName, {
|
82
|
+
routes,
|
83
|
+
...config,
|
84
|
+
});
|
85
|
+
|
86
|
+
enableAutoPreviews({ client, cookies });
|
87
|
+
|
88
|
+
return client;
|
89
|
+
};
|
90
|
+
`;
|
91
|
+
|
92
|
+
return typescript ? TS : JS;
|
93
|
+
}
|
94
|
+
|
95
|
+
export function sliceSimulatorPageTemplate(args: { version: number }): string {
|
96
|
+
const { version } = args;
|
97
|
+
|
98
|
+
const v5 = svelte`
|
99
|
+
<script>
|
100
|
+
import { SliceSimulator } from '@slicemachine/adapter-sveltekit/simulator';
|
101
|
+
import { SliceZone } from '@prismicio/svelte';
|
102
|
+
import { components } from '$lib/slices';
|
103
|
+
</script>
|
104
|
+
|
105
|
+
<!-- Slot syntax is used for backward compatibility with Svelte <=4. -->
|
106
|
+
<SliceSimulator let:slices>
|
107
|
+
<SliceZone {slices} {components} />
|
108
|
+
</SliceSimulator>
|
109
|
+
`;
|
110
|
+
|
111
|
+
const v4 = svelte`
|
112
|
+
<script>
|
113
|
+
import { SliceSimulator } from '@slicemachine/adapter-sveltekit/simulator';
|
114
|
+
import { SliceZone } from '@prismicio/svelte';
|
115
|
+
import { components } from '$lib/slices';
|
116
|
+
</script>
|
117
|
+
|
118
|
+
<SliceSimulator let:slices>
|
119
|
+
<SliceZone {slices} {components} />
|
120
|
+
</SliceSimulator>
|
121
|
+
`;
|
122
|
+
|
123
|
+
return version <= 4 ? v4 : v5;
|
124
|
+
}
|
125
|
+
|
126
|
+
export function previewAPIRouteTemplate(args: { typescript: boolean }): string {
|
127
|
+
const { typescript } = args;
|
128
|
+
|
129
|
+
const TS = ts`
|
130
|
+
import { redirectToPreviewURL } from '@prismicio/svelte/kit';
|
131
|
+
import { createClient } from '$lib/prismicio';
|
132
|
+
import type { RequestHandler } from "./$types";
|
133
|
+
|
134
|
+
export const GET: RequestHandler = async ({ fetch, request, cookies }) => {
|
135
|
+
const client = createClient({ fetch });
|
136
|
+
|
137
|
+
return await redirectToPreviewURL({ client, request, cookies });
|
138
|
+
}
|
139
|
+
`;
|
140
|
+
|
141
|
+
const JS = js`
|
142
|
+
import { redirectToPreviewURL } from '@prismicio/svelte/kit';
|
143
|
+
import { createClient } from '$lib/prismicio';
|
144
|
+
|
145
|
+
/* @type {import("./$types").RequestHandler} */
|
146
|
+
export async function GET({ fetch, request, cookies }) {
|
147
|
+
const client = createClient({ fetch });
|
148
|
+
|
149
|
+
return await redirectToPreviewURL({ client, request, cookies });
|
150
|
+
}
|
151
|
+
`;
|
152
|
+
|
153
|
+
return typescript ? TS : JS;
|
154
|
+
}
|
155
|
+
|
156
|
+
export function rootLayoutTemplate(args: { version: number }): string {
|
157
|
+
const { version } = args;
|
158
|
+
|
159
|
+
const v5 = svelte`
|
160
|
+
<script>
|
161
|
+
import { isFilled, asImageSrc } from '@prismicio/client';
|
162
|
+
import { PrismicPreview } from '@prismicio/svelte/kit';
|
163
|
+
import { page } from '$app/state';
|
164
|
+
import { repositoryName } from '$lib/prismicio';
|
165
|
+
|
166
|
+
const { children } = $props();
|
167
|
+
</script>
|
168
|
+
|
169
|
+
<svelte:head>
|
170
|
+
<title>{page.data.page?.data.meta_title}</title>
|
171
|
+
<meta property="og:title" content={page.data.page?.data.meta_title} />
|
172
|
+
{#if isFilled.keyText(page.data.page?.data.meta_description)}
|
173
|
+
<meta name="description" content={page.data.page.data.meta_description} />
|
174
|
+
<meta property="og:description" content={page.data.page.data.meta_description} />
|
175
|
+
{/if}
|
176
|
+
{#if isFilled.image(page.data.page?.data.meta_image)}
|
177
|
+
<meta property="og:image" content={asImageSrc(page.data.page.data.meta_image)} />
|
178
|
+
{/if}
|
179
|
+
</svelte:head>
|
180
|
+
{@render children()}
|
181
|
+
<PrismicPreview {repositoryName} />
|
182
|
+
`;
|
183
|
+
|
184
|
+
const v4 = svelte`
|
185
|
+
<script>
|
186
|
+
import { isFilled, asImageSrc } from '@prismicio/client';
|
187
|
+
import { PrismicPreview } from '@prismicio/svelte/kit';
|
188
|
+
import { page } from '$app/state';
|
189
|
+
import { repositoryName } from '$lib/prismicio';
|
190
|
+
</script>
|
191
|
+
|
192
|
+
<svelte:head>
|
193
|
+
<title>{page.data.page?.data.meta_title}</title>
|
194
|
+
<meta property="og:title" content={page.data.page?.data.meta_title} />
|
195
|
+
{#if isFilled.keyText(page.data.page?.data.meta_description)}
|
196
|
+
<meta name="description" content={page.data.page.data.meta_description} />
|
197
|
+
<meta property="og:description" content={page.data.page.data.meta_description} />
|
198
|
+
{/if}
|
199
|
+
{#if isFilled.image(page.data.page?.data.meta_image)}
|
200
|
+
<meta property="og:image" content={asImageSrc(page.data.page.data.meta_image)} />
|
201
|
+
{/if}
|
202
|
+
</svelte:head>
|
203
|
+
<slot />
|
204
|
+
<PrismicPreview {repositoryName} />
|
205
|
+
`;
|
206
|
+
|
207
|
+
return version <= 4 ? v4 : v5;
|
208
|
+
}
|