@nakedcreativity/cee-ms-node 2.0.0-beta.4 → 2.0.0-beta.5

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 CHANGED
@@ -54,22 +54,31 @@ publish to the same bucket as Cee.ms 1 while a site moves over. Set `cachePrefix
54
54
  </head>
55
55
  ```
56
56
 
57
- It outputs the types the page has switched on in its settings, or the site's defaults for its kind of page (page,
58
- blog or article). Each is built from data Cee.ms already has:
57
+ It outputs the types the page has switched on in its settings, or the site's defaults for its kind of page (home,
58
+ page, blog or article), plus a node for the page's **entity**: what the page is about. Each is built from data
59
+ Cee.ms already has:
59
60
 
60
61
  | Type | From |
61
62
  |---|---|
62
63
  | `website` (WebSite) | the site's name and URL |
63
- | `organisation` (Organization, or a LocalBusiness type) | the organisation on the Settings screen |
64
+ | `organisation` (Organization, or a business type such as RealEstateAgent) | the organisation on the Settings screen |
64
65
  | `webpage` (WebPage) | the page's SEO title, description and social image |
65
66
  | `breadcrumb` (BreadcrumbList) | home and the page's published ancestors |
66
67
  | `article` (BlogPosting) | an article's title, description, image, date and tags |
67
68
  | `faq` (FAQPage) | the questions in the page's modules whose type maps them |
68
- | `event`, `product`, `person` | the details entered for them in the page's settings |
69
+ | `entity` (Product, Event, Person or Service) | the page's entity and the details entered for it |
69
70
 
70
- A type missing what it needs (an event with no start date, a product with no price) is left out rather than output
71
- invalid, and the tag outputs nothing when no type has data. Name types to output only those, to place them
72
- separately: `{% structureddata 'article' 'faq' %}`.
71
+ By default the site and organisation are described in full on the home page, and other pages refer to them with a
72
+ short copy (name, URL, logo). A product or event page also gets the reviews in its modules whose type maps them,
73
+ with a rating worked out from them, so the markup always matches what the page shows. Reviews on other pages are
74
+ left out: Google ignores reviews a business publishes about itself.
75
+
76
+ A node missing what it needs (an event with no start date, a product with neither a price nor reviews) is left out
77
+ rather than output invalid, and the tag outputs nothing when no node has data. Name parts to output only those, to
78
+ place them separately: `{% structureddata 'article' 'faq' %}`, `{% structureddata 'entity' %}`.
79
+
80
+ The entity is also in templates and modules as `page.entity` (`HOME`, `PAGE`, `PRODUCT`, `EVENT`, `PERSON` or
81
+ `SERVICE`), e.g. `{% if page.entity == 'PRODUCT' %}`.
73
82
 
74
83
  The organisation is also in templates as `site.organisation`, e.g. `{{ site.organisation.telephone }}`. For custom
75
84
  tags or routes, `structuredDataGraph(site, page)` returns the graph as an object.
package/lib/index.d.ts CHANGED
@@ -6,7 +6,8 @@ export * from './interfaces';
6
6
  export { signPreviewToken, verifyPreviewToken } from './preview-token';
7
7
  export { renderState } from './state';
8
8
  export { LinkDrop, wrapLinks } from './links';
9
- export { enabledTypes, serialiseJsonLd, structuredDataGraph } from './structured-data';
9
+ export { enabledTypes, entityOf, serialiseJsonLd, structuredDataGraph } from './structured-data';
10
+ export type { StructuredDataPart } from './structured-data';
10
11
  /**
11
12
  * A Cee.ms site renderer: an Express app that renders published pages, and verified editor drafts, with the
12
13
  * site's Liquid templates.
package/lib/index.js CHANGED
@@ -39,7 +39,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
39
39
  return (mod && mod.__esModule) ? mod : { "default": mod };
40
40
  };
41
41
  Object.defineProperty(exports, "__esModule", { value: true });
42
- exports.Ceems = exports.structuredDataGraph = exports.serialiseJsonLd = exports.enabledTypes = exports.wrapLinks = exports.LinkDrop = exports.renderState = exports.verifyPreviewToken = exports.signPreviewToken = void 0;
42
+ exports.Ceems = exports.structuredDataGraph = exports.serialiseJsonLd = exports.entityOf = exports.enabledTypes = exports.wrapLinks = exports.LinkDrop = exports.renderState = exports.verifyPreviewToken = exports.signPreviewToken = void 0;
43
43
  const express_1 = __importDefault(require("express"));
44
44
  const path_1 = __importDefault(require("path"));
45
45
  const fs_1 = __importDefault(require("fs"));
@@ -63,6 +63,7 @@ Object.defineProperty(exports, "LinkDrop", { enumerable: true, get: function ()
63
63
  Object.defineProperty(exports, "wrapLinks", { enumerable: true, get: function () { return links_2.wrapLinks; } });
64
64
  var structured_data_1 = require("./structured-data");
65
65
  Object.defineProperty(exports, "enabledTypes", { enumerable: true, get: function () { return structured_data_1.enabledTypes; } });
66
+ Object.defineProperty(exports, "entityOf", { enumerable: true, get: function () { return structured_data_1.entityOf; } });
66
67
  Object.defineProperty(exports, "serialiseJsonLd", { enumerable: true, get: function () { return structured_data_1.serialiseJsonLd; } });
67
68
  Object.defineProperty(exports, "structuredDataGraph", { enumerable: true, get: function () { return structured_data_1.structuredDataGraph; } });
68
69
  /**
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -88,13 +88,22 @@ export interface CeemsSiteInfo {
88
88
  defaults?: StructuredDataDefaults;
89
89
  /** For module types holding questions and answers: where they are, by module config type. */
