@geekity/cms 0.40.0 → 0.42.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/admin/components/blocks.njk +15 -1
- package/admin/pages/appearance/look.njk +135 -0
- package/admin/pages/dashboard/home.njk +9 -3
- package/admin/pages/documents/conflict.njk +35 -10
- package/admin/pages/documents/editor.njk +29 -0
- package/admin/pages/documents/list.njk +44 -1
- package/admin/pages/settings/general.njk +4 -0
- package/admin/pages/settings/reading.njk +14 -0
- package/admin/pages/users/edit.njk +1 -1
- package/admin/pages/users/writing-goals.njk +64 -0
- package/admin/src/admin.css +32 -0
- package/admin/static/admin.css +202 -4
- package/admin/static/dashboard.js +51 -23
- package/admin/static/editor.js +22 -19
- package/dist/access-log.d.ts +3 -0
- package/dist/access-log.d.ts.map +1 -1
- package/dist/access-log.js +13 -9
- package/dist/access-log.js.map +1 -1
- package/dist/admin/autosave-client.d.ts +85 -0
- package/dist/admin/autosave-client.d.ts.map +1 -0
- package/dist/admin/autosave-client.js +218 -0
- package/dist/admin/autosave-client.js.map +1 -0
- package/dist/admin/autosave.d.ts +12 -0
- package/dist/admin/autosave.d.ts.map +1 -0
- package/dist/admin/autosave.js +92 -0
- package/dist/admin/autosave.js.map +1 -0
- package/dist/admin/blocks.d.ts +13 -1
- package/dist/admin/blocks.d.ts.map +1 -1
- package/dist/admin/blocks.js +40 -5
- package/dist/admin/blocks.js.map +1 -1
- package/dist/admin/core-widgets.d.ts.map +1 -1
- package/dist/admin/core-widgets.js +2 -0
- package/dist/admin/core-widgets.js.map +1 -1
- package/dist/admin/dashboard.d.ts +2 -2
- package/dist/admin/dashboard.d.ts.map +1 -1
- package/dist/admin/dashboard.js +23 -15
- package/dist/admin/dashboard.js.map +1 -1
- package/dist/admin/documents.d.ts.map +1 -1
- package/dist/admin/documents.js +223 -16
- package/dist/admin/documents.js.map +1 -1
- package/dist/admin/editor-word-counter.d.ts +8 -0
- package/dist/admin/editor-word-counter.d.ts.map +1 -0
- package/dist/admin/editor-word-counter.js +27 -0
- package/dist/admin/editor-word-counter.js.map +1 -0
- package/dist/admin/editor-words.d.ts +7 -0
- package/dist/admin/editor-words.d.ts.map +1 -0
- package/dist/admin/editor-words.js +9 -0
- package/dist/admin/editor-words.js.map +1 -0
- package/dist/admin/flash.d.ts +2 -0
- package/dist/admin/flash.d.ts.map +1 -1
- package/dist/admin/flash.js +12 -0
- package/dist/admin/flash.js.map +1 -1
- package/dist/admin/focus-mode.d.ts +37 -0
- package/dist/admin/focus-mode.d.ts.map +1 -0
- package/dist/admin/focus-mode.js +71 -0
- package/dist/admin/focus-mode.js.map +1 -0
- package/dist/admin/look.d.ts +12 -0
- package/dist/admin/look.d.ts.map +1 -0
- package/dist/admin/look.js +179 -0
- package/dist/admin/look.js.map +1 -0
- package/dist/admin/menu.d.ts.map +1 -1
- package/dist/admin/menu.js +7 -3
- package/dist/admin/menu.js.map +1 -1
- package/dist/admin/preview.d.ts.map +1 -1
- package/dist/admin/preview.js +1 -0
- package/dist/admin/preview.js.map +1 -1
- package/dist/admin/routes.d.ts.map +1 -1
- package/dist/admin/routes.js +8 -4
- package/dist/admin/routes.js.map +1 -1
- package/dist/admin/settings-fields.d.ts +1 -1
- package/dist/admin/settings-fields.d.ts.map +1 -1
- package/dist/admin/settings-fields.js +2 -0
- package/dist/admin/settings-fields.js.map +1 -1
- package/dist/admin/settings-general.d.ts.map +1 -1
- package/dist/admin/settings-general.js +1 -0
- package/dist/admin/settings-general.js.map +1 -1
- package/dist/admin/settings-reading.d.ts.map +1 -1
- package/dist/admin/settings-reading.js +7 -1
- package/dist/admin/settings-reading.js.map +1 -1
- package/dist/admin/templates.d.ts +2 -0
- package/dist/admin/templates.d.ts.map +1 -1
- package/dist/admin/templates.js +2 -0
- package/dist/admin/templates.js.map +1 -1
- package/dist/admin/users.d.ts.map +1 -1
- package/dist/admin/users.js +4 -0
- package/dist/admin/users.js.map +1 -1
- package/dist/admin/widget-writing.d.ts +3 -0
- package/dist/admin/widget-writing.d.ts.map +1 -0
- package/dist/admin/widget-writing.js +102 -0
- package/dist/admin/widget-writing.js.map +1 -0
- package/dist/admin/widgets.d.ts +4 -1
- package/dist/admin/widgets.d.ts.map +1 -1
- package/dist/admin/widgets.js +19 -8
- package/dist/admin/widgets.js.map +1 -1
- package/dist/admin/writing-goals.d.ts +33 -0
- package/dist/admin/writing-goals.d.ts.map +1 -0
- package/dist/admin/writing-goals.js +149 -0
- package/dist/admin/writing-goals.js.map +1 -0
- package/dist/autosave/index.d.ts +5 -0
- package/dist/autosave/index.d.ts.map +1 -0
- package/dist/autosave/index.js +3 -0
- package/dist/autosave/index.js.map +1 -0
- package/dist/autosave/key.d.ts +13 -0
- package/dist/autosave/key.d.ts.map +1 -0
- package/dist/autosave/key.js +29 -0
- package/dist/autosave/key.js.map +1 -0
- package/dist/autosave/store.d.ts +23 -0
- package/dist/autosave/store.d.ts.map +1 -0
- package/dist/autosave/store.js +114 -0
- package/dist/autosave/store.js.map +1 -0
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +65 -4
- package/dist/cli.js.map +1 -1
- package/dist/cms/app.d.ts.map +1 -1
- package/dist/cms/app.js +1 -0
- package/dist/cms/app.js.map +1 -1
- package/dist/cms/boot.d.ts.map +1 -1
- package/dist/cms/boot.js +2 -0
- package/dist/cms/boot.js.map +1 -1
- package/dist/cms/create.d.ts +11 -2
- package/dist/cms/create.d.ts.map +1 -1
- package/dist/cms/create.js +61 -2
- package/dist/cms/create.js.map +1 -1
- package/dist/cms/server-error.d.ts.map +1 -1
- package/dist/cms/server-error.js +1 -0
- package/dist/cms/server-error.js.map +1 -1
- package/dist/cms/services.d.ts +2 -0
- package/dist/cms/services.d.ts.map +1 -1
- package/dist/cms/services.js +14 -0
- package/dist/cms/services.js.map +1 -1
- package/dist/config.d.ts +20 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +6 -2
- package/dist/config.js.map +1 -1
- package/dist/content/post-type.d.ts +1 -0
- package/dist/content/post-type.d.ts.map +1 -1
- package/dist/content/post-type.js +1 -1
- package/dist/content/post-type.js.map +1 -1
- package/dist/content/words.d.ts +3 -0
- package/dist/content/words.d.ts.map +1 -0
- package/dist/content/words.js +120 -0
- package/dist/content/words.js.map +1 -0
- package/dist/content/write.d.ts +8 -0
- package/dist/content/write.d.ts.map +1 -1
- package/dist/content/write.js +1 -1
- package/dist/content/write.js.map +1 -1
- package/dist/files/data-files.d.ts +5 -0
- package/dist/files/data-files.d.ts.map +1 -1
- package/dist/files/data-files.js +30 -0
- package/dist/files/data-files.js.map +1 -1
- package/dist/fonts/css.d.ts +25 -0
- package/dist/fonts/css.d.ts.map +1 -0
- package/dist/fonts/css.js +88 -0
- package/dist/fonts/css.js.map +1 -0
- package/dist/fonts/family.d.ts +23 -0
- package/dist/fonts/family.d.ts.map +1 -0
- package/dist/fonts/family.js +41 -0
- package/dist/fonts/family.js.map +1 -0
- package/dist/fonts/index.d.ts +10 -0
- package/dist/fonts/index.d.ts.map +1 -0
- package/dist/fonts/index.js +6 -0
- package/dist/fonts/index.js.map +1 -0
- package/dist/fonts/job.d.ts +20 -0
- package/dist/fonts/job.d.ts.map +1 -0
- package/dist/fonts/job.js +49 -0
- package/dist/fonts/job.js.map +1 -0
- package/dist/fonts/roles.d.ts +53 -0
- package/dist/fonts/roles.d.ts.map +1 -0
- package/dist/fonts/roles.js +64 -0
- package/dist/fonts/roles.js.map +1 -0
- package/dist/fonts/store.d.ts +69 -0
- package/dist/fonts/store.d.ts.map +1 -0
- package/dist/fonts/store.js +237 -0
- package/dist/fonts/store.js.map +1 -0
- package/dist/gemini/capsule.d.ts +4 -0
- package/dist/gemini/capsule.d.ts.map +1 -0
- package/dist/gemini/capsule.js +9 -0
- package/dist/gemini/capsule.js.map +1 -0
- package/dist/gemini/certificate.d.ts +34 -0
- package/dist/gemini/certificate.d.ts.map +1 -0
- package/dist/gemini/certificate.js +255 -0
- package/dist/gemini/certificate.js.map +1 -0
- package/dist/gemini/site-certificate.d.ts +8 -0
- package/dist/gemini/site-certificate.d.ts.map +1 -0
- package/dist/gemini/site-certificate.js +17 -0
- package/dist/gemini/site-certificate.js.map +1 -0
- package/dist/micropub/endpoint.d.ts.map +1 -1
- package/dist/micropub/endpoint.js +12 -0
- package/dist/micropub/endpoint.js.map +1 -1
- package/dist/plugin.d.ts +15 -2
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js.map +1 -1
- package/dist/settings/registry.d.ts.map +1 -1
- package/dist/settings/registry.js +5 -1
- package/dist/settings/registry.js.map +1 -1
- package/dist/settings/types.d.ts +1 -1
- package/dist/settings/types.d.ts.map +1 -1
- package/dist/site/dashboard-layout.d.ts +33 -26
- package/dist/site/dashboard-layout.d.ts.map +1 -1
- package/dist/site/dashboard-layout.js +94 -39
- package/dist/site/dashboard-layout.js.map +1 -1
- package/dist/site/namespace.d.ts +6 -0
- package/dist/site/namespace.d.ts.map +1 -1
- package/dist/site/namespace.js +46 -1
- package/dist/site/namespace.js.map +1 -1
- package/dist/site/users.d.ts +7 -0
- package/dist/site/users.d.ts.map +1 -1
- package/dist/site/users.js +7 -0
- package/dist/site/users.js.map +1 -1
- package/dist/site/writing-goals.d.ts +22 -0
- package/dist/site/writing-goals.d.ts.map +1 -0
- package/dist/site/writing-goals.js +42 -0
- package/dist/site/writing-goals.js.map +1 -0
- package/dist/store/schema.d.ts.map +1 -1
- package/dist/store/schema.js +4 -0
- package/dist/store/schema.js.map +1 -1
- package/dist/store/sessions.d.ts +2 -1
- package/dist/store/sessions.d.ts.map +1 -1
- package/dist/store/sessions.js +30 -12
- package/dist/store/sessions.js.map +1 -1
- package/dist/theme/font-family.d.ts +13 -0
- package/dist/theme/font-family.d.ts.map +1 -0
- package/dist/theme/font-family.js +21 -0
- package/dist/theme/font-family.js.map +1 -0
- package/dist/theme/scheme-tokens.d.ts +50 -0
- package/dist/theme/scheme-tokens.d.ts.map +1 -0
- package/dist/theme/scheme-tokens.js +240 -0
- package/dist/theme/scheme-tokens.js.map +1 -0
- package/dist/theme/site-data.d.ts +12 -0
- package/dist/theme/site-data.d.ts.map +1 -1
- package/dist/theme/site-data.js +15 -0
- package/dist/theme/site-data.js.map +1 -1
- package/dist/theme/themes.d.ts +74 -0
- package/dist/theme/themes.d.ts.map +1 -1
- package/dist/theme/themes.js +100 -9
- package/dist/theme/themes.js.map +1 -1
- package/dist/util/public-address.d.ts +1 -0
- package/dist/util/public-address.d.ts.map +1 -1
- package/dist/util/public-address.js +38 -30
- package/dist/util/public-address.js.map +1 -1
- package/dist/web/access-line.d.ts +2 -0
- package/dist/web/access-line.d.ts.map +1 -0
- package/dist/web/access-line.js +6 -0
- package/dist/web/access-line.js.map +1 -0
- package/dist/web/document-page.d.ts.map +1 -1
- package/dist/web/document-page.js +3 -4
- package/dist/web/document-page.js.map +1 -1
- package/dist/web/embed.d.ts.map +1 -1
- package/dist/web/embed.js +2 -1
- package/dist/web/embed.js.map +1 -1
- package/dist/web/env.d.ts +2 -0
- package/dist/web/env.d.ts.map +1 -1
- package/dist/web/feed-routes.d.ts.map +1 -1
- package/dist/web/feed-routes.js +4 -4
- package/dist/web/feed-routes.js.map +1 -1
- package/dist/web/feed-source.d.ts +1 -1
- package/dist/web/feed-source.d.ts.map +1 -1
- package/dist/web/feed-source.js +1 -1
- package/dist/web/feed-source.js.map +1 -1
- package/dist/web/font-routes.d.ts +13 -0
- package/dist/web/font-routes.d.ts.map +1 -0
- package/dist/web/font-routes.js +27 -0
- package/dist/web/font-routes.js.map +1 -0
- package/dist/web/gemini-listener.d.ts +30 -0
- package/dist/web/gemini-listener.d.ts.map +1 -0
- package/dist/web/gemini-listener.js +186 -0
- package/dist/web/gemini-listener.js.map +1 -0
- package/dist/web/gemini-request.d.ts +23 -0
- package/dist/web/gemini-request.d.ts.map +1 -0
- package/dist/web/gemini-request.js +127 -0
- package/dist/web/gemini-request.js.map +1 -0
- package/dist/web/listing-pages.d.ts.map +1 -1
- package/dist/web/listing-pages.js +7 -5
- package/dist/web/listing-pages.js.map +1 -1
- package/dist/web/llms.d.ts +1 -0
- package/dist/web/llms.d.ts.map +1 -1
- package/dist/web/llms.js +3 -0
- package/dist/web/llms.js.map +1 -1
- package/dist/web/maintenance.d.ts.map +1 -1
- package/dist/web/maintenance.js +6 -2
- package/dist/web/maintenance.js.map +1 -1
- package/dist/web/manifest.d.ts +8 -5
- package/dist/web/manifest.d.ts.map +1 -1
- package/dist/web/manifest.js +10 -7
- package/dist/web/manifest.js.map +1 -1
- package/dist/web/markdown-representation.d.ts +11 -20
- package/dist/web/markdown-representation.d.ts.map +1 -1
- package/dist/web/markdown-representation.js +57 -58
- package/dist/web/markdown-representation.js.map +1 -1
- package/dist/web/negotiate.d.ts +4 -16
- package/dist/web/negotiate.d.ts.map +1 -1
- package/dist/web/negotiate.js +23 -18
- package/dist/web/negotiate.js.map +1 -1
- package/dist/web/oembed.d.ts +17 -3
- package/dist/web/oembed.d.ts.map +1 -1
- package/dist/web/oembed.js +68 -26
- package/dist/web/oembed.js.map +1 -1
- package/dist/web/proxy-protocol.d.ts +13 -0
- package/dist/web/proxy-protocol.d.ts.map +1 -0
- package/dist/web/proxy-protocol.js +79 -0
- package/dist/web/proxy-protocol.js.map +1 -0
- package/dist/web/render.d.ts +52 -22
- package/dist/web/render.d.ts.map +1 -1
- package/dist/web/render.js +94 -30
- package/dist/web/render.js.map +1 -1
- package/dist/web/routes.d.ts.map +1 -1
- package/dist/web/routes.js +7 -8
- package/dist/web/routes.js.map +1 -1
- package/dist/web/site-index.d.ts.map +1 -1
- package/dist/web/site-index.js +6 -2
- package/dist/web/site-index.js.map +1 -1
- package/dist/web/status-pages.d.ts +2 -3
- package/dist/web/status-pages.d.ts.map +1 -1
- package/dist/web/status-pages.js +14 -11
- package/dist/web/status-pages.js.map +1 -1
- package/dist/web/throttle.d.ts +9 -0
- package/dist/web/throttle.d.ts.map +1 -1
- package/dist/web/throttle.js +17 -0
- package/dist/web/throttle.js.map +1 -1
- package/dist/webmention/fetch-public.d.ts +6 -0
- package/dist/webmention/fetch-public.d.ts.map +1 -1
- package/dist/webmention/fetch-public.js +6 -1
- package/dist/webmention/fetch-public.js.map +1 -1
- package/dist/writing/ledger.d.ts +15 -0
- package/dist/writing/ledger.d.ts.map +1 -0
- package/dist/writing/ledger.js +70 -0
- package/dist/writing/ledger.js.map +1 -0
- package/dist/writing/progress.d.ts +25 -0
- package/dist/writing/progress.d.ts.map +1 -0
- package/dist/writing/progress.js +83 -0
- package/dist/writing/progress.js.map +1 -0
- package/package.json +2 -1
- package/themes/default/layouts/404.gmi.njk +10 -0
- package/themes/default/layouts/410.gmi.njk +8 -0
- package/themes/default/layouts/500.gmi.njk +9 -0
- package/themes/default/layouts/503.gmi.njk +9 -0
- package/themes/default/layouts/base.njk +31 -16
- package/themes/default/layouts/page.njk +4 -8
- package/themes/default/partials/bio.njk +1 -1
- package/themes/default/partials/contact-form.njk +1 -1
- package/themes/default/partials/markdown-footer.md.njk +9 -1
- package/themes/default/src/style.css +326 -15
- package/themes/default/static/style.css +489 -3
- package/themes/default/theme.json +23 -1
package/dist/web/oembed.js
CHANGED
|
@@ -121,17 +121,26 @@ export function oEmbedResponse(embed, format, conditional) {
|
|
|
121
121
|
* session, so a reader of a framing site sees the same card a signed-in admin
|
|
122
122
|
* would, and nothing about either. `noindex` because the post is the page to
|
|
123
123
|
* find, not its card.
|
|
124
|
+
*
|
|
125
|
+
* With `colors`, the card is drawn in the site's scheme and mode, from the
|
|
126
|
+
* tokens the theme's stylesheet gives that scheme; without, under a theme
|
|
127
|
+
* that has no schemes, in a look of its own.
|
|
124
128
|
*/
|
|
125
129
|
export function embedPage(subject) {
|
|
126
|
-
|
|
130
|
+
const { colors } = subject;
|
|
131
|
+
const style = colors === undefined ? EMBED_STYLE : schemeStyle(colors);
|
|
132
|
+
const chosen = colors === undefined
|
|
133
|
+
? ''
|
|
134
|
+
: ` data-scheme="${escapeXml(colors.scheme.name)}" data-mode="${colors.mode}"`;
|
|
135
|
+
const html = [
|
|
127
136
|
'<!doctype html>',
|
|
128
|
-
`<html lang="${escapeXml(siteLocale(subject.site))}">`,
|
|
137
|
+
`<html lang="${escapeXml(siteLocale(subject.site))}"${chosen}>`,
|
|
129
138
|
'<head>',
|
|
130
139
|
'<meta charset="utf-8">',
|
|
131
140
|
'<meta name="viewport" content="width=device-width, initial-scale=1">',
|
|
132
141
|
'<meta name="robots" content="noindex">',
|
|
133
142
|
`<title>${escapeXml(subject.label)}</title>`,
|
|
134
|
-
`<style>${
|
|
143
|
+
`<style>${style}</style>`,
|
|
135
144
|
'</head>',
|
|
136
145
|
'<body>',
|
|
137
146
|
embedCard(subject),
|
|
@@ -140,6 +149,7 @@ export function embedPage(subject) {
|
|
|
140
149
|
'</html>',
|
|
141
150
|
'',
|
|
142
151
|
].join('\n');
|
|
152
|
+
return { html, policy: embedPolicy(style) };
|
|
143
153
|
}
|
|
144
154
|
/**
|
|
145
155
|
* The embed page as a response, or a 304 to a client that already holds it.
|
|
@@ -150,30 +160,60 @@ export function embedPage(subject) {
|
|
|
150
160
|
* `X-Frame-Options`, which has no way to say "anyone".
|
|
151
161
|
*/
|
|
152
162
|
export function embedResponse(page, conditional) {
|
|
153
|
-
const etag = contentEtag('embed', page);
|
|
163
|
+
const etag = contentEtag('embed', page.html);
|
|
154
164
|
const headers = new Headers({
|
|
155
165
|
etag,
|
|
156
166
|
'cache-control': 'no-cache',
|
|
157
|
-
'content-security-policy':
|
|
167
|
+
'content-security-policy': page.policy,
|
|
158
168
|
});
|
|
159
169
|
if (isNotModified(conditional, etag, undefined)) {
|
|
160
170
|
return new Response(null, { status: 304, headers });
|
|
161
171
|
}
|
|
162
172
|
headers.set('content-type', 'text/html; charset=utf-8');
|
|
163
|
-
return new Response(page, { headers });
|
|
173
|
+
return new Response(page.html, { headers });
|
|
164
174
|
}
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
175
|
+
const EMBED_TOKENS = {
|
|
176
|
+
body: '#fff',
|
|
177
|
+
text: '#1f1f1f',
|
|
178
|
+
muted: '#595959',
|
|
179
|
+
primary: '#0b57d0',
|
|
180
|
+
edge: '#d6d6d6',
|
|
181
|
+
};
|
|
182
|
+
const CSS_SAFE_COLOUR = /^[\w#%.,() -]+$/;
|
|
183
|
+
function tokenDeclarations(tokens) {
|
|
184
|
+
return Object.entries(EMBED_TOKENS)
|
|
185
|
+
.map(([name, fallback]) => {
|
|
186
|
+
const value = tokens.get(name);
|
|
187
|
+
return `--${name}:${value !== undefined && CSS_SAFE_COLOUR.test(value) ? value : fallback}`;
|
|
188
|
+
})
|
|
189
|
+
.join(';');
|
|
190
|
+
}
|
|
191
|
+
function schemeStyle({ mode, tokens }) {
|
|
192
|
+
const first = mode === 'dark' ? tokens.dark : tokens.light;
|
|
193
|
+
return [
|
|
194
|
+
`:root{color-scheme:${mode === 'system' ? 'light dark' : mode};${tokenDeclarations(first)}}`,
|
|
195
|
+
mode === 'system'
|
|
196
|
+
? `@media (prefers-color-scheme:dark){:root{${tokenDeclarations(tokens.dark)}}}`
|
|
197
|
+
: '',
|
|
198
|
+
cardRules({
|
|
199
|
+
body: 'var(--body)',
|
|
200
|
+
text: 'var(--text)',
|
|
201
|
+
muted: 'var(--muted)',
|
|
202
|
+
primary: 'var(--primary)',
|
|
203
|
+
edge: 'var(--edge)',
|
|
204
|
+
}),
|
|
205
|
+
].join('');
|
|
206
|
+
}
|
|
207
|
+
function cardRules(color) {
|
|
208
|
+
return [
|
|
209
|
+
`body{margin:0;background:${color.body};color:${color.text};font:16px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif}`,
|
|
210
|
+
`.geekity-embed{margin:0;padding:16px 20px;border:1px solid ${color.edge};border-radius:8px;overflow-wrap:anywhere}`,
|
|
211
|
+
'.geekity-embed p{margin:0 0 8px}',
|
|
212
|
+
`.geekity-embed p:last-child{margin:0;font-size:14px;color:${color.muted}}`,
|
|
213
|
+
`.geekity-embed a{color:${color.primary}}`,
|
|
214
|
+
].join('');
|
|
215
|
+
}
|
|
216
|
+
const EMBED_STYLE = `html{color-scheme:light}${cardRules(EMBED_TOKENS)}`;
|
|
177
217
|
/**
|
|
178
218
|
* WordPress's embed protocol, the framed side (wp-includes/js/wp-embed.js is
|
|
179
219
|
* the other).
|
|
@@ -203,14 +243,16 @@ const EMBED_SCRIPT = [
|
|
|
203
243
|
function inlineHash(contents) {
|
|
204
244
|
return `'sha256-${createHash('sha256').update(contents, 'utf8').digest('base64')}'`;
|
|
205
245
|
}
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
246
|
+
function embedPolicy(style) {
|
|
247
|
+
return [
|
|
248
|
+
"default-src 'none'",
|
|
249
|
+
`style-src ${inlineHash(style)}`,
|
|
250
|
+
`script-src ${inlineHash(EMBED_SCRIPT)}`,
|
|
251
|
+
"base-uri 'none'",
|
|
252
|
+
"form-action 'none'",
|
|
253
|
+
'frame-ancestors *',
|
|
254
|
+
].join('; ');
|
|
255
|
+
}
|
|
214
256
|
/**
|
|
215
257
|
* The frame of the embed view, in the shape WordPress's own provider sends:
|
|
216
258
|
* sandboxed, borderless, and hidden until the page inside reports its height.
|
package/dist/web/oembed.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oembed.js","sourceRoot":"","sources":["../../src/web/oembed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIzC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"oembed.js","sourceRoot":"","sources":["../../src/web/oembed.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type ProxyPreamble = {
|
|
2
|
+
readonly kind: 'partial';
|
|
3
|
+
} | {
|
|
4
|
+
readonly kind: 'none';
|
|
5
|
+
} | {
|
|
6
|
+
readonly kind: 'invalid';
|
|
7
|
+
} | {
|
|
8
|
+
readonly kind: 'header';
|
|
9
|
+
readonly length: number;
|
|
10
|
+
readonly address: string | undefined;
|
|
11
|
+
};
|
|
12
|
+
export declare function readProxyPreamble(received: Buffer): ProxyPreamble;
|
|
13
|
+
//# sourceMappingURL=proxy-protocol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy-protocol.d.ts","sourceRoot":"","sources":["../../src/web/proxy-protocol.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,aAAa,GACrB;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAa/F,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CAIjE"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import net from 'node:net';
|
|
2
|
+
const V1_SIGNATURE = Buffer.from('PROXY ');
|
|
3
|
+
/** The spec's longest v1 line, CR LF included. */
|
|
4
|
+
const V1_MAX_BYTES = 107;
|
|
5
|
+
const V2_SIGNATURE = Buffer.from('0d0a0d0a000d0a515549540a', 'hex');
|
|
6
|
+
const V2_FIXED_BYTES = 16;
|
|
7
|
+
const V2_MAX_BYTES = V2_FIXED_BYTES + 2048;
|
|
8
|
+
const PARTIAL = { kind: 'partial' };
|
|
9
|
+
const NONE = { kind: 'none' };
|
|
10
|
+
const INVALID = { kind: 'invalid' };
|
|
11
|
+
export function readProxyPreamble(received) {
|
|
12
|
+
if (startsLike(received, V1_SIGNATURE))
|
|
13
|
+
return readV1(received);
|
|
14
|
+
if (startsLike(received, V2_SIGNATURE))
|
|
15
|
+
return readV2(received);
|
|
16
|
+
return NONE;
|
|
17
|
+
}
|
|
18
|
+
function startsLike(received, signature) {
|
|
19
|
+
const length = Math.min(received.length, signature.length);
|
|
20
|
+
return received.subarray(0, length).equals(signature.subarray(0, length));
|
|
21
|
+
}
|
|
22
|
+
function readV1(received) {
|
|
23
|
+
const end = received.indexOf('\r\n');
|
|
24
|
+
if (end < 0)
|
|
25
|
+
return received.length < V1_MAX_BYTES ? PARTIAL : INVALID;
|
|
26
|
+
if (end + 2 > V1_MAX_BYTES)
|
|
27
|
+
return INVALID;
|
|
28
|
+
const length = end + 2;
|
|
29
|
+
const [, protocol, source, destination, sourcePort, destinationPort, ...rest] = received
|
|
30
|
+
.subarray(0, end)
|
|
31
|
+
.toString('latin1')
|
|
32
|
+
.split(' ');
|
|
33
|
+
if (protocol === 'UNKNOWN')
|
|
34
|
+
return { kind: 'header', length, address: undefined };
|
|
35
|
+
const family = protocol === 'TCP4' ? 4 : protocol === 'TCP6' ? 6 : undefined;
|
|
36
|
+
if (family === undefined ||
|
|
37
|
+
rest.length > 0 ||
|
|
38
|
+
source === undefined ||
|
|
39
|
+
net.isIP(source) !== family ||
|
|
40
|
+
net.isIP(destination ?? '') !== family ||
|
|
41
|
+
!isPort(sourcePort) ||
|
|
42
|
+
!isPort(destinationPort)) {
|
|
43
|
+
return INVALID;
|
|
44
|
+
}
|
|
45
|
+
return { kind: 'header', length, address: source };
|
|
46
|
+
}
|
|
47
|
+
function isPort(value) {
|
|
48
|
+
return value !== undefined && /^\d{1,5}$/.test(value) && Number(value) <= 65_535;
|
|
49
|
+
}
|
|
50
|
+
function readV2(received) {
|
|
51
|
+
if (received.length < V2_FIXED_BYTES)
|
|
52
|
+
return PARTIAL;
|
|
53
|
+
const versionAndCommand = received[12] ?? 0;
|
|
54
|
+
const family = (received[13] ?? 0) >> 4;
|
|
55
|
+
const length = V2_FIXED_BYTES + received.readUInt16BE(14);
|
|
56
|
+
if (versionAndCommand >> 4 !== 2 || length > V2_MAX_BYTES)
|
|
57
|
+
return INVALID;
|
|
58
|
+
const command = versionAndCommand & 0x0f;
|
|
59
|
+
if (command > 1)
|
|
60
|
+
return INVALID;
|
|
61
|
+
const addressBytes = family === 1 ? 12 : family === 2 ? 36 : 0;
|
|
62
|
+
if (length < V2_FIXED_BYTES + addressBytes)
|
|
63
|
+
return INVALID;
|
|
64
|
+
if (received.length < length)
|
|
65
|
+
return PARTIAL;
|
|
66
|
+
if (command === 0 || addressBytes === 0)
|
|
67
|
+
return { kind: 'header', length, address: undefined };
|
|
68
|
+
const source = received.subarray(V2_FIXED_BYTES);
|
|
69
|
+
return {
|
|
70
|
+
kind: 'header',
|
|
71
|
+
length,
|
|
72
|
+
address: family === 1 ? [...source.subarray(0, 4)].join('.') : ipv6(source.subarray(0, 16)),
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
function ipv6(bytes) {
|
|
76
|
+
const groups = Array.from({ length: 8 }, (_, index) => bytes.readUInt16BE(index * 2).toString(16));
|
|
77
|
+
return new URL(`http://[${groups.join(':')}]/`).hostname.slice(1, -1);
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=proxy-protocol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy-protocol.js","sourceRoot":"","sources":["../../src/web/proxy-protocol.ts"],"names":[],"mappings":"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"}
|
package/dist/web/render.d.ts
CHANGED
|
@@ -10,11 +10,14 @@ import type { AuthorContext } from '../site/authors.ts';
|
|
|
10
10
|
import type { CommentFormContext, CommentViewer } from '../comments/form.ts';
|
|
11
11
|
import type { ContactFormContext } from '../contact/form.ts';
|
|
12
12
|
import type { CommentThread, Conversation } from '../comments/conversation.ts';
|
|
13
|
-
import type { FrontPageSlugs, SiteData } from '../theme/site-data.ts';
|
|
13
|
+
import type { FrontPageSlugs, SiteColors, SiteData } from '../theme/site-data.ts';
|
|
14
14
|
import type { MarkdownChrome, MarkdownUrl } from './markdown-page.ts';
|
|
15
15
|
import type { Pagination } from './pagination.ts';
|
|
16
16
|
import type { TaxonomyBases, TaxonomyRedirect } from '../content/taxonomy.ts';
|
|
17
|
-
import type { ThemeColors, ThemeSource } from '../theme/themes.ts';
|
|
17
|
+
import type { ThemeColors, ThemeFont, ThemeSource } from '../theme/themes.ts';
|
|
18
|
+
import type { PageFont } from '../fonts/index.ts';
|
|
19
|
+
import type { TextFormat } from './negotiate.ts';
|
|
20
|
+
import type { SchemeTokens } from '../theme/scheme-tokens.ts';
|
|
18
21
|
import type { ReplyContext } from '../webmention/reply-context.ts';
|
|
19
22
|
import type { SyndicationTarget } from '../content/syndicate-to.ts';
|
|
20
23
|
/** Templates the default theme ships and the public routes ask for by name. */
|
|
@@ -52,21 +55,21 @@ export declare const OPTIONAL_TEMPLATES: {
|
|
|
52
55
|
/** The listing on the posts page. Falls back to {@link TEMPLATES.home}. */
|
|
53
56
|
readonly postsPage: 'layouts/posts-page.njk';
|
|
54
57
|
};
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
export
|
|
60
|
-
readonly
|
|
61
|
-
readonly
|
|
62
|
-
}
|
|
63
|
-
/** What {@link Renderer.renderStatusMarkdown} writes a status page's Markdown with. */
|
|
58
|
+
export interface TextTemplates {
|
|
59
|
+
readonly markdown: string;
|
|
60
|
+
readonly gemini: string;
|
|
61
|
+
}
|
|
62
|
+
export interface ThemeText {
|
|
63
|
+
readonly format: TextFormat;
|
|
64
|
+
readonly text: string;
|
|
65
|
+
}
|
|
64
66
|
export interface StatusMarkdownContext {
|
|
65
67
|
/** The path the request was for. */
|
|
66
68
|
url: string;
|
|
67
69
|
markdownUrl: MarkdownUrl;
|
|
68
70
|
/** On the maintenance page: when the operator expects the site back. */
|
|
69
71
|
until?: Date | undefined;
|
|
72
|
+
format: TextFormat;
|
|
70
73
|
}
|
|
71
74
|
/** What {@link Renderer.renderMarkdownChrome} writes links with. */
|
|
72
75
|
export interface MarkdownChromeOptions {
|
|
@@ -79,11 +82,15 @@ export interface MarkdownChromeOptions {
|
|
|
79
82
|
* `backlinks`, and `archiveMonths` when it says `archive: true`.
|
|
80
83
|
*/
|
|
81
84
|
document?: Document | undefined;
|
|
85
|
+
/**
|
|
86
|
+
* For `gemini`, the archive page's descriptions are left off, so each of
|
|
87
|
+
* its posts converts to a gemfeed line, `=> url YYYY-MM-DD title`.
|
|
88
|
+
*/
|
|
89
|
+
format: TextFormat;
|
|
82
90
|
}
|
|
83
|
-
/** A page's Markdown header and footer, as the theme wrote them. */
|
|
84
91
|
export interface MarkdownChromeText {
|
|
85
|
-
readonly header:
|
|
86
|
-
readonly footer:
|
|
92
|
+
readonly header: ThemeText;
|
|
93
|
+
readonly footer: ThemeText;
|
|
87
94
|
}
|
|
88
95
|
/** A listing of documents, ready to render. */
|
|
89
96
|
export interface Listing {
|
|
@@ -208,19 +215,23 @@ export interface Renderer {
|
|
|
208
215
|
*/
|
|
209
216
|
renderMaintenance(url: string, until: Date | undefined): string;
|
|
210
217
|
/**
|
|
211
|
-
* The body of a status page's Markdown, from the theme's
|
|
212
|
-
*
|
|
213
|
-
* `site`, `url`, `title`, the maintenance page's `until` and
|
|
214
|
-
* and the filters the Markdown partials have.
|
|
218
|
+
* The body of a status page's Markdown or gemtext, from the theme's
|
|
219
|
+
* templates in {@link STATUS_PAGES}, with autoescaping off. The template
|
|
220
|
+
* gets `site`, `url`, `title`, the maintenance page's `until` and
|
|
221
|
+
* `untilText`, and the filters the Markdown partials have.
|
|
215
222
|
*/
|
|
216
|
-
renderStatusMarkdown(page: StatusPageName, context: StatusMarkdownContext):
|
|
223
|
+
renderStatusMarkdown(page: StatusPageName, context: StatusMarkdownContext): ThemeText;
|
|
217
224
|
/**
|
|
218
|
-
* The header and footer of a page's Markdown, through
|
|
219
|
-
* {@link
|
|
225
|
+
* The header and footer of a page's Markdown or gemtext, through
|
|
226
|
+
* {@link CHROME_TEMPLATES} with autoescaping off: Markdown is not HTML.
|
|
220
227
|
* The partials get `site`, `menus`, `soloAuthor`, the chrome's links as
|
|
221
228
|
* data, a document's `categories`, `tags`, `backlinks`, `conversation` and
|
|
222
229
|
* form links, `archiveMonths` on an archive page, and the `escapeMarkdown`,
|
|
223
|
-
* `nest` and `
|
|
230
|
+
* `nest`, `markdownUrl` and `geminiUrl` filters.
|
|
231
|
+
*
|
|
232
|
+
* Gemtext comes from the first of the chosen theme's `.gmi.njk`, its
|
|
233
|
+
* `.md.njk`, the default theme's `.gmi.njk` and its `.md.njk`
|
|
234
|
+
* (decision-60), and the result says which format the theme wrote.
|
|
224
235
|
*/
|
|
225
236
|
renderMarkdownChrome(chrome: MarkdownChrome, options: MarkdownChromeOptions): MarkdownChromeText;
|
|
226
237
|
/** Any template by name, with the site data already in the context. */
|
|
@@ -236,6 +247,15 @@ export interface Renderer {
|
|
|
236
247
|
* packaged theme: what the head declares and the web manifest repeats.
|
|
237
248
|
*/
|
|
238
249
|
themeColors(): ThemeColors;
|
|
250
|
+
/**
|
|
251
|
+
* The scheme and mode the site draws its pages in right now, with the
|
|
252
|
+
* scheme's colour tokens from the theme's stylesheet: what a page that does
|
|
253
|
+
* not load the stylesheet, the embed view, colours itself with.
|
|
254
|
+
* `undefined` under a theme with no schemes.
|
|
255
|
+
*/
|
|
256
|
+
siteColors(): (SiteColors & {
|
|
257
|
+
readonly tokens: SchemeTokens;
|
|
258
|
+
}) | undefined;
|
|
239
259
|
/** The Nunjucks environment, for a site that wants to add its own filters. */
|
|
240
260
|
readonly environment: Environment;
|
|
241
261
|
/**
|
|
@@ -256,6 +276,12 @@ export interface PostSyndication {
|
|
|
256
276
|
export interface CreateRendererOptions {
|
|
257
277
|
/** Config after defaults, for the themes directory, base URL and content directory. */
|
|
258
278
|
config: ResolvedConfig;
|
|
279
|
+
/**
|
|
280
|
+
* The Google Fonts a page is set in, per the site's `headingFont` and
|
|
281
|
+
* `bodyFont` and the roles the theme declares (decision-61). A renderer
|
|
282
|
+
* built without it sets every role in the theme's own stack.
|
|
283
|
+
*/
|
|
284
|
+
fonts?: ((site: SiteData, declared: readonly ThemeFont[]) => readonly PageFont[]) | undefined;
|
|
259
285
|
/**
|
|
260
286
|
* Which theme the site is rendering through, asked per render (decision-15).
|
|
261
287
|
*
|
|
@@ -421,21 +447,25 @@ export declare const STATUS_PAGES: {
|
|
|
421
447
|
readonly notFound: {
|
|
422
448
|
readonly template: "layouts/404.njk";
|
|
423
449
|
readonly markdown: 'layouts/404.md.njk';
|
|
450
|
+
readonly gemini: 'layouts/404.gmi.njk';
|
|
424
451
|
readonly title: 'Not found';
|
|
425
452
|
};
|
|
426
453
|
readonly gone: {
|
|
427
454
|
readonly template: "layouts/410.njk";
|
|
428
455
|
readonly markdown: 'layouts/410.md.njk';
|
|
456
|
+
readonly gemini: 'layouts/410.gmi.njk';
|
|
429
457
|
readonly title: 'Deleted';
|
|
430
458
|
};
|
|
431
459
|
readonly serverError: {
|
|
432
460
|
readonly template: "layouts/500.njk";
|
|
433
461
|
readonly markdown: 'layouts/500.md.njk';
|
|
462
|
+
readonly gemini: 'layouts/500.gmi.njk';
|
|
434
463
|
readonly title: 'Something went wrong';
|
|
435
464
|
};
|
|
436
465
|
readonly maintenance: {
|
|
437
466
|
readonly template: "layouts/503.njk";
|
|
438
467
|
readonly markdown: 'layouts/503.md.njk';
|
|
468
|
+
readonly gemini: 'layouts/503.gmi.njk';
|
|
439
469
|
readonly title: 'Down for maintenance';
|
|
440
470
|
};
|
|
441
471
|
};
|
package/dist/web/render.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/web/render.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AASvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAKxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/web/render.ts"],"names":[],"mappings":"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"}
|