@djangocfg/nextjs 2.1.225 → 2.1.226
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/README.md +49 -80
- package/dist/config/index.mjs +6 -17
- package/dist/config/index.mjs.map +1 -1
- package/dist/index.d.mts +1 -6
- package/dist/index.mjs +9 -865
- package/dist/index.mjs.map +1 -1
- package/dist/og-image/index.d.mts +40 -100
- package/dist/og-image/index.mjs +46 -823
- package/dist/og-image/index.mjs.map +1 -1
- package/package.json +14 -25
- package/src/index.ts +0 -3
- package/src/og-image/README.md +142 -53
- package/src/og-image/index.ts +3 -27
- package/src/og-image/metadata.ts +67 -0
- package/src/og-image/types.ts +28 -44
- package/src/og-image/url.ts +58 -0
- package/dist/og-image/components/index.d.mts +0 -59
- package/dist/og-image/components/index.mjs +0 -338
- package/dist/og-image/components/index.mjs.map +0 -1
- package/dist/og-image/utils/index.d.mts +0 -308
- package/dist/og-image/utils/index.mjs +0 -327
- package/dist/og-image/utils/index.mjs.map +0 -1
- package/src/og-image/components/DefaultTemplate.tsx +0 -369
- package/src/og-image/components/index.ts +0 -9
- package/src/og-image/route.tsx +0 -312
- package/src/og-image/utils/fonts.ts +0 -150
- package/src/og-image/utils/index.ts +0 -28
- package/src/og-image/utils/metadata.ts +0 -269
- package/src/og-image/utils/url.ts +0 -386
|
@@ -1,112 +1,52 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import { Metadata } from 'next';
|
|
2
|
+
|
|
3
|
+
type OGPreset = 'DARK' | 'DARK_BLUE' | 'DARK_PURPLE' | 'DARK_GREEN' | 'DARK_ROSE' | 'LIGHT' | 'LIGHT_GRAY' | 'LIGHT_WARM' | 'LIGHT_GREEN';
|
|
4
|
+
type OGLayout = 'DEFAULT' | 'HERO' | 'ARTICLE' | 'MINIMAL';
|
|
5
|
+
/** Mirrors Django OGImageParams exactly */
|
|
6
|
+
interface OGImageParams {
|
|
7
|
+
title: string;
|
|
8
|
+
description?: string;
|
|
9
|
+
locale?: string;
|
|
10
|
+
style?: 'dark' | 'light';
|
|
11
|
+
bg_color?: string;
|
|
12
|
+
bg_color2?: string;
|
|
13
|
+
text_color?: string;
|
|
14
|
+
accent_color?: string;
|
|
15
|
+
/** e.g. "1200x630" */
|
|
16
|
+
size?: string;
|
|
17
|
+
preset?: OGPreset;
|
|
18
|
+
layout?: OGLayout;
|
|
19
|
+
/** Excluded from cache key on Django side */
|
|
20
|
+
page_url?: string;
|
|
21
|
+
}
|
|
8
22
|
|
|
9
23
|
/**
|
|
10
|
-
* OG
|
|
11
|
-
*
|
|
12
|
-
* Factory function to create OG Image route handler for Next.js App Router
|
|
24
|
+
* Builds an absolute (or relative) OG image URL pointing to Django's
|
|
25
|
+
* django_ogimage endpoint: /cfg/og/<base64params>/
|
|
13
26
|
*
|
|
14
|
-
*
|
|
15
|
-
* ```tsx
|
|
16
|
-
* // app/api/og/route.tsx
|
|
17
|
-
* import { createOgImageHandler } from '@djangocfg/nextjs/og-image';
|
|
18
|
-
* import { MyTemplate } from './templates';
|
|
19
|
-
*
|
|
20
|
-
* export const { GET, runtime } = createOgImageHandler({
|
|
21
|
-
* template: MyTemplate,
|
|
22
|
-
* defaultProps: {
|
|
23
|
-
* siteName: 'My Site',
|
|
24
|
-
* },
|
|
25
|
-
* fonts: [{ family: 'Manrope', weight: 700 }],
|
|
26
|
-
* });
|
|
27
|
-
* ```
|
|
27
|
+
* The URL is suitable for use in og:image and twitter:image meta tags.
|
|
28
28
|
*/
|
|
29
|
+
declare function buildOgUrl(params: OGImageParams): string;
|
|
29
30
|
|
|
30
|
-
interface OgImageHandlerConfig {
|
|
31
|
-
/** Custom template component (optional, defaults to DefaultTemplate) */
|
|
32
|
-
template?: (props: OgImageTemplateProps) => ReactElement;
|
|
33
|
-
/** Default props to merge with query params */
|
|
34
|
-
defaultProps?: Partial<OgImageTemplateProps>;
|
|
35
|
-
/** Google Fonts to load */
|
|
36
|
-
fonts?: Array<{
|
|
37
|
-
family: string;
|
|
38
|
-
weight: 400 | 500 | 600 | 700 | 800 | 900;
|
|
39
|
-
}>;
|
|
40
|
-
/** Image size */
|
|
41
|
-
size?: {
|
|
42
|
-
width: number;
|
|
43
|
-
height: number;
|
|
44
|
-
};
|
|
45
|
-
/** Enable debug mode */
|
|
46
|
-
debug?: boolean;
|
|
47
|
-
}
|
|
48
31
|
/**
|
|
49
|
-
*
|
|
32
|
+
* Creates Next.js Metadata fragment with og:image and twitter:image
|
|
33
|
+
* pointing to Django's django_ogimage renderer.
|
|
50
34
|
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
* // app/api/og/route.tsx
|
|
54
|
-
* import { createOgImageHandler } from '@djangocfg/nextjs/og-image';
|
|
55
|
-
* import { MyTemplate } from '@/components/MyTemplate';
|
|
56
|
-
*
|
|
57
|
-
* export const { GET, runtime } = createOgImageHandler({
|
|
58
|
-
* template: MyTemplate,
|
|
59
|
-
* defaultProps: { siteName: 'My Site' },
|
|
60
|
-
* fonts: [{ family: 'Inter', weight: 700 }],
|
|
61
|
-
* });
|
|
62
|
-
* ```
|
|
35
|
+
* Usage in generateMetadata():
|
|
36
|
+
* return createOgMetadata({ title: 'Page', preset: 'DARK_BLUE' })
|
|
63
37
|
*/
|
|
64
|
-
declare function
|
|
65
|
-
GET: (req: NextRequest) => Promise<ImageResponse>;
|
|
66
|
-
runtime: "edge";
|
|
67
|
-
};
|
|
38
|
+
declare function createOgMetadata(params: OGImageParams): Metadata;
|
|
68
39
|
/**
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
* This is a convenience wrapper for Next.js dynamic routes like `/api/og/[data]/route.tsx`.
|
|
72
|
-
* It extracts the `data` parameter from the path and passes it to the handler as a query parameter.
|
|
73
|
-
* Also handles static export mode automatically.
|
|
74
|
-
*
|
|
75
|
-
* @example
|
|
76
|
-
* ```tsx
|
|
77
|
-
* // app/api/og/[data]/route.tsx
|
|
78
|
-
* import { createOgImageDynamicRoute } from '@djangocfg/nextjs/og-image';
|
|
79
|
-
* import { OgImageTemplate } from '@/components/OgImageTemplate';
|
|
40
|
+
* Merges og:image metadata into an existing Metadata object.
|
|
80
41
|
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
*
|
|
85
|
-
*
|
|
86
|
-
* template: OgImageTemplate,
|
|
87
|
-
* defaultProps: {
|
|
88
|
-
* siteName: 'My App',
|
|
89
|
-
* logo: '/logo.svg',
|
|
90
|
-
* },
|
|
91
|
-
* });
|
|
92
|
-
*
|
|
93
|
-
* export async function GET(
|
|
94
|
-
* request: NextRequest,
|
|
95
|
-
* { params }: { params: { data: string } }
|
|
96
|
-
) {
|
|
97
|
-
* return handler(request, params);
|
|
98
|
-
* }
|
|
99
|
-
* ```
|
|
42
|
+
* Usage:
|
|
43
|
+
* return withOgImage(
|
|
44
|
+
* { title: 'Page', description: '...' },
|
|
45
|
+
* { preset: 'DARK_BLUE', layout: 'HERO' }
|
|
46
|
+
* )
|
|
100
47
|
*/
|
|
101
|
-
declare function
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
data: string;
|
|
105
|
-
}>;
|
|
106
|
-
}) => Promise<Response>;
|
|
107
|
-
generateStaticParams: () => Promise<Array<{
|
|
108
|
-
data: string;
|
|
109
|
-
}>>;
|
|
110
|
-
};
|
|
48
|
+
declare function withOgImage(metadata: Metadata, params: OGImageParams & {
|
|
49
|
+
title?: string;
|
|
50
|
+
}): Metadata;
|
|
111
51
|
|
|
112
|
-
export { type
|
|
52
|
+
export { type OGImageParams, type OGLayout, type OGPreset, buildOgUrl, createOgMetadata, withOgImage };
|