90
90
  faqModules?: Record<string, FaqModuleMapping>;
91
+ /** For module types holding reviews, which attach to a product or event page. */
92
+ reviewModules?: Record<string, ReviewsModuleMapping>;
91
93
  };
92
94
  [key: string]: any;
93
95
  }
94
- /** A schema.org type the `{% structureddata %}` tag outputs. */
95
- export type StructuredDataType = 'WEBSITE' | 'WEBPAGE' | 'BREADCRUMB' | 'ORGANISATION' | 'ARTICLE' | 'FAQ' | 'EVENT' | 'PRODUCT' | 'PERSON';
96
+ /** A schema.org type a page or the site's defaults can switch on for `{% structureddata %}`. */
97
+ export type StructuredDataType = 'WEBSITE' | 'WEBPAGE' | 'BREADCRUMB' | 'ORGANISATION' | 'ARTICLE' | 'FAQ';
98
+ /**
99
+ * What a page is about. Products, events, people and services output their own node when they have the data;
100
+ * `HOME` is the site's front page, which by default carries the site and organisation. Templates and modules
101
+ * can read it, e.g. `{% if page.entity == 'PRODUCT' %}`.
102
+ */
103
+ export type PageEntity = 'HOME' | 'PAGE' | 'PRODUCT' | 'EVENT' | 'PERSON' | 'SERVICE';
96
104
  /** The types each kind of page outputs unless it chooses its own. */
