@yimingliao/cms 0.0.239 → 0.0.241

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.
@@ -9,8 +9,8 @@ import { toOgLocale } from './utils/to-og-locale.js';
9
9
 
10
10
  function createBuildArticleMetadata(siteConfig, storageUrl) {
11
11
  return function buildArticleMetadata(urls, post, locale) {
12
- const { defaultLocale, locales, siteUrl, siteName, siteDescription } = siteConfig;
13
- const resolvedLocale = locale ?? defaultLocale;
12
+ const { defaultLocale, locales, site } = siteConfig;
13
+ const resolvedLocale = locale || defaultLocale;
14
14
  const seoMetadata = findTranslation(post?.seoMetadatas, locale);
15
15
  const authorT = findTranslation(post?.author?.translations, locale);
16
16
  const coverImageT = findTranslation(post?.coverImage?.translations, locale);
@@ -18,12 +18,12 @@ function createBuildArticleMetadata(siteConfig, storageUrl) {
18
18
  post?.tags.map((t) => findTranslation(t.translations, locale).title)
19
19
  );
20
20
  return {
21
- metadataBase: siteUrl,
21
+ metadataBase: site.url,
22
22
  // -----------------------------------------------------------------------
23
23
  // Basic
24
24
  // -----------------------------------------------------------------------
25
- title: seoMetadata.title || siteName[resolvedLocale],
26
- description: seoMetadata.description || siteDescription[resolvedLocale],
25
+ title: seoMetadata.title || site.name[resolvedLocale],
26
+ description: seoMetadata.description || site.description[resolvedLocale],
27
27
  // identity
28
28
  authors: [
29
29
  {
@@ -34,7 +34,7 @@ function createBuildArticleMetadata(siteConfig, storageUrl) {
34
34
  // url
35
35
  // url
36
36
  alternates: {
37
- canonical: seoMetadata.canonical ?? urls.canonical,
37
+ canonical: seoMetadata.canonical || urls.canonical,
38
38
  languages: seoMetadata.alternate?.length ? buildAlternateMap(seoMetadata.alternate) : urls.alternates
39
39
  },
40
40
  // robots
@@ -53,7 +53,7 @@ function createBuildArticleMetadata(siteConfig, storageUrl) {
53
53
  url: seoMetadata.ogUrl || seoMetadata.canonical || void 0,
54
54
  // identity
55
55
  type: ensureOgType("article", seoMetadata.ogType),
56
- siteName: seoMetadata.ogSiteName || siteName[resolvedLocale],
56
+ siteName: seoMetadata.ogSiteName || site.name[resolvedLocale],
57
57
  // image
58
58
  images: buildOgImages({
59
59
  url: seoMetadata.ogImage || `${storageUrl}/${post?.coverImage?.key}`,
@@ -64,7 +64,7 @@ function createBuildArticleMetadata(siteConfig, storageUrl) {
64
64
  height: seoMetadata.ogImageHeight
65
65
  }),
66
66
  // locale
67
- locale: seoMetadata.ogLocale ?? toOgLocale(resolvedLocale),
67
+ locale: seoMetadata.ogLocale || toOgLocale(resolvedLocale),
68
68
  alternateLocale: sanitizeStringArray(
69
69
  seoMetadata.ogLocaleAlternate?.length ? seoMetadata.ogLocaleAlternate : locales.filter((l) => l !== resolvedLocale).map(toOgLocale)
70
70
  ),
@@ -75,7 +75,7 @@ function createBuildArticleMetadata(siteConfig, storageUrl) {
75
75
  Boolean
76
76
  ),
77
77
  section: seoMetadata.ogArticleSection,
78
- tags: sanitizeStringArray(seoMetadata.ogArticleTag) ?? tags
78
+ tags: sanitizeStringArray(seoMetadata.ogArticleTag) || tags
79
79
  },
80
80
  // -----------------------------------------------------------------------
81
81
  // Twitter
@@ -8,26 +8,19 @@ 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;
19
- const resolvedLocale = locale ?? defaultLocale;
11
+ const { defaultLocale, locales, site } = siteConfig;
12
+ const resolvedLocale = locale || defaultLocale;
20
13
  const seoMetadata = findTranslation(post?.seoMetadatas, locale);
21
14
  return {
22
- metadataBase: siteUrl,
15
+ metadataBase: site.url,
23
16
  // -----------------------------------------------------------------------
24
17
  // Basic
25
18
  // -----------------------------------------------------------------------
26
- title: seoMetadata.title || siteName[resolvedLocale],
27
- description: seoMetadata.description || siteDescription[resolvedLocale],
19
+ title: seoMetadata.title || site.name[resolvedLocale],
20
+ description: seoMetadata.description || site.description[resolvedLocale],
28
21
  // url
29
22
  alternates: {
30
- canonical: seoMetadata.canonical ?? urls.canonical,
23
+ canonical: seoMetadata.canonical || urls.canonical,
31
24
  languages: seoMetadata.alternate?.length ? buildAlternateMap(seoMetadata.alternate) : urls.alternates
32
25
  },
33
26
  // robots
@@ -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 || siteName[resolvedLocale],
42
+ siteName: seoMetadata.ogSiteName || site.name[resolvedLocale],
50
43
  // image
51
44
  images: seoMetadata.ogImage ? buildOgImages({
52
45
  url: seoMetadata.ogImage,
@@ -55,9 +48,16 @@ function createBuildWebsiteMetadata(siteConfig) {
55
48
  type: seoMetadata.ogImageType,
56
49
  width: seoMetadata.ogImageWidth,
57
50
  height: seoMetadata.ogImageHeight
58
- }) : buildOgImages(defaultImage),
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
- locale: seoMetadata.ogLocale ?? toOgLocale(resolvedLocale),
60
+ locale: seoMetadata.ogLocale || toOgLocale(resolvedLocale),
61
61
  alternateLocale: sanitizeStringArray(
62
62
  seoMetadata.ogLocaleAlternate?.length ? seoMetadata.ogLocaleAlternate : locales.filter((l) => l !== resolvedLocale).map(toOgLocale)
63
63
  )
@@ -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
- siteUrl: string;
16
- siteName: LocalizedText<Locale>;
17
- siteDescription: LocalizedText<Locale>;
18
- defaultImage: ImageAsset;
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,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,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,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAChC,eAAe,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAKvC,YAAY,EAAE,UAAU,CAAC;CAC1B,CAAC"}
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 +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,CAmFZ"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yimingliao/cms",
3
- "version": "0.0.239",
3
+ "version": "0.0.241",
4
4
  "author": "Yiming Liao",
5
5
  "license": "MIT",
6
6
  "type": "module",