@nakedcreativity/cee-ms-node 2.0.0-beta.5 → 2.0.0-beta.7
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 +94 -15
- package/lib/draft.js +8 -3
- package/lib/draft.js.map +1 -1
- package/lib/index.d.ts +21 -3
- package/lib/index.js +71 -15
- package/lib/index.js.map +1 -1
- package/lib/interfaces.d.ts +98 -3
- package/lib/interfaces.js +1 -0
- package/lib/interfaces.js.map +1 -1
- package/lib/links.d.ts +67 -2
- package/lib/links.js +201 -7
- package/lib/links.js.map +1 -1
- package/lib/social-meta.d.ts +15 -0
- package/lib/social-meta.js +73 -0
- package/lib/social-meta.js.map +1 -0
- package/lib/structured-data.d.ts +8 -1
- package/lib/structured-data.js +125 -18
- package/lib/structured-data.js.map +1 -1
- package/lib/tags/blog.d.ts +3 -2
- package/lib/tags/blog.js +14 -5
- package/lib/tags/blog.js.map +1 -1
- package/lib/tags/index.d.ts +1 -0
- package/lib/tags/index.js +1 -0
- package/lib/tags/index.js.map +1 -1
- package/lib/tags/social-meta.d.ts +6 -0
- package/lib/tags/social-meta.js +19 -0
- package/lib/tags/social-meta.js.map +1 -0
- package/package.json +8 -1
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@ import { CacheSource, Ceems } from '@nakedcreativity/cee-ms-node';
|
|
|
9
9
|
const ceems = new Ceems({
|
|
10
10
|
assets: './src',
|
|
11
11
|
cacheSource: CacheSource.S3,
|
|
12
|
-
cacheBucket: 'my-site',
|
|
12
|
+
cacheBucket: 'my-site-bucket',
|
|
13
13
|
viewsPath: './views/',
|
|
14
14
|
customHandler: true,
|
|
15
15
|
tags: [],
|
|
@@ -38,9 +38,18 @@ Link settings read as their address, like links in modules (`{{ settings.cta.kin
|
|
|
38
38
|
the settings as edited; the published site shows them once they are published. A static global named `settings` in
|
|
39
39
|
`config.globals` takes precedence, so a site that already uses that name keeps working.
|
|
40
40
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
## Reading the published site
|
|
42
|
+
|
|
43
|
+
Cee.ms publishes each environment to its own folder in the site's bucket: `<environment>/pages/site.json`,
|
|
44
|
+
`<environment>/pages/<id>.json` and `<environment>/data/<id>.json` (read through `loadS3File('data/<id>.json')`).
|
|
45
|
+
The bucket is private, in the site owner's AWS account. `CacheSource.S3` reads it (`cacheBucket`, `cacheRegion`)
|
|
46
|
+
with the host's own AWS credentials: a Lambda or container role, OIDC from the host, or keys, as the site chooses. It
|
|
47
|
+
needs `s3:GetObject` on `<bucket>/*/pages/*` and `<bucket>/*/data/*`; Cee.ms's Settings → Storage screen shows the
|
|
48
|
+
statement. Set `CEEMS_ENVIRONMENT` (or `config.environment`) to the environment this server renders, such as
|
|
49
|
+
`live`; it defaults to `development`.
|
|
50
|
+
|
|
51
|
+
`CacheSource.Local` reads a folder (`cacheFolder`) laid out like the bucket. Set `cachePrefix` to read from somewhere
|
|
52
|
+
other than `<environment>/`.
|
|
44
53
|
|
|
45
54
|
## Structured data
|
|
46
55
|
|
|
@@ -58,15 +67,15 @@ It outputs the types the page has switched on in its settings, or the site's def
|
|
|
58
67
|
page, blog or article), plus a node for the page's **entity**: what the page is about. Each is built from data
|
|
59
68
|
Cee.ms already has:
|
|
60
69
|
|
|
61
|
-
| Type
|
|
62
|
-
|
|
63
|
-
| `website` (WebSite)
|
|
64
|
-
| `organisation` (Organization, or a business type such as RealEstateAgent) | the organisation on the Settings screen
|
|
65
|
-
| `webpage` (WebPage)
|
|
66
|
-
| `breadcrumb` (BreadcrumbList)
|
|
67
|
-
| `article` (BlogPosting)
|
|
68
|
-
| `faq` (FAQPage)
|
|
69
|
-
| `entity` (Product, Event, Person or Service)
|
|
70
|
+
| Type | From |
|
|
71
|
+
| ------------------------------------------------------------------------- | -------------------------------------------------------- |
|
|
72
|
+
| `website` (WebSite) | the site's name and URL |
|
|
73
|
+
| `organisation` (Organization, or a business type such as RealEstateAgent) | the organisation on the Settings screen |
|
|
74
|
+
| `webpage` (WebPage) | the page's SEO title, description and social image |
|
|
75
|
+
| `breadcrumb` (BreadcrumbList) | home and the page's published ancestors |
|
|
76
|
+
| `article` (BlogPosting) | an article's title, description, image, date and tags |
|
|
77
|
+
| `faq` (FAQPage) | the questions in the page's modules whose type maps them |
|
|
78
|
+
| `entity` (Product, Event, Person or Service) | the page's entity and the details entered for it |
|
|
70
79
|
|
|
71
80
|
By default the site and organisation are described in full on the home page, and other pages refer to them with a
|
|
72
81
|
short copy (name, URL, logo). A product or event page also gets the reviews in its modules whose type maps them,
|
|
@@ -77,12 +86,76 @@ A node missing what it needs (an event with no start date, a product with neithe
|
|
|
77
86
|
rather than output invalid, and the tag outputs nothing when no node has data. Name parts to output only those, to
|
|
78
87
|
place them separately: `{% structureddata 'article' 'faq' %}`, `{% structureddata 'entity' %}`.
|
|
79
88
|
|
|
80
|
-
The entity is also in templates and modules as `page.entity` (`HOME`, `PAGE`, `
|
|
81
|
-
`SERVICE`), e.g. `{% if page.entity == 'PRODUCT' %}`.
|
|
89
|
+
The entity is also in templates and modules as `page.entity` (`HOME`, `PAGE`, `ARTICLE`, `PERSON`, `PRODUCT`,
|
|
90
|
+
`EVENT` or `SERVICE`), e.g. `{% if page.entity == 'PRODUCT' %}`. A blog's articles are `ARTICLE` unless they choose
|
|
91
|
+
otherwise, and any other page can be one: an article uses the site's article defaults and has authors.
|
|
92
|
+
|
|
93
|
+
## Link previews
|
|
94
|
+
|
|
95
|
+
Facebook, LinkedIn, WhatsApp, Slack and X don't read JSON-LD: they build link previews from Open Graph `<meta>`
|
|
96
|
+
tags. `{% socialmeta %}` outputs them from the same page data, so put it beside `{% structureddata %}`:
|
|
97
|
+
|
|
98
|
+
```liquid
|
|
99
|
+
<head>
|
|
100
|
+
{% structureddata %}
|
|
101
|
+
{% socialmeta %}
|
|
102
|
+
</head>
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
| Tag | From |
|
|
106
|
+
| ---------------------------------------------------------- | ------------------------------------------------------------ |
|
|
107
|
+
| `og:title`, `og:description` | the page's SEO title (else its name) and description |
|
|
108
|
+
| `og:url`, `og:site_name` | the site's URL and name |
|
|
109
|
+
| `og:image` (with its width, height and alt) | the page's social image |
|
|
110
|
+
| `og:type` | `article` for articles, `profile` for people, else `website` |
|
|
111
|
+
| `article:published_time`, `modified_time`, `tag`, `author` | an article's dates, tags and authors' profile pages |
|
|
112
|
+
| `twitter:card` | a large image card with a social image, else a small one |
|
|
113
|
+
| `twitter:site` | the organisation's X profile, among its profile links |
|
|
114
|
+
|
|
115
|
+
X reads the title, description and image from Open Graph, so they aren't repeated. Tags without data are left
|
|
116
|
+
out.
|
|
82
117
|
|
|
83
118
|
The organisation is also in templates as `site.organisation`, e.g. `{{ site.organisation.telephone }}`. For custom
|
|
84
119
|
tags or routes, `structuredDataGraph(site, page)` returns the graph as an object.
|
|
85
120
|
|
|
121
|
+
People feed the structured data too. A page whose entity is `PERSON` and that has its person chosen becomes a
|
|
122
|
+
`ProfilePage`, describing them in full. An article's byline becomes its `author`, with the organisation still the
|
|
123
|
+
publisher, and its reviewer becomes `reviewedBy`. People that a module features through a module type's people
|
|
124
|
+
mapping each get a `Person` node. A person has the same `@id` on every page: their profile page's, or, without one,
|
|
125
|
+
one of the site's.
|
|
126
|
+
|
|
127
|
+
## Links, documents and rows
|
|
128
|
+
|
|
129
|
+
Links, documents and rows are read from what is published as the page renders, so a renamed page or a replaced
|
|
130
|
+
document is right on every page once that one change is published:
|
|
131
|
+
|
|
132
|
+
- **Page links** take their address from `site.json` `pageIndex`. A link to a page that isn't published reads as
|
|
133
|
+
`''` and has `broken` set, so `{% if link %}` leaves it out. Rich text links to it lose their `href`.
|
|
134
|
+
- **Document values and links** take their address from `site.json` `documents`. A document value prints as its
|
|
135
|
+
address, and keeps `url`, `thumbnail` and `info`: `{{ download }}`, `{{ download.url }}`.
|
|
136
|
+
- **Row fields** read as the row they point at, with its columns: `{{ author.name }}`,
|
|
137
|
+
`{% image person.photo 'square' %}`. A row prints as its `name`. Rows come from the collection's
|
|
138
|
+
`data/<id>.json`, which is read once and kept until `site.json` changes. A deleted row reads as nothing and is
|
|
139
|
+
left out of lists.
|
|
140
|
+
|
|
141
|
+
A site last published before Cee.ms published `pageIndex` keeps the addresses stored with its links, as before.
|
|
142
|
+
|
|
143
|
+
## People and bylines
|
|
144
|
+
|
|
145
|
+
A site's People (name, job title, photo, bio, profile links, email, telephone, profile page) is published in
|
|
146
|
+
`site.json` `people`. An article's byline is `page.authors`, in order. Each author has a `kind` (`person`, `guest`
|
|
147
|
+
or `organisation`), a `name` and a `url`: a person's profile page, else their first profile link. A person
|
|
148
|
+
author also has all their People columns:
|
|
149
|
+
|
|
150
|
+
```liquid
|
|
151
|
+
{% for author in page.authors %}
|
|
152
|
+
<a href="{{ author.url }}">{{ author.name }}</a>{% if author.jobTitle %}, {{ author.jobTitle }}{% endif %}
|
|
153
|
+
{% endfor %}
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
On a profile page, `page.person` is the person. `{% blog news articles 10 author:page.person %}` lists the
|
|
157
|
+
articles they appear in the byline of. With none yet, the list is empty, not a 404.
|
|
158
|
+
|
|
86
159
|
## Draft previews
|
|
87
160
|
|
|
88
161
|
The editor loads `GET /draft/{pageId}?token=…` in an iframe. The renderer verifies the token, fetches the draft from
|
|
@@ -105,6 +178,12 @@ Optional:
|
|
|
105
178
|
Draft responses send `Cache-Control: no-store`, `X-Robots-Tag: noindex`, `frame-ancestors <editor origin>` and
|
|
106
179
|
`Referrer-Policy: no-referrer` (the token is in the URL).
|
|
107
180
|
|
|
181
|
+
## Upgrading to 2.0.0-beta.6
|
|
182
|
+
|
|
183
|
+
Upgrade the Cee.ms API first. Drafts now ask it for the data a page's rows come from, which earlier versions of
|
|
184
|
+
the API don't send. Before adding `row` fields to a site's module types, move the site to this version of the
|
|
185
|
+
package: older versions print a row reference as an object.
|
|
186
|
+
|
|
108
187
|
## Upgrading a site from 1.x
|
|
109
188
|
|
|
110
189
|
2.0 ships with Cee.ms v2. Upgrade a site when it moves to v2: the 1.x `POST /draft` that the old editor uses is gone.
|
package/lib/draft.js
CHANGED
|
@@ -37,7 +37,7 @@ exports.draftServiceFor = draftServiceFor;
|
|
|
37
37
|
const links_1 = require("./links");
|
|
38
38
|
const cheerio = __importStar(require("cheerio"));
|
|
39
39
|
const preview_token_1 = require("./preview-token");
|
|
40
|
-
const DRAFT_QUERY = 'query Draft($token: String!) { draftRenderPayload(token: $token) { page site } }';
|
|
40
|
+
const DRAFT_QUERY = 'query Draft($token: String!) { draftRenderPayload(token: $token) { page site data } }';
|
|
41
41
|
/** The origin of an http(s) URL, or undefined. */
|
|
42
42
|
function originOf(url) {
|
|
43
43
|
if (!url)
|
|
@@ -99,9 +99,14 @@ function draftServiceFor(config = {}) {
|
|
|
99
99
|
return { ok: false, status: 502 };
|
|
100
100
|
}
|
|
101
101
|
const site = JSON.parse(payload.site);
|
|
102
|
+
// links resolve against the draft site, and rows against the draft's data as it is now
|
|
103
|
+
const data = payload.data ? JSON.parse(payload.data) : {};
|
|
104
|
+
const context = (0, links_1.linkContextFor)(site, Object.values(data));
|
|
102
105
|
if (site.settings)
|
|
103
|
-
site.settings = (0, links_1.wrapLinks)(site.settings);
|
|
104
|
-
|
|
106
|
+
site.settings = (0, links_1.wrapLinks)(site.settings, context);
|
|
107
|
+
const page = (0, links_1.wrapLinks)(JSON.parse(payload.page), context);
|
|
108
|
+
page.authors = (0, links_1.bylineAuthors)(page, site, context);
|
|
109
|
+
return { ok: true, page, site, editorOrigin };
|
|
105
110
|
},
|
|
106
111
|
setHeaders(res, editorOrigin) {
|
|
107
112
|
res.set({
|
package/lib/draft.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"draft.js","sourceRoot":"","sources":["../src/draft.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,
|
|
1
|
+
{"version":3,"file":"draft.js","sourceRoot":"","sources":["../src/draft.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,0CAoEC;AA3GD,mCAAmE;AAEnE,iDAAmC;AAEnC,mDAAqD;AAYrD,MAAM,WAAW,GAAG,uFAAuF,CAAC;AAE5G,kDAAkD;AAClD,SAAS,QAAQ,CAAC,GAAuB;IACrC,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACnG,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,SAAS,CAAC;IACrB,CAAC;AACL,CAAC;AAED,6DAA6D;AAC7D,SAAS,MAAM,CAAC,GAAuB;IACnC,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACpD,CAAC;AAED;;;;GAIG;AACH,SAAgB,eAAe,CAAC,SAAwB,EAAE;IACtD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;IACjE,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACvE,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACxF,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAEnE,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzB,OAAO;QACH,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK;YACrB,MAAM,QAAQ,GAAG,IAAA,kCAAkB,EAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YAC3D,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;YACpD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;YACzD,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC;YACpE,IAAI,CAAC,MAAM,IAAI,CAAC,YAAY;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;YAEhE,IAAI,IAAS,CAAC;YACd,IAAI,CAAC;gBACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,GAAG,UAAU,EAAE;oBAC9C,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;oBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC;oBAClE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;iBACtC,CAAC,CAAC;gBACH,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACjC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC5F,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;YACtC,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,EAAE,IAAI,EAAE,kBAAkB,CAAC;YAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACX,MAAM,IAAI,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC;gBACjD,IAAI,IAAI,KAAK,iBAAiB,IAAI,IAAI,KAAK,WAAW;oBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;gBAC1F,IAAI,IAAI,KAAK,WAAW;oBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;gBAC5D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;YACtC,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACtC,uFAAuF;YACvF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,MAAM,OAAO,GAAG,IAAA,sBAAc,EAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1D,IAAI,IAAI,CAAC,QAAQ;gBAAE,IAAI,CAAC,QAAQ,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACrE,MAAM,IAAI,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;YAC1D,IAAI,CAAC,OAAO,GAAG,IAAA,qBAAa,EAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YAClD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QAClD,CAAC;QAED,UAAU,CAAC,GAAG,EAAE,YAAY;YACxB,GAAG,CAAC,GAAG,CAAC;gBACJ,eAAe,EAAE,UAAU;gBAC3B,cAAc,EAAE,mBAAmB;gBACnC,yBAAyB,EAAE,mBAAmB,YAAY,IAAI,cAAc,IAAI,QAAQ,EAAE;gBAC1F,4EAA4E;gBAC5E,iBAAiB,EAAE,aAAa;gBAChC,wBAAwB,EAAE,SAAS;aACtC,CAAC,CAAC;QACP,CAAC;QAED,YAAY,CAAC,IAAI,EAAE,YAAY;YAC3B,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YAClC,MAAM,MAAM,GAAG,CAAC,CAAC,yBAAyB,CAAC;iBACtC,IAAI,CAAC,KAAK,EAAE,SAAS,IAAI,GAAG,YAAY,YAAY,CAAC;iBACrD,IAAI,CAAC,oBAAoB,EAAE,YAAY,CAAC,CAAC;YAC9C,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACzB,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;KACJ,CAAC;AACN,CAAC"}
|
package/lib/index.d.ts
CHANGED
|
@@ -5,8 +5,10 @@ import { Storage } from './storage';
|
|
|
5
5
|
export * from './interfaces';
|
|
6
6
|
export { signPreviewToken, verifyPreviewToken } from './preview-token';
|
|
7
7
|
export { renderState } from './state';
|
|
8
|
-
export { LinkDrop, wrapLinks } from './links';
|
|
8
|
+
export { DocumentDrop, LinkDrop, RowDrop, linkContextFor, wrapLinks } from './links';
|
|
9
|
+
export type { LinkContext } from './links';
|
|
9
10
|
export { enabledTypes, entityOf, serialiseJsonLd, structuredDataGraph } from './structured-data';
|
|
11
|
+
export { socialMeta, renderSocialMeta, SocialMetaTag } from './social-meta';
|
|
10
12
|
export type { StructuredDataPart } from './structured-data';
|
|
11
13
|
/**
|
|
12
14
|
* A Cee.ms site renderer: an Express app that renders published pages, and verified editor drafts, with the
|
|
@@ -23,10 +25,23 @@ export declare class Ceems {
|
|
|
23
25
|
site: CeemsSite | undefined;
|
|
24
26
|
storage: Storage;
|
|
25
27
|
private drafts;
|
|
28
|
+
/** The `site.json` the data file cache was filled for: publishing rewrites it, which empties the cache. */
|
|
29
|
+
private siteSource;
|
|
30
|
+
private dataFiles;
|
|
26
31
|
constructor(config: CeemsConfig);
|
|
32
|
+
private storageFor;
|
|
27
33
|
private registerTags;
|
|
28
34
|
/** Loads the published `site.json`, remembers it as `this.site`, and returns it. */
|
|
29
35
|
loadSite(): Promise<CeemsSite>;
|
|
36
|
+
/** A published data file, read once until the site is next published. `null` if it isn't published. */
|
|
37
|
+
private dataFile;
|
|
38
|
+
/**
|
|
39
|
+
* What a page's references resolve against: the site's pages and documents, and the rows of the data
|
|
40
|
+
* collections it points at, and of those their rows point at.
|
|
41
|
+
*/
|
|
42
|
+
private linkContext;
|
|
43
|
+
/** Wraps a page's references (see `wrapLinks`) and adds its byline as `page.authors`. */
|
|
44
|
+
private resolvePage;
|
|
30
45
|
/**
|
|
31
46
|
* Loads the published page for the request's path (or the `404` page), ready for `render`. With
|
|
32
47
|
* `loadPage` false, returns `page` as given (for custom routes that build their own page object).
|
|
@@ -34,8 +49,11 @@ export declare class Ceems {
|
|
|
34
49
|
load(req: CeemsRequest, res: express.Response, loadPage?: boolean, page?: CeemsPage): Promise<CeemsPage>;
|
|
35
50
|
/** Reads a published file, under `cachePrefix`. */
|
|
36
51
|
private readPublished;
|
|
37
|
-
/**
|
|
38
|
-
|
|
52
|
+
/**
|
|
53
|
+
* Reads `pages/<id>.json`. Stored links read as their address in templates (see `LinkDrop`), resolved
|
|
54
|
+
* against `site` (by default the last site loaded), and row references read as their rows (`RowDrop`).
|
|
55
|
+
*/
|
|
56
|
+
loadPageFile(id: string, site?: CeemsSite | undefined): Promise<CeemsPage>;
|
|
39
57
|
/** Synchronous local read, kept for custom tags. `filename` is a full path. */
|
|
40
58
|
loadLocalFile(filename: string): any;
|
|
41
59
|
/**
|
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.entityOf = exports.enabledTypes = exports.wrapLinks = exports.LinkDrop = exports.renderState = exports.verifyPreviewToken = exports.signPreviewToken = void 0;
|
|
42
|
+
exports.Ceems = exports.renderSocialMeta = exports.socialMeta = exports.structuredDataGraph = exports.serialiseJsonLd = exports.entityOf = exports.enabledTypes = exports.wrapLinks = exports.linkContextFor = exports.RowDrop = exports.LinkDrop = exports.DocumentDrop = 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"));
|
|
@@ -59,13 +59,19 @@ Object.defineProperty(exports, "verifyPreviewToken", { enumerable: true, get: fu
|
|
|
59
59
|
var state_2 = require("./state");
|
|
60
60
|
Object.defineProperty(exports, "renderState", { enumerable: true, get: function () { return state_2.renderState; } });
|
|
61
61
|
var links_2 = require("./links");
|
|
62
|
+
Object.defineProperty(exports, "DocumentDrop", { enumerable: true, get: function () { return links_2.DocumentDrop; } });
|
|
62
63
|
Object.defineProperty(exports, "LinkDrop", { enumerable: true, get: function () { return links_2.LinkDrop; } });
|
|
64
|
+
Object.defineProperty(exports, "RowDrop", { enumerable: true, get: function () { return links_2.RowDrop; } });
|
|
65
|
+
Object.defineProperty(exports, "linkContextFor", { enumerable: true, get: function () { return links_2.linkContextFor; } });
|
|
63
66
|
Object.defineProperty(exports, "wrapLinks", { enumerable: true, get: function () { return links_2.wrapLinks; } });
|
|
64
67
|
var structured_data_1 = require("./structured-data");
|
|
65
68
|
Object.defineProperty(exports, "enabledTypes", { enumerable: true, get: function () { return structured_data_1.enabledTypes; } });
|
|
66
69
|
Object.defineProperty(exports, "entityOf", { enumerable: true, get: function () { return structured_data_1.entityOf; } });
|
|
67
70
|
Object.defineProperty(exports, "serialiseJsonLd", { enumerable: true, get: function () { return structured_data_1.serialiseJsonLd; } });
|
|
68
71
|
Object.defineProperty(exports, "structuredDataGraph", { enumerable: true, get: function () { return structured_data_1.structuredDataGraph; } });
|
|
72
|
+
var social_meta_1 = require("./social-meta");
|
|
73
|
+
Object.defineProperty(exports, "socialMeta", { enumerable: true, get: function () { return social_meta_1.socialMeta; } });
|
|
74
|
+
Object.defineProperty(exports, "renderSocialMeta", { enumerable: true, get: function () { return social_meta_1.renderSocialMeta; } });
|
|
69
75
|
/**
|
|
70
76
|
* A Cee.ms site renderer: an Express app that renders published pages, and verified editor drafts, with the
|
|
71
77
|
* site's Liquid templates.
|
|
@@ -81,6 +87,9 @@ class Ceems {
|
|
|
81
87
|
site;
|
|
82
88
|
storage;
|
|
83
89
|
drafts;
|
|
90
|
+
/** The `site.json` the data file cache was filled for: publishing rewrites it, which empties the cache. */
|
|
91
|
+
siteSource;
|
|
92
|
+
dataFiles = new Map();
|
|
84
93
|
constructor(config) {
|
|
85
94
|
this.config = config;
|
|
86
95
|
// set defaults
|
|
@@ -91,17 +100,15 @@ class Ceems {
|
|
|
91
100
|
this.config.viewsPath = './views/';
|
|
92
101
|
}
|
|
93
102
|
if (this.config.cachePrefix === undefined) {
|
|
94
|
-
this.config.
|
|
103
|
+
const environment = this.config.environment || process.env.CEEMS_ENVIRONMENT || 'development';
|
|
104
|
+
this.config.cachePrefix = environment + '/';
|
|
95
105
|
}
|
|
96
106
|
if (this.config.liquidCache === undefined) {
|
|
97
107
|
this.config.liquidCache = true;
|
|
98
108
|
}
|
|
99
109
|
this.config.tags = this.config.tags || [];
|
|
100
110
|
this.config.filters = this.config.filters || [];
|
|
101
|
-
this.storage =
|
|
102
|
-
this.config.cacheSource === interfaces_1.CacheSource.S3
|
|
103
|
-
? (0, storage_1.s3Storage)(this.config.cacheBucket || '', this.config.cacheRegion || process.env.AWS_REGION)
|
|
104
|
-
: (0, storage_1.localStorage)(this.config.cacheFolder || './');
|
|
111
|
+
this.storage = this.storageFor(this.config);
|
|
105
112
|
// One engine for the life of the process. Site data is passed per render, never through these options.
|
|
106
113
|
this.engine = new liquidjs_1.Liquid({
|
|
107
114
|
root: path_1.default.resolve(this.config.viewsPath),
|
|
@@ -145,6 +152,12 @@ class Ceems {
|
|
|
145
152
|
});
|
|
146
153
|
}
|
|
147
154
|
}
|
|
155
|
+
storageFor(config) {
|
|
156
|
+
if (config.cacheSource === interfaces_1.CacheSource.S3) {
|
|
157
|
+
return (0, storage_1.s3Storage)(config.cacheBucket || '', config.cacheRegion || process.env.AWS_REGION);
|
|
158
|
+
}
|
|
159
|
+
return (0, storage_1.localStorage)(config.cacheFolder || './');
|
|
160
|
+
}
|
|
148
161
|
registerTags() {
|
|
149
162
|
(0, tags_1.registerRegionTag)(this.engine);
|
|
150
163
|
(0, tags_1.registerModuleTag)(this.engine);
|
|
@@ -155,6 +168,7 @@ class Ceems {
|
|
|
155
168
|
(0, tags_1.registerImageUrlTag)(this.engine);
|
|
156
169
|
(0, tags_1.registerBreadcrumbTag)(this.engine);
|
|
157
170
|
(0, tags_1.registerStructuredDataTag)(this.engine);
|
|
171
|
+
(0, tags_1.registerSocialMetaTag)(this.engine);
|
|
158
172
|
(0, filters_1.registerActiveFilter)(this.engine);
|
|
159
173
|
(0, filters_1.registerSlugifyFilter)(this.engine);
|
|
160
174
|
// custom tags and filters
|
|
@@ -167,13 +181,47 @@ class Ceems {
|
|
|
167
181
|
}
|
|
168
182
|
/** Loads the published `site.json`, remembers it as `this.site`, and returns it. */
|
|
169
183
|
async loadSite() {
|
|
170
|
-
const
|
|
184
|
+
const source = await this.readPublished('pages/site.json');
|
|
185
|
+
if (source !== this.siteSource) {
|
|
186
|
+
this.dataFiles.clear();
|
|
187
|
+
this.siteSource = source;
|
|
188
|
+
}
|
|
189
|
+
const site = JSON.parse(source);
|
|
171
190
|
// stored links in settings read as their address, as in pages
|
|
172
191
|
if (site.settings)
|
|
173
|
-
site.settings = (0, links_1.wrapLinks)(site.settings);
|
|
192
|
+
site.settings = (0, links_1.wrapLinks)(site.settings, (0, links_1.linkContextFor)(site));
|
|
174
193
|
this.site = site;
|
|
175
194
|
return site;
|
|
176
195
|
}
|
|
196
|
+
/** A published data file, read once until the site is next published. `null` if it isn't published. */
|
|
197
|
+
dataFile(id) {
|
|
198
|
+
let file = this.dataFiles.get(id);
|
|
199
|
+
if (!file) {
|
|
200
|
+
file = this.readPublished('data/' + id + '.json').then((source) => JSON.parse(source), () => null);
|
|
201
|
+
this.dataFiles.set(id, file);
|
|
202
|
+
}
|
|
203
|
+
return file;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* What a page's references resolve against: the site's pages and documents, and the rows of the data
|
|
207
|
+
* collections it points at, and of those their rows point at.
|
|
208
|
+
*/
|
|
209
|
+
async linkContext(site, value) {
|
|
210
|
+
// collections whose referenced rows aren't all people from site.json
|
|
211
|
+
const needed = (rows, skip = new Set()) => [...rows].flatMap(([id, ids]) => skip.has(id) || [...ids].every((row) => site?.people?.[row]) ? [] : [id]);
|
|
212
|
+
const first = needed((0, links_1.referencedRows)(value));
|
|
213
|
+
let files = await Promise.all(first.map((id) => this.dataFile(id)));
|
|
214
|
+
const further = needed((0, links_1.referencedRows)([...files.map((file) => file?.rows), ...Object.values(site?.people ?? {})]), new Set(first));
|
|
215
|
+
if (further.length)
|
|
216
|
+
files = [...files, ...(await Promise.all(further.map((id) => this.dataFile(id))))];
|
|
217
|
+
return (0, links_1.linkContextFor)(site, files);
|
|
218
|
+
}
|
|
219
|
+
/** Wraps a page's references (see `wrapLinks`) and adds its byline as `page.authors`. */
|
|
220
|
+
resolvePage(page, site, context) {
|
|
221
|
+
const wrapped = (0, links_1.wrapLinks)(page, context);
|
|
222
|
+
wrapped.authors = (0, links_1.bylineAuthors)(wrapped, site, context);
|
|
223
|
+
return wrapped;
|
|
224
|
+
}
|
|
177
225
|
/**
|
|
178
226
|
* Loads the published page for the request's path (or the `404` page), ready for `render`. With
|
|
179
227
|
* `loadPage` false, returns `page` as given (for custom routes that build their own page object).
|
|
@@ -184,7 +232,7 @@ class Ceems {
|
|
|
184
232
|
const { path, pagination } = this.parsePath(req);
|
|
185
233
|
const entry = site.pages[path];
|
|
186
234
|
if (entry) {
|
|
187
|
-
page = await this.loadPageFile(entry._id);
|
|
235
|
+
page = await this.loadPageFile(entry._id, site);
|
|
188
236
|
page.fullpath = entry.url == 'home' ? '' : entry.url;
|
|
189
237
|
page.path = page.fullpath.split('/');
|
|
190
238
|
if (pagination)
|
|
@@ -194,7 +242,7 @@ class Ceems {
|
|
|
194
242
|
res.status(404);
|
|
195
243
|
const notFound = site.pages['404'];
|
|
196
244
|
if (notFound) {
|
|
197
|
-
page = await this.loadPageFile(notFound._id);
|
|
245
|
+
page = await this.loadPageFile(notFound._id, site);
|
|
198
246
|
}
|
|
199
247
|
}
|
|
200
248
|
}
|
|
@@ -207,20 +255,28 @@ class Ceems {
|
|
|
207
255
|
readPublished(key) {
|
|
208
256
|
return this.storage.read(this.config.cachePrefix + key);
|
|
209
257
|
}
|
|
210
|
-
/**
|
|
211
|
-
|
|
212
|
-
|
|
258
|
+
/**
|
|
259
|
+
* Reads `pages/<id>.json`. Stored links read as their address in templates (see `LinkDrop`), resolved
|
|
260
|
+
* against `site` (by default the last site loaded), and row references read as their rows (`RowDrop`).
|
|
261
|
+
*/
|
|
262
|
+
async loadPageFile(id, site = this.site) {
|
|
263
|
+
const page = JSON.parse(await this.readPublished('pages/' + id + '.json'));
|
|
264
|
+
return this.resolvePage(page, site, await this.linkContext(site, page));
|
|
213
265
|
}
|
|
214
266
|
/** Synchronous local read, kept for custom tags. `filename` is a full path. */
|
|
215
267
|
loadLocalFile(filename) {
|
|
216
|
-
return (0, links_1.wrapLinks)(JSON.parse(fs_1.default.readFileSync(filename, 'utf8'))
|
|
268
|
+
return (0, links_1.wrapLinks)(JSON.parse(fs_1.default.readFileSync(filename, 'utf8')), {
|
|
269
|
+
pageIndex: this.site?.pageIndex,
|
|
270
|
+
documents: this.site?.documents,
|
|
271
|
+
});
|
|
217
272
|
}
|
|
218
273
|
/**
|
|
219
274
|
* Reads and parses a published JSON file, kept for custom tags. `filename` is as published, such as
|
|
220
275
|
* `data/<id>.json`; it is read under `cachePrefix`.
|
|
221
276
|
*/
|
|
222
277
|
async loadS3File(filename) {
|
|
223
|
-
|
|
278
|
+
const value = JSON.parse(await this.readPublished(filename));
|
|
279
|
+
return (0, links_1.wrapLinks)(value, await this.linkContext(this.site, value));
|
|
224
280
|
}
|
|
225
281
|
/** The site path for a request (`home` for `/`), and the blog page number if the URL ends in one. */
|
|
226
282
|
parsePath(req) {
|
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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"}
|