97
105
  export interface StructuredDataDefaults {
106
+ home: StructuredDataType[];
98
107
  page: StructuredDataType[];
99
108
  blog: StructuredDataType[];
100
109
  article: StructuredDataType[];
@@ -105,6 +114,17 @@ export interface FaqModuleMapping {
105
114
  questionField: string;
106
115
  answerField: string;
107
116
  }
117
+ /** `itemsField` is a contributor field of the module; the others are fields of its items. */
118
+ export interface ReviewsModuleMapping {
119
+ itemsField: string;
120
+ authorField: string;
121
+ /** A select of numbers, or text holding one. */
122
+ ratingField: string;
123
+ bodyField?: string;
124
+ dateField?: string;
125
+ bestRating: number;
126
+ worstRating: number;
127
+ }
108
128
  /** An image value as published. */
109
129
  export interface CeemsImage {
110
130
  src: string;
@@ -121,7 +141,7 @@ export interface CeemsPostalAddress {
121
141
  country?: string;
122
142
  }
123
143
  export interface CeemsOrganisation {
124
- /** The schema.org type: `Organization` or a LocalBusiness type such as `RealEstateAgent`. */
144
+ /** The schema.org type, from Cee.ms's business types: `Organization`, or one such as `RealEstateAgent`. */
125
145
  type: string;
126
146
  name: string;
127
147
  legalName?: string;
@@ -139,7 +159,13 @@ export interface CeemsOrganisation {
139
159
  priceRange?: string;
140
160
  }
141
161
  export type CeemsAvailability = 'IN_STOCK' | 'OUT_OF_STOCK' | 'PRE_ORDER' | 'SOLD_OUT' | 'DISCONTINUED';
142
- /** A page's structured data choices and the details of the types that need their own. */
162
+ export interface CeemsOffer {
163
+ price: number;
164
+ currency: string;
165
+ url?: string;
166
+ availability?: CeemsAvailability;
167
+ }
168
+ /** A page's structured data choices, and the details of its entity. */
143
169
  export interface CeemsPageStructuredData {
144
170
  /** Absent: the site's defaults for the page's kind. */
145
171
  types?: StructuredDataType[];
@@ -156,12 +182,7 @@ export interface CeemsPageStructuredData {
156
182
  url?: string;
157
183
  };
158
184
  image?: CeemsImage;
159
- offers?: {
160
- price: number;
161
- currency: string;
162
- url?: string;
163
- availability?: CeemsAvailability;
164
- };
185
+ offers?: CeemsOffer;
165
186
  };
166
187
  product?: {
167
188
  name?: string;
@@ -169,8 +190,9 @@ export interface CeemsPageStructuredData {
169
190
  brand?: string;
170
191
  sku?: string;
171
192
  image?: CeemsImage;
172
- price: number;
173
- currency: string;
193
+ /** With `currency`; a product needs a price or reviews. */
194
+ price?: number;
195
+ currency?: string;
174
196
  availability?: CeemsAvailability;
175
197
  };
176
198
  person?: {
@@ -180,6 +202,14 @@ export interface CeemsPageStructuredData {
180
202
  image?: CeemsImage;
181
203
  sameAs?: string[];
182
204
  };
205
+ service?: {
206
+ name?: string;
207
+ description?: string;
208
+ serviceType?: string;
209
+ areaServed?: string;
210
+ image?: CeemsImage;
211
+ offers?: CeemsOffer;
212
+ };
183
213
  }
184
214
  export interface CeemsRequest extends express.Request {
185
215
  page: CeemsPage;
@@ -212,6 +242,8 @@ export interface CeemsPage {
212
242
  /** Social sharing image. */
213
243
  social?: CeemsImage;
214
244
  type?: 'blog' | 'article';
245
+ /** Published from Cee.ms with the default resolved: `HOME` for the home page, else `PAGE`. */
246
+ entity?: PageEntity;
215
247
  tags?: string[];
216
248
  /** An article's date. */
217
249
  date?: string;
@@ -1,17 +1,25 @@
1
- import type { CeemsPage, CeemsSite, StructuredDataDefaults, StructuredDataType } from './interfaces';
2
- /** Every type the `{% structureddata %}` tag can output, in the order it outputs them. */
1
+ import type { CeemsPage, CeemsSite, PageEntity, StructuredDataDefaults, StructuredDataType } from './interfaces';
2
+ /** The types a page or the site's defaults can switch on, in the order the tag outputs them. */
3
3
  export declare const STRUCTURED_DATA_TYPES: readonly StructuredDataType[];
4
- /** Used when the site has published no defaults (sites published before structured data). */
4
+ /** What `{% structureddata %}` can be limited to: the types, and the page's entity (its product, event…). */
5
+ export type StructuredDataPart = StructuredDataType | 'ENTITY';
6
+ export declare const STRUCTURED_DATA_PARTS: readonly StructuredDataPart[];
7
+ /**
8
+ * Used when the site has published no defaults. The site and organisation are described once, on the home
9
+ * page; other pages refer to them by `@id` with a short copy.
10
+ */
5
11
  export declare const DEFAULT_STRUCTURED_DATA: StructuredDataDefaults;
6
12
  type Node = Record<string, unknown>;
13
+ /** The page's entity, defaulting as Cee.ms publishes it, for pages published before entities. */
14
+ export declare function entityOf(page: CeemsPage): PageEntity;
7
15
  /** The types a page outputs: its own choice, else the site's defaults for its kind. */
8
16
  export declare function enabledTypes(site: CeemsSite, page: CeemsPage): StructuredDataType[];
9
17
  /**
10
- * The page's schema.org graph: one node for each enabled type that has the data it needs. A type missing a
11
- * required property (an event with no start date, a product with no price) is left out rather than output
12
- * invalid. `only` limits the graph to those types.
18
+ * The page's schema.org graph: one node for each enabled type that has the data it needs, and one for its
19
+ * entity. A node missing a required property (an event with no start date, a product with neither price nor
20
+ * reviews) is left out rather than output invalid. `only` limits the graph to those parts.
13
21
  */
14
- export declare function structuredDataGraph(site: CeemsSite, page: CeemsPage, only?: StructuredDataType[]): {
22
+ export declare function structuredDataGraph(site: CeemsSite, page: CeemsPage, only?: StructuredDataPart[]): {
15
23
  '@context': string;
16
24
  '@graph': Node[];
17
25
  };
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DEFAULT_STRUCTURED_DATA = exports.STRUCTURED_DATA_TYPES = void 0;
3
+ exports.DEFAULT_STRUCTURED_DATA = exports.STRUCTURED_DATA_PARTS = exports.STRUCTURED_DATA_TYPES = void 0;
4
+ exports.entityOf = entityOf;
4
5
  exports.enabledTypes = enabledTypes;
5
6
  exports.structuredDataGraph = structuredDataGraph;
6
7
  exports.serialiseJsonLd = serialiseJsonLd;
7
- /** Every type the `{% structureddata %}` tag can output, in the order it outputs them. */
8
+ /** The types a page or the site's defaults can switch on, in the order the tag outputs them. */
8
9
  exports.STRUCTURED_DATA_TYPES = [
9
10
  'WEBSITE',
10
11
  'ORGANISATION',
@@ -12,41 +13,60 @@ exports.STRUCTURED_DATA_TYPES = [
12
13
  'BREADCRUMB',
13
14
  'ARTICLE',
14
15
  'FAQ',
15
- 'EVENT',
16
- 'PRODUCT',
17
- 'PERSON',
18
16
  ];
19
- const BASE = ['WEBSITE', 'WEBPAGE', 'BREADCRUMB', 'ORGANISATION'];
20
- /** Used when the site has published no defaults (sites published before structured data). */
17
+ exports.STRUCTURED_DATA_PARTS = [...exports.STRUCTURED_DATA_TYPES, 'ENTITY'];
18
+ /**
19
+ * Used when the site has published no defaults. The site and organisation are described once, on the home
20
+ * page; other pages refer to them by `@id` with a short copy.
21
+ */
21
22
  exports.DEFAULT_STRUCTURED_DATA = {
22
- page: BASE,
23
- blog: BASE,
24
- article: [...BASE, 'ARTICLE'],
23
+ home: ['WEBSITE', 'WEBPAGE', 'ORGANISATION', 'FAQ'],
24
+ page: ['WEBPAGE', 'BREADCRUMB', 'FAQ'],
25
+ blog: ['WEBPAGE', 'BREADCRUMB', 'FAQ'],
26
+ article: ['WEBPAGE', 'BREADCRUMB', 'ARTICLE', 'FAQ'],
25
27
  };
28
+ /** Entities whose node takes reviews. Google ignores reviews a business publishes about itself. */
29
+ const REVIEWED = ['PRODUCT', 'EVENT'];
30
+ /** The page's entity, defaulting as Cee.ms publishes it, for pages published before entities. */
31
+ function entityOf(page) {
32
+ return page.entity ?? (page.fullpath ? 'PAGE' : 'HOME');
33
+ }
34
+ /** Which of the site's defaults a page uses: blogs and articles by their type, else home or page. */
35
+ function kindOf(page) {
36
+ if (page.type === 'article')
37
+ return 'article';
38
+ if (page.type === 'blog')
39
+ return 'blog';
40
+ return entityOf(page) === 'HOME' ? 'home' : 'page';
41
+ }
26
42
  /** The types a page outputs: its own choice, else the site's defaults for its kind. */
27
43
  function enabledTypes(site, page) {
28
44
  const own = page.structuredData?.types;
29
45
  if (Array.isArray(own))
30
46
  return own;
31
- const defaults = site.site?.structuredData?.defaults ?? exports.DEFAULT_STRUCTURED_DATA;
32
- const kind = page.type === 'article' ? 'article' : page.type === 'blog' ? 'blog' : 'page';
33
- return defaults[kind] ?? exports.DEFAULT_STRUCTURED_DATA[kind];
47
+ const kind = kindOf(page);
48
+ return site.site?.structuredData?.defaults?.[kind] ?? exports.DEFAULT_STRUCTURED_DATA[kind];
34
49
  }
35
50
  /**
36
- * The page's schema.org graph: one node for each enabled type that has the data it needs. A type missing a
37
- * required property (an event with no start date, a product with no price) is left out rather than output
38
- * invalid. `only` limits the graph to those types.
51
+ * The page's schema.org graph: one node for each enabled type that has the data it needs, and one for its
52
+ * entity. A node missing a required property (an event with no start date, a product with neither price nor
53
+ * reviews) is left out rather than output invalid. `only` limits the graph to those parts.
39
54
  */
40
55
  function structuredDataGraph(site, page, only) {
41
- const enabled = new Set(enabledTypes(site, page));
56
+ const b = new Builder(site, page, enabledTypes(site, page));
57
+ const entity = ENTITIES[entityOf(page)]?.(b);
58
+ if (entity)
59
+ b.entityId = entity['@id'];
42
60
  const graph = [];
43
61
  for (const type of exports.STRUCTURED_DATA_TYPES) {
44
- if (!enabled.has(type) || (only && !only.includes(type)))
62
+ if (!b.enabled.has(type) || (only && !only.includes(type)))
45
63
  continue;
46
- const node = BUILDERS[type](new Builder(site, page));
64
+ const node = BUILDERS[type](b);
47
65
  if (node)
48
66
  graph.push(node);
49
67
  }
68
+ if (entity && (!only || only.includes('ENTITY')))
69
+ graph.push(entity);
50
70
  return { '@context': 'https://schema.org', '@graph': graph };
51
71
  }
52
72
  /** JSON for a `<script>`: `<`, `>` and `&` are escaped so content can't end the script. */
@@ -61,10 +81,14 @@ class Builder {
61
81
  site;
62
82
  page;
63
83
  root;
64
- constructor(site, page) {
84
+ enabled;
85
+ /** The `@id` of the page's entity node, when it has one. */
86
+ entityId;
87
+ constructor(site, page, enabled) {
65
88
  this.site = site;
66
89
  this.page = page;
67
90
  this.root = String(site.site?.url ?? '').replace(/\/+$/, '');
91
+ this.enabled = new Set(enabled);
68
92
  }
69
93
  /** The absolute URL of a site path, `''` being the home page. */
70
94
  url(path = '') {
@@ -76,12 +100,35 @@ class Builder {
76
100
  id(path, fragment) {
77
101
  return `${this.url(path)}#${fragment}`;
78
102
  }
79
- get hasOrganisation() {
80
- return !!this.site.site?.organisation?.name;
81
- }
82
103
  get pageName() {
83
104
  return text(this.page.title) ?? text(this.page.name);
84
105
  }
106
+ /**
107
+ * The organisation, for a publisher, organiser or provider: its `@id` when this page carries the full
108
+ * node, else a short copy, so the property still has a name where the full node isn't output.
109
+ */
110
+ get organisation() {
111
+ const org = this.site.site?.organisation;
112
+ if (!org?.name)
113
+ return;
114
+ const ref = { '@id': this.id('', 'organization') };
115
+ if (this.enabled.has('ORGANISATION'))
116
+ return ref;
117
+ return compact({
118
+ '@type': org.type || 'Organization',
119
+ ...ref,
120
+ name: org.name,
121
+ url: text(org.url) ?? (this.root ? this.url() : undefined),
122
+ logo: imageUrl(org.logo),
123
+ });
124
+ }
125
+ /** The website, by `@id` when this page carries it, else a short copy. */
126
+ get website() {
127
+ const ref = { '@id': this.id('', 'website') };
128
+ if (this.enabled.has('WEBSITE'))
129
+ return ref;
130
+ return compact({ '@type': 'WebSite', ...ref, url: this.url(), name: text(this.site.site?.name) });
131
+ }
85
132
  }
86
133
  const BUILDERS = {
87
134
  WEBSITE(b) {
@@ -92,7 +139,7 @@ const BUILDERS = {
92
139
  '@id': b.id('', 'website'),
93
140
  url: b.url(),
94
141
  name: text(b.site.site?.name),
95
- publisher: b.hasOrganisation ? { '@id': b.id('', 'organization') } : undefined,
142
+ publisher: b.organisation,
96
143
  });
97
144
  },
98
145
  ORGANISATION(b) {
@@ -133,8 +180,11 @@ const BUILDERS = {
133
180
  name: b.pageName,
134
181
  description: text(b.page.description),
135
182
  primaryImageOfPage: imageUrl(b.page.social),
136
- isPartOf: { '@id': b.id('', 'website') },
137
- breadcrumb: crumbs(b).length > 1 ? { '@id': b.id(b.page.fullpath, 'breadcrumb') } : undefined,
183
+ isPartOf: b.website,
184
+ breadcrumb: b.enabled.has('BREADCRUMB') && crumbs(b).length > 1
185
+ ? { '@id': b.id(b.page.fullpath, 'breadcrumb') }
186
+ : undefined,
187
+ mainEntity: b.entityId ? { '@id': b.entityId } : undefined,
138
188
  dateModified: isoDate(b.page.updatedAt),
139
189
  });
140
190
  },
@@ -167,8 +217,8 @@ const BUILDERS = {
167
217
  datePublished: published,
168
218
  dateModified: isoDate(b.page.updatedAt) ?? published,
169
219
  mainEntityOfPage: b.root ? { '@id': b.id(b.page.fullpath, 'webpage') } : undefined,
170
- author: b.hasOrganisation ? { '@id': b.id('', 'organization') } : undefined,
171
- publisher: b.hasOrganisation ? { '@id': b.id('', 'organization') } : undefined,
220
+ author: b.organisation,
221
+ publisher: b.organisation,
172
222
  keywords: list(b.page.tags)?.join(', '),
173
223
  });
174
224
  },
@@ -196,18 +246,21 @@ const BUILDERS = {
196
246
  return;
197
247
  return { '@type': 'FAQPage', '@id': b.id(b.page.fullpath, 'faq'), mainEntity: questions };
198
248
  },
249
+ };
250
+ /** The node for what the page is about. Home and plain pages have none of their own. */
251
+ const ENTITIES = {
199
252
  EVENT(b) {
200
253
  const event = b.page.structuredData?.event;
201
254
  const name = text(event?.name) ?? b.pageName;
202
255
  const startDate = isoDate(event?.startDate);
203
256
  if (!event || !name || !startDate)
204
257
  return;
205
- const online = event.attendance === 'ONLINE';
206
258
  const venue = compact({
207
259
  '@type': 'Place',
208
260
  name: text(event.location?.name),
209
261
  address: postalAddress(event.location?.address),
210
262
  });
263
+ const place = Object.keys(venue).length > 1 ? venue : undefined;
211
264
  const virtual = event.location?.url ? { '@type': 'VirtualLocation', url: event.location.url } : undefined;
212
265
  return compact({
213
266
  '@type': 'Event',
@@ -220,32 +273,37 @@ const BUILDERS = {
220
273
  eventAttendanceMode: event.attendance
221
274
  ? `https://schema.org/${pascal(event.attendance)}EventAttendanceMode`
222
275
  : undefined,
223
- location: online
276
+ location: event.attendance === 'ONLINE'
224
277
  ? virtual
225
278
  : event.attendance === 'MIXED'
226
- ? list([Object.keys(venue).length > 1 ? venue : undefined, virtual])
227
- : Object.keys(venue).length > 1
228
- ? venue
229
- : undefined,
279
+ ? list([place, virtual])
280
+ : place,
230
281
  image: imageUrl(event.image) ?? imageUrl(b.page.social),
231
- offers: event.offers ? offer(event.offers, b.pageUrl) : undefined,
232
- organizer: b.hasOrganisation ? { '@id': b.id('', 'organization') } : undefined,
282
+ offers: offer(event.offers, b.pageUrl),
283
+ organizer: b.organisation,
284
+ ...reviews(b),
233
285
  });
234
286
  },
235
287
  PRODUCT(b) {
236
288
  const product = b.page.structuredData?.product;
237
289
  const name = text(product?.name) ?? b.pageName;
238
- if (!product || !name || !(typeof product.price === 'number') || !product.currency)
290
+ if (!name)
291
+ return;
292
+ const offers = product && offer(product, b.pageUrl);
293
+ const rated = reviews(b);
294
+ // Google needs an offer, a review or a rating
295
+ if (!offers && !rated.review)
239
296
  return;
240
297
  return compact({
241
298
  '@type': 'Product',
242
299
  '@id': b.id(b.page.fullpath, 'product'),
243
300
  name,
244
- description: text(product.description) ?? text(b.page.description),
245
- image: imageUrl(product.image) ?? imageUrl(b.page.social),
246
- sku: text(product.sku),
247
- brand: product.brand ? { '@type': 'Brand', name: product.brand } : undefined,
248
- offers: offer(product, b.pageUrl),
301
+ description: text(product?.description) ?? text(b.page.description),
302
+ image: imageUrl(product?.image) ?? imageUrl(b.page.social),
303
+ sku: text(product?.sku),
304
+ brand: product?.brand ? { '@type': 'Brand', name: product.brand } : undefined,
305
+ offers,
306
+ ...rated,
249
307
  });
250
308
  },
251
309
  PERSON(b) {
@@ -258,12 +316,77 @@ const BUILDERS = {
258
316
  name: person.name,
259
317
  jobTitle: text(person.jobTitle),
260
318
  url: text(person.url) ?? (b.root ? b.pageUrl : undefined),
261
- image: imageUrl(person.image),
319
+ image: imageUrl(person.image) ?? imageUrl(b.page.social),
262
320
  sameAs: list(person.sameAs),
263
- worksFor: b.hasOrganisation ? { '@id': b.id('', 'organization') } : undefined,
321
+ worksFor: b.organisation,
322
+ });
323
+ },
324
+ SERVICE(b) {
325
+ const service = b.page.structuredData?.service;
326
+ const name = text(service?.name) ?? b.pageName;
327
+ if (!name)
328
+ return;
329
+ return compact({
330
+ '@type': 'Service',
331
+ '@id': b.id(b.page.fullpath, 'service'),
332
+ name,
333
+ description: text(service?.description) ?? text(b.page.description),
334
+ serviceType: text(service?.serviceType),
335
+ areaServed: text(service?.areaServed),
336
+ image: imageUrl(service?.image) ?? imageUrl(b.page.social),
337
+ provider: b.organisation,
338
+ offers: offer(service?.offers, b.pageUrl),
264
339
  });
265
340
  },
266
341
  };
342
+ /**
343
+ * `review` and `aggregateRating` from the page's modules whose type maps reviews, for a product or event.
344
+ * The rating is worked out from the reviews, so it always matches what the page shows. Ratings on other
345
+ * scales are converted to the first module's.
346
+ */
347
+ function reviews(b) {
348
+ if (!REVIEWED.includes(entityOf(b.page)))
349
+ return {};
350
+ const mappings = b.site.site?.structuredData?.reviewModules ?? {};
351
+ const review = [];
352
+ let scale;
353
+ let total = 0;
354
+ for (const module of pageModules(b.page)) {
355
+ const map = mappings[module.type];
356
+ const items = map && module.content?.[map.itemsField];
357
+ if (!Array.isArray(items))
358
+ continue;
359
+ const best = map.bestRating ?? 5;
360
+ const worst = map.worstRating ?? 1;
361
+ for (const item of items) {
362
+ const author = text(plain(item?.[map.authorField]));
363
+ const rating = Number(text(item?.[map.ratingField]));
364
+ if (!author || !isFinite(rating) || rating < worst || rating > best || best <= worst)
365
+ continue;
366
+ scale ??= { best, worst };
367
+ total += scale.worst + ((rating - worst) / (best - worst)) * (scale.best - scale.worst);
368
+ review.push(compact({
369
+ '@type': 'Review',
370
+ author: { '@type': 'Person', name: author },
371
+ reviewRating: { '@type': 'Rating', ratingValue: rating, bestRating: best, worstRating: worst },
372
+ reviewBody: map.bodyField ? text(plain(item?.[map.bodyField])) : undefined,
373
+ datePublished: map.dateField ? isoDate(item?.[map.dateField])?.slice(0, 10) : undefined,
374
+ }));
375
+ }
376
+ }
377
+ if (!review.length || !scale)
378
+ return {};
379
+ return {
380
+ review,
381
+ aggregateRating: {
382
+ '@type': 'AggregateRating',
383
+ ratingValue: Math.round((total / review.length) * 10) / 10,
384
+ reviewCount: review.length,
385
+ bestRating: scale.best,
386
+ worstRating: scale.worst,
387
+ },
388
+ };
389
+ }
267
390
  /** Home, then the page's published ancestors, as `tags/breadcrumb.ts` walks them, ending at the page. */
268
391
  function crumbs(b) {
269
392
  const { site, page } = b;
@@ -293,7 +416,7 @@ function pageModules(page) {
293
416
  return modules;
294
417
  }
295
418
  function offer(o, fallbackUrl) {
296
- if (typeof o.price !== 'number' || !o.currency)
419
+ if (!o || typeof o.price !== 'number' || !o.currency)
297
420
  return;
298
421
  return compact({
299
422
  '@type': 'Offer',
@@ -1 +1 @@
1
- {"version":3,"file":"structured-data.js","sourceRoot":"","sources":["../src/structured-data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"structured-data.js","sourceRoot":"","sources":["../src/structured-data.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import { Liquid } from 'liquidjs';
2
2
  /**
3
- * `{% structureddata ['article' 'faq' …] %}` outputs the page's schema.org JSON-LD: the types the page has
4
- * switched on (or the site's defaults), built from the page, its modules and the site's organisation. Naming
5
- * types limits it to those, for templates that place them separately. Outputs nothing when there is nothing.
3
+ * `{% structureddata ['article' 'faq' 'entity' …] %}` outputs the page's schema.org JSON-LD: the types the page
4
+ * has switched on (or the site's defaults) and its entity (product, event…), built from the page, its modules
5
+ * and the site's organisation. Naming parts limits it to those, for templates that place them separately.
6
+ * Outputs nothing when there is nothing.
6
7
  */
7
8
  export declare function registerStructuredDataTag(engine: Liquid): void;
@@ -4,9 +4,10 @@ exports.registerStructuredDataTag = registerStructuredDataTag;
4
4
  const state_1 = require("../state");
5
5
  const structured_data_1 = require("../structured-data");
6
6
  /**
7
- * `{% structureddata ['article' 'faq' …] %}` outputs the page's schema.org JSON-LD: the types the page has
8
- * switched on (or the site's defaults), built from the page, its modules and the site's organisation. Naming
9
- * types limits it to those, for templates that place them separately. Outputs nothing when there is nothing.
7
+ * `{% structureddata ['article' 'faq' 'entity' …] %}` outputs the page's schema.org JSON-LD: the types the page
8
+ * has switched on (or the site's defaults) and its entity (product, event…), built from the page, its modules
9
+ * and the site's organisation. Naming parts limits it to those, for templates that place them separately.
10
+ * Outputs nothing when there is nothing.
10
11
  */
11
12
  function registerStructuredDataTag(engine) {
12
13
  engine.registerTag('structureddata', {
@@ -16,8 +17,8 @@ function registerStructuredDataTag(engine) {
16
17
  .map((arg) => arg.replace(/^['"]|['"]$/g, '').toUpperCase())
17
18
  .filter(Boolean);
18
19
  for (const name of names) {
19
- if (!structured_data_1.STRUCTURED_DATA_TYPES.includes(name)) {
20
- throw new Error(`structureddata: unknown type "${name}"`);
20
+ if (!structured_data_1.STRUCTURED_DATA_PARTS.includes(name)) {
21
+ throw new Error(`structureddata: unknown part "${name}"`);
21
22
  }
22
23
  }
23
24
  this.only = names.length ? names : undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"structured-data.js","sourceRoot":"","sources":["../../src/tags/structured-data.ts"],"names":[],"mappings":";;AAUA,8DAuBC;AA/BD,oCAAuC;AACvC,wDAAiG;AAEjG;;;;GAIG;AACH,SAAgB,yBAAyB,CAAC,MAAc;IACpD,MAAM,CAAC,WAAW,CAAC,gBAAgB,EAAE;QACjC,KAAK,EAAE,UAAU,QAAQ;YACrB,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI;iBACtB,KAAK,CAAC,QAAQ,CAAC;iBACf,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;iBAC3D,MAAM,CAAC,OAAO,CAAC,CAAC;YACrB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACvB,IAAI,CAAC,uCAAqB,CAAC,QAAQ,CAAC,IAA0B,CAAC,EAAE,CAAC;oBAC9D,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,GAAG,CAAC,CAAC;gBAC9D,CAAC;YACL,CAAC;YACD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QACjD,CAAC;QACD,MAAM,EAAE,UAAU,OAAO;YACrB,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAA,mBAAW,EAAC,OAAO,CAAC,CAAC;YAC5C,MAAM,KAAK,GAAG,IAAA,qCAAmB,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACzD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;gBAC1B,OAAO,EAAE,CAAC;YACd,CAAC;YACD,OAAO,qCAAqC,GAAG,IAAA,iCAAe,EAAC,KAAK,CAAC,GAAG,WAAW,CAAC;QACxF,CAAC;KACJ,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"structured-data.js","sourceRoot":"","sources":["../../src/tags/structured-data.ts"],"names":[],"mappings":";;AAUA,8DAuBC;AAhCD,oCAAuC;AACvC,wDAAqH;AAErH;;;;;GAKG;AACH,SAAgB,yBAAyB,CAAC,MAAc;IACpD,MAAM,CAAC,WAAW,CAAC,gBAAgB,EAAE;QACjC,KAAK,EAAE,UAAU,QAAQ;YACrB,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI;iBACtB,KAAK,CAAC,QAAQ,CAAC;iBACf,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;iBAC3D,MAAM,CAAC,OAAO,CAAC,CAAC;YACrB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACvB,IAAI,CAAC,uCAAqB,CAAC,QAAQ,CAAC,IAA0B,CAAC,EAAE,CAAC;oBAC9D,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,GAAG,CAAC,CAAC;gBAC9D,CAAC;YACL,CAAC;YACD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QACjD,CAAC;QACD,MAAM,EAAE,UAAU,OAAO;YACrB,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAA,mBAAW,EAAC,OAAO,CAAC,CAAC;YAC5C,MAAM,KAAK,GAAG,IAAA,qCAAmB,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACzD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;gBAC1B,OAAO,EAAE,CAAC;YACd,CAAC;YACD,OAAO,qCAAqC,GAAG,IAAA,iCAAe,EAAC,KAAK,CAAC,GAAG,WAAW,CAAC;QACxF,CAAC;KACJ,CAAC,CAAC;AACP,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nakedcreativity/cee-ms-node",
3
- "version": "2.0.0-beta.4",
3
+ "version": "2.0.0-beta.5",
4
4
  "description": "Cee.ms for Node.js: renders Cee.ms sites from their published JSON with Liquid templates",
5
5
  "main": "./lib/index.js",
6
6
  "types": "./lib/index.d.ts",