@sharadox/metadata-web-library 0.2.0 → 0.3.0
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 +3 -3
- package/distribution/page-metadata/index.d.ts +2 -2
- package/distribution/page-metadata/index.d.ts.map +1 -1
- package/distribution/page-metadata/index.js +9 -3
- package/distribution/page-metadata/index.js.map +1 -1
- package/distribution/page-metadata/type.d.ts +8 -0
- package/distribution/page-metadata/type.d.ts.map +1 -1
- package/llms.txt +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -27,9 +27,9 @@ export async function generateMetadata({ params }) {
|
|
|
27
27
|
url: "https://sharadox.com",
|
|
28
28
|
locales: LOCALES,
|
|
29
29
|
locale,
|
|
30
|
-
title: "Sharadox
|
|
30
|
+
title: "Sharadox · Technologies that simplify the world",
|
|
31
31
|
description: "…",
|
|
32
|
-
titleTemplate: "%s
|
|
32
|
+
titleTemplate: "%s · Sharadox",
|
|
33
33
|
});
|
|
34
34
|
}
|
|
35
35
|
```
|
|
@@ -59,7 +59,7 @@ export default async function Image() {
|
|
|
59
59
|
|
|
60
60
|
| Import | Export |
|
|
61
61
|
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
62
|
-
| `…/page-metadata` | `pageMetadata({ name, url, locales, locale, title, description, path?, titleTemplate?, keywords?, indexable? })` → Next.js `Metadata`
|
|
62
|
+
| `…/page-metadata` | `pageMetadata({ name, url, locales, locale, title, description, path?, titleTemplate?, keywords?, indexable?, image? })` → Next.js `Metadata` |
|
|
63
63
|
| `…/sitemap` | `localizedSitemap({ url, locales, paths?, priority?, otherPriority?, changeFrequency?, lastModified? })` |
|
|
64
64
|
| `…/robots` | `robots({ url, indexable })` |
|
|
65
65
|
| `…/manifest` | `webManifest({ name, shortName?, description?, id?, startUrl?, backgroundColor, themeColor, icons? })`, `DEFAULT_ICONS` (`/icon.svg`, `/icon-192.png`, `/icon-512.png`, `/icon-maskable-512.png`) |
|
|
@@ -9,8 +9,8 @@ import type { PageMetadataOptions } from "@sharadox/metadata-web-library/page-me
|
|
|
9
9
|
* export async function generateMetadata({ params }) {
|
|
10
10
|
* const { locale } = await params;
|
|
11
11
|
* return pageMetadata({ name: "Sharadox", url: "https://sharadox.com", locales: LOCALES, locale,
|
|
12
|
-
* title: "Sharadox
|
|
12
|
+
* title: "Sharadox · Technologies that simplify the world", description: "…" });
|
|
13
13
|
* }
|
|
14
14
|
*/
|
|
15
|
-
export declare function pageMetadata<Locale extends string>({ name, url, locales, locale, title, description, path, titleTemplate, keywords, indexable, }: PageMetadataOptions<Locale>): Metadata;
|
|
15
|
+
export declare function pageMetadata<Locale extends string>({ name, url, locales, locale, title, description, path, titleTemplate, keywords, indexable, image, }: PageMetadataOptions<Locale>): Metadata;
|
|
16
16
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../source/page-metadata/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAErC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mDAAmD,CAAC;AAE7F;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,MAAM,SAAS,MAAM,EAAE,EAClD,IAAI,EACJ,GAAG,EACH,OAAO,EACP,MAAM,EACN,KAAK,EACL,WAAW,EACX,IAAS,EACT,aAAyC,EACzC,QAAQ,EACR,SAAgB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../source/page-metadata/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAErC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mDAAmD,CAAC;AAE7F;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,MAAM,SAAS,MAAM,EAAE,EAClD,IAAI,EACJ,GAAG,EACH,OAAO,EACP,MAAM,EACN,KAAK,EACL,WAAW,EACX,IAAS,EACT,aAAyC,EACzC,QAAQ,EACR,SAAgB,EAChB,KAAK,GACN,EAAE,mBAAmB,CAAC,MAAM,CAAC,GAAG,QAAQ,CAqCxC"}
|
|
@@ -8,10 +8,10 @@ import { SEPARATOR } from "@sharadox/web-library/text/separator";
|
|
|
8
8
|
* export async function generateMetadata({ params }) {
|
|
9
9
|
* const { locale } = await params;
|
|
10
10
|
* return pageMetadata({ name: "Sharadox", url: "https://sharadox.com", locales: LOCALES, locale,
|
|
11
|
-
* title: "Sharadox
|
|
11
|
+
* title: "Sharadox · Technologies that simplify the world", description: "…" });
|
|
12
12
|
* }
|
|
13
13
|
*/
|
|
14
|
-
export function pageMetadata({ name, url, locales, locale, title, description, path = "", titleTemplate = `%s ${SEPARATOR} ${name}`, keywords, indexable = true, }) {
|
|
14
|
+
export function pageMetadata({ name, url, locales, locale, title, description, path = "", titleTemplate = `%s ${SEPARATOR} ${name}`, keywords, indexable = true, image, }) {
|
|
15
15
|
const address = locales.localePath(locale, path);
|
|
16
16
|
return {
|
|
17
17
|
metadataBase: new URL(url),
|
|
@@ -35,8 +35,14 @@ export function pageMetadata({ name, url, locales, locale, title, description, p
|
|
|
35
35
|
alternateLocale: locales.locales
|
|
36
36
|
.filter((other) => other !== locale)
|
|
37
37
|
.map((other) => locales.openGraphLocale(other)),
|
|
38
|
+
...(image ? { images: [{ url: image.path, width: 1200, height: 630, alt: image.alt }] } : {}),
|
|
39
|
+
},
|
|
40
|
+
twitter: {
|
|
41
|
+
card: "summary_large_image",
|
|
42
|
+
title,
|
|
43
|
+
description,
|
|
44
|
+
...(image ? { images: [{ url: image.path, alt: image.alt }] } : {}),
|
|
38
45
|
},
|
|
39
|
-
twitter: { card: "summary_large_image", title, description },
|
|
40
46
|
robots: indexable
|
|
41
47
|
? { index: true, follow: true, googleBot: { index: true, follow: true, "max-image-preview": "large" } }
|
|
42
48
|
: { index: false, follow: false },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/page-metadata/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAGjE;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,YAAY,CAAwB,EAClD,IAAI,EACJ,GAAG,EACH,OAAO,EACP,MAAM,EACN,KAAK,EACL,WAAW,EACX,IAAI,GAAG,EAAE,EACT,aAAa,GAAG,MAAM,SAAS,IAAI,IAAI,EAAE,EACzC,QAAQ,EACR,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/page-metadata/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAGjE;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,YAAY,CAAwB,EAClD,IAAI,EACJ,GAAG,EACH,OAAO,EACP,MAAM,EACN,KAAK,EACL,WAAW,EACX,IAAI,GAAG,EAAE,EACT,aAAa,GAAG,MAAM,SAAS,IAAI,IAAI,EAAE,EACzC,QAAQ,EACR,SAAS,GAAG,IAAI,EAChB,KAAK,GACuB;IAC5B,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACjD,OAAO;QACL,YAAY,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC;QAC1B,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE;QAClD,WAAW;QACX,eAAe,EAAE,IAAI;QACrB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;QACxB,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,IAAI;QACf,6EAA6E;QAC7E,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,mBAAmB,EAAE;QACjE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,UAAU,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QACvE,SAAS,EAAE;YACT,IAAI,EAAE,SAAS;YACf,GAAG,EAAE,OAAO;YACZ,QAAQ,EAAE,IAAI;YACd,KAAK;YACL,WAAW;YACX,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC;YACvC,eAAe,EAAE,OAAO,CAAC,OAAO;iBAC7B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,MAAM,CAAC;iBACnC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YACjD,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9F;QACD,OAAO,EAAE;YACP,IAAI,EAAE,qBAAqB;YAC3B,KAAK;YACL,WAAW;YACX,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpE;QACD,MAAM,EAAE,SAAS;YACf,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,EAAE;YACvG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;QACnC,eAAe,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;KACtC,CAAC;AACJ,CAAC"}
|
|
@@ -17,6 +17,14 @@ export interface PageMetadataOptions<Locale extends string> {
|
|
|
17
17
|
/** How sub-pages build their titles from this one; `%s` is the sub-page's title. Default: "%s · <name>", with the shared separator. */
|
|
18
18
|
titleTemplate?: string;
|
|
19
19
|
keywords?: readonly string[];
|
|
20
|
+
/**
|
|
21
|
+
* The share card for this page, for example `{ path: "/en/opengraph-image", alt: "Sharadox" }`. Pages below the one
|
|
22
|
+
* that holds the card files need it: their own metadata would otherwise leave them without a share image.
|
|
23
|
+
*/
|
|
24
|
+
image?: {
|
|
25
|
+
path: string;
|
|
26
|
+
alt: string;
|
|
27
|
+
};
|
|
20
28
|
/** False keeps the page out of search engines (previews, demos). True by default. */
|
|
21
29
|
indexable?: boolean;
|
|
22
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../source/page-metadata/type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wDAAwD,CAAC;AAEtF,MAAM,WAAW,mBAAmB,CAAC,MAAM,SAAS,MAAM;IACxD,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,uFAAuF;IACvF,GAAG,EAAE,MAAM,CAAC;IACZ,iDAAiD;IACjD,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,mFAAmF;IACnF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uIAAuI;IACvI,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,qFAAqF;IACrF,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB"}
|
|
1
|
+
{"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../source/page-metadata/type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wDAAwD,CAAC;AAEtF,MAAM,WAAW,mBAAmB,CAAC,MAAM,SAAS,MAAM;IACxD,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,uFAAuF;IACvF,GAAG,EAAE,MAAM,CAAC;IACZ,iDAAiD;IACjD,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,mFAAmF;IACnF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uIAAuI;IACvI,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B;;;OAGG;IACH,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC,qFAAqF;IACrF,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB"}
|
package/llms.txt
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> SEO/share/install metadata for Next.js App Router sites, built on @sharadox/internationalization-web-library locales.
|
|
4
4
|
|
|
5
|
-
- `/page-metadata` pageMetadata({ name, url, locales, locale, title, description, path?, titleTemplate? = "%s · name" (shared SEPARATOR), keywords?, indexable? = true }) → Metadata (metadataBase, title template, canonical, hreflang alternates incl. x-default, openGraph with locale/alternateLocale, twitter summary_large_image, robots, formatDetection, publisher, appleWebApp title)
|
|
5
|
+
- `/page-metadata` pageMetadata({ name, url, locales, locale, title, description, path?, titleTemplate? = "%s · name" (shared SEPARATOR), keywords?, indexable? = true, image? { path, alt } (share card for sub-pages, which otherwise lose it) }) → Metadata (metadataBase, title template, canonical, hreflang alternates incl. x-default, openGraph with locale/alternateLocale, twitter summary_large_image, robots, formatDetection, publisher, appleWebApp title)
|
|
6
6
|
- `/sitemap` localizedSitemap({ url, locales, paths? = [""], priority?, otherPriority?, changeFrequency? = "monthly", lastModified? })
|
|
7
7
|
- `/robots` robots({ url, indexable })
|
|
8
8
|
- `/manifest` webManifest({ name, shortName?, description?, id? = "/", startUrl? = "/", backgroundColor, themeColor, icons? = DEFAULT_ICONS }) → standalone, online-only
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sharadox/metadata-web-library",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Everything search engines, share cards and installation need: page metadata, sitemaps, robots rules, web app manifests, JSON-LD structured data and share images for Next.js.",
|
|
5
5
|
"private": false,
|
|
6
6
|
"license": "SEE LICENSE IN LICENCA.md",
|