@yimingliao/cms 0.0.240 → 0.0.242
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/src/shared/seo-metadata/build-article-metadata.js +8 -9
- package/dist/src/shared/seo-metadata/build-website-metadata.js +13 -13
- package/dist/types/src/domain/static/site-config.d.ts +30 -6
- package/dist/types/src/domain/static/site-config.d.ts.map +1 -1
- package/dist/types/src/shared/seo-metadata/build-article-metadata.d.ts +4 -1
- package/dist/types/src/shared/seo-metadata/build-article-metadata.d.ts.map +1 -1
- package/dist/types/src/shared/seo-metadata/build-website-metadata.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -7,9 +7,9 @@ import { sanitizeStringArray } from './utils/sanitize-string-array.js';
|
|
|
7
7
|
import { toIsoTime } from './utils/to-iso-time.js';
|
|
8
8
|
import { toOgLocale } from './utils/to-og-locale.js';
|
|
9
9
|
|
|
10
|
-
function createBuildArticleMetadata(siteConfig, storageUrl) {
|
|
10
|
+
function createBuildArticleMetadata(siteConfig, storageUrl, author) {
|
|
11
11
|
return function buildArticleMetadata(urls, post, locale) {
|
|
12
|
-
const { defaultLocale, locales,
|
|
12
|
+
const { defaultLocale, locales, site } = siteConfig;
|
|
13
13
|
const resolvedLocale = locale || defaultLocale;
|
|
14
14
|
const seoMetadata = findTranslation(post?.seoMetadatas, locale);
|
|
15
15
|
const authorT = findTranslation(post?.author?.translations, locale);
|
|
@@ -18,21 +18,20 @@ function createBuildArticleMetadata(siteConfig, storageUrl) {
|
|
|
18
18
|
post?.tags.map((t) => findTranslation(t.translations, locale).title)
|
|
19
19
|
);
|
|
20
20
|
return {
|
|
21
|
-
metadataBase:
|
|
21
|
+
metadataBase: site.url,
|
|
22
22
|
// -----------------------------------------------------------------------
|
|
23
23
|
// Basic
|
|
24
24
|
// -----------------------------------------------------------------------
|
|
25
|
-
title: seoMetadata.title ||
|
|
26
|
-
description: seoMetadata.description ||
|
|
25
|
+
title: seoMetadata.title || site.name[resolvedLocale],
|
|
26
|
+
description: seoMetadata.description || site.description[resolvedLocale],
|
|
27
27
|
// identity
|
|
28
|
-
authors: [
|
|
28
|
+
authors: author ? [author] : [
|
|
29
29
|
{
|
|
30
30
|
name: seoMetadata.author || authorT.authorName || void 0,
|
|
31
31
|
url: authorT.url || void 0
|
|
32
32
|
}
|
|
33
33
|
],
|
|
34
34
|
// url
|
|
35
|
-
// url
|
|
36
35
|
alternates: {
|
|
37
36
|
canonical: seoMetadata.canonical || urls.canonical,
|
|
38
37
|
languages: seoMetadata.alternate?.length ? buildAlternateMap(seoMetadata.alternate) : urls.alternates
|
|
@@ -53,7 +52,7 @@ function createBuildArticleMetadata(siteConfig, storageUrl) {
|
|
|
53
52
|
url: seoMetadata.ogUrl || seoMetadata.canonical || void 0,
|
|
54
53
|
// identity
|
|
55
54
|
type: ensureOgType("article", seoMetadata.ogType),
|
|
56
|
-
siteName: seoMetadata.ogSiteName ||
|
|
55
|
+
siteName: seoMetadata.ogSiteName || site.name[resolvedLocale],
|
|
57
56
|
// image
|
|
58
57
|
images: buildOgImages({
|
|
59
58
|
url: seoMetadata.ogImage || `${storageUrl}/${post?.coverImage?.key}`,
|
|
@@ -71,7 +70,7 @@ function createBuildArticleMetadata(siteConfig, storageUrl) {
|
|
|
71
70
|
// article
|
|
72
71
|
publishedTime: toIsoTime(seoMetadata.ogArticlePublishedTime),
|
|
73
72
|
modifiedTime: toIsoTime(seoMetadata.ogArticleModifiedTime),
|
|
74
|
-
authors: [seoMetadata.ogArticleAuthor || authorT.authorName].filter(
|
|
73
|
+
authors: author ? [author.name] : [seoMetadata.ogArticleAuthor || authorT.authorName].filter(
|
|
75
74
|
Boolean
|
|
76
75
|
),
|
|
77
76
|
section: seoMetadata.ogArticleSection,
|
|
@@ -8,23 +8,16 @@ import { toOgLocale } from './utils/to-og-locale.js';
|
|
|
8
8
|
|
|
9
9
|
function createBuildWebsiteMetadata(siteConfig) {
|
|
10
10
|
return function buildWebsiteMetadata(urls, post, locale) {
|
|
11
|
-
const {
|
|
12
|
-
defaultLocale,
|
|
13
|
-
locales,
|
|
14
|
-
siteUrl,
|
|
15
|
-
siteName,
|
|
16
|
-
siteDescription,
|
|
17
|
-
defaultImage
|
|
18
|
-
} = siteConfig;
|
|
11
|
+
const { defaultLocale, locales, site } = siteConfig;
|
|
19
12
|
const resolvedLocale = locale || defaultLocale;
|
|
20
13
|
const seoMetadata = findTranslation(post?.seoMetadatas, locale);
|
|
21
14
|
return {
|
|
22
|
-
metadataBase:
|
|
15
|
+
metadataBase: site.url,
|
|
23
16
|
// -----------------------------------------------------------------------
|
|
24
17
|
// Basic
|
|
25
18
|
// -----------------------------------------------------------------------
|
|
26
|
-
title: seoMetadata.title ||
|
|
27
|
-
description: seoMetadata.description ||
|
|
19
|
+
title: seoMetadata.title || site.name[resolvedLocale],
|
|
20
|
+
description: seoMetadata.description || site.description[resolvedLocale],
|
|
28
21
|
// url
|
|
29
22
|
alternates: {
|
|
30
23
|
canonical: seoMetadata.canonical || urls.canonical,
|
|
@@ -46,7 +39,7 @@ function createBuildWebsiteMetadata(siteConfig) {
|
|
|
46
39
|
url: seoMetadata.ogUrl || seoMetadata.canonical || void 0,
|
|
47
40
|
// identity
|
|
48
41
|
type: ensureOgType("website", seoMetadata.ogType),
|
|
49
|
-
siteName: seoMetadata.ogSiteName ||
|
|
42
|
+
siteName: seoMetadata.ogSiteName || site.name[resolvedLocale],
|
|
50
43
|
// image
|
|
51
44
|
images: seoMetadata.ogImage ? buildOgImages({
|
|
52
45
|
url: seoMetadata.ogImage,
|
|
@@ -55,7 +48,14 @@ function createBuildWebsiteMetadata(siteConfig) {
|
|
|
55
48
|
type: seoMetadata.ogImageType,
|
|
56
49
|
width: seoMetadata.ogImageWidth,
|
|
57
50
|
height: seoMetadata.ogImageHeight
|
|
58
|
-
}) : buildOgImages(
|
|
51
|
+
}) : buildOgImages({
|
|
52
|
+
url: site.defaultImage.url,
|
|
53
|
+
secureUrl: site.defaultImage.url,
|
|
54
|
+
alt: site.defaultImage.alt,
|
|
55
|
+
type: site.defaultImage.mimeType,
|
|
56
|
+
width: site.defaultImage.width,
|
|
57
|
+
height: site.defaultImage.height
|
|
58
|
+
}),
|
|
59
59
|
// locale
|
|
60
60
|
locale: seoMetadata.ogLocale || toOgLocale(resolvedLocale),
|
|
61
61
|
alternateLocale: sanitizeStringArray(
|
|
@@ -3,19 +3,43 @@ type LocalizedText<Locale extends string = string> = {
|
|
|
3
3
|
};
|
|
4
4
|
type ImageAsset = {
|
|
5
5
|
url: string;
|
|
6
|
-
secureUrl: string;
|
|
7
6
|
alt: string;
|
|
8
|
-
type: string;
|
|
9
7
|
width: number;
|
|
10
8
|
height: number;
|
|
9
|
+
mimeType: string;
|
|
11
10
|
};
|
|
12
11
|
export type SiteConfig<Locale extends string = string> = {
|
|
13
12
|
defaultLocale: Locale;
|
|
14
13
|
locales: readonly Locale[];
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
site: {
|
|
15
|
+
url: string;
|
|
16
|
+
name: LocalizedText<Locale>;
|
|
17
|
+
description: LocalizedText<Locale>;
|
|
18
|
+
defaultImage: ImageAsset;
|
|
19
|
+
};
|
|
20
|
+
publisher: {
|
|
21
|
+
type: "organization";
|
|
22
|
+
name: LocalizedText<Locale>;
|
|
23
|
+
url?: string;
|
|
24
|
+
sameAs?: string[];
|
|
25
|
+
description?: LocalizedText<Locale>;
|
|
26
|
+
email?: string;
|
|
27
|
+
telephone?: string;
|
|
28
|
+
foundingDate?: string;
|
|
29
|
+
address?: {
|
|
30
|
+
streetAddress?: string;
|
|
31
|
+
addressLocality?: string;
|
|
32
|
+
addressRegion?: string;
|
|
33
|
+
postalCode?: string;
|
|
34
|
+
addressCountry?: string;
|
|
35
|
+
};
|
|
36
|
+
logo?: ImageAsset;
|
|
37
|
+
} | {
|
|
38
|
+
type: "person";
|
|
39
|
+
name: LocalizedText<Locale>;
|
|
40
|
+
sameAs?: string[];
|
|
41
|
+
avatar?: ImageAsset;
|
|
42
|
+
};
|
|
19
43
|
};
|
|
20
44
|
export {};
|
|
21
45
|
//# sourceMappingURL=site-config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"site-config.d.ts","sourceRoot":"","sources":["../../../../../src/domain/static/site-config.ts"],"names":[],"mappings":"AAAA,KAAK,aAAa,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,IAAI;KAClD,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,MAAM;CACvB,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,
|
|
1
|
+
{"version":3,"file":"site-config.d.ts","sourceRoot":"","sources":["../../../../../src/domain/static/site-config.ts"],"names":[],"mappings":"AAAA,KAAK,aAAa,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,IAAI;KAClD,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,MAAM;CACvB,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,UAAU,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,IAAI;IAIvD,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAK3B,IAAI,EAAE;QACJ,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;QAC5B,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;QACnC,YAAY,EAAE,UAAU,CAAC;KAC1B,CAAC;IAKF,SAAS,EACL;QACE,IAAI,EAAE,cAAc,CAAC;QACrB,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;QAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,WAAW,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;QACpC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE;YACR,aAAa,CAAC,EAAE,MAAM,CAAC;YACvB,eAAe,CAAC,EAAE,MAAM,CAAC;YACzB,aAAa,CAAC,EAAE,MAAM,CAAC;YACvB,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,cAAc,CAAC,EAAE,MAAM,CAAC;SACzB,CAAC;QACF,IAAI,CAAC,EAAE,UAAU,CAAC;KACnB,GACD;QACE,IAAI,EAAE,QAAQ,CAAC;QACf,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;QAC5B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,MAAM,CAAC,EAAE,UAAU,CAAC;KACrB,CAAC;CACP,CAAC"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import type { SiteConfig } from "../../domain";
|
|
2
2
|
import type { PostFull } from "../../domain/resources/post/full";
|
|
3
3
|
import type { Metadata } from "next";
|
|
4
|
-
export declare function createBuildArticleMetadata<Locale extends string = string>(siteConfig: SiteConfig<Locale>, storageUrl: string
|
|
4
|
+
export declare function createBuildArticleMetadata<Locale extends string = string>(siteConfig: SiteConfig<Locale>, storageUrl: string, author?: {
|
|
5
|
+
name: string;
|
|
6
|
+
url?: string;
|
|
7
|
+
}): (urls: {
|
|
5
8
|
canonical: string;
|
|
6
9
|
alternates: Record<string, string>;
|
|
7
10
|
}, post?: PostFull, locale?: Locale) => Metadata;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-article-metadata.d.ts","sourceRoot":"","sources":["../../../../../src/shared/seo-metadata/build-article-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAUrC,wBAAgB,0BAA0B,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,EACvE,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,EAC9B,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"build-article-metadata.d.ts","sourceRoot":"","sources":["../../../../../src/shared/seo-metadata/build-article-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAUrC,wBAAgB,0BAA0B,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,EACvE,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,EAC9B,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,IAGrC,MAAM;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,EAC/D,OAAO,QAAQ,EACf,SAAS,MAAM,KACd,QAAQ,CAsGZ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-website-metadata.d.ts","sourceRoot":"","sources":["../../../../../src/shared/seo-metadata/build-website-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AASrC,wBAAgB,0BAA0B,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,EACvE,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,IAG5B,MAAM;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,EAC/D,OAAO,QAAQ,EACf,SAAS,MAAM,KACd,QAAQ,
|
|
1
|
+
{"version":3,"file":"build-website-metadata.d.ts","sourceRoot":"","sources":["../../../../../src/shared/seo-metadata/build-website-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AASrC,wBAAgB,0BAA0B,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,EACvE,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,IAG5B,MAAM;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,EAC/D,OAAO,QAAQ,EACf,SAAS,MAAM,KACd,QAAQ,CAoFZ"}
|