@kernhq/module-quire 0.14.0 → 0.16.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/dist/contract/models.d.ts +209 -0
- package/dist/contract/models.d.ts.map +1 -1
- package/dist/contract/models.js +151 -0
- package/dist/contract/models.js.map +1 -1
- package/dist/contract/permissions.d.ts.map +1 -1
- package/dist/contract/permissions.js +32 -0
- package/dist/contract/permissions.js.map +1 -1
- package/dist/contract/properties.d.ts +3 -3
- package/dist/contract/router.d.ts +509 -8
- package/dist/contract/router.d.ts.map +1 -1
- package/dist/contract/router.js +211 -1
- package/dist/contract/router.js.map +1 -1
- package/dist/server/_impl.d.ts +573 -1269
- package/dist/server/_impl.d.ts.map +1 -1
- package/dist/server/_impl.js +180 -0
- package/dist/server/_impl.js.map +1 -1
- package/dist/server/export/markdown.d.ts.map +1 -1
- package/dist/server/export/markdown.js +84 -1
- package/dist/server/export/markdown.js.map +1 -1
- package/dist/server/render.d.ts +190 -1
- package/dist/server/render.d.ts.map +1 -1
- package/dist/server/render.js +413 -0
- package/dist/server/render.js.map +1 -1
- package/dist/server/schema.d.ts +260 -1
- package/dist/server/schema.d.ts.map +1 -1
- package/dist/server/schema.js +108 -1
- package/dist/server/schema.js.map +1 -1
- package/dist/server/services/databases.d.ts +5 -5
- package/dist/server/services/index.d.ts +6 -0
- package/dist/server/services/index.d.ts.map +1 -1
- package/dist/server/services/index.js +27 -3
- package/dist/server/services/index.js.map +1 -1
- package/dist/server/services/macros.d.ts +83 -0
- package/dist/server/services/macros.d.ts.map +1 -0
- package/dist/server/services/macros.js +488 -0
- package/dist/server/services/macros.js.map +1 -0
- package/dist/server/services/objects.d.ts +61 -0
- package/dist/server/services/objects.d.ts.map +1 -0
- package/dist/server/services/objects.js +110 -0
- package/dist/server/services/objects.js.map +1 -0
- package/dist/server/services/publications.d.ts +2 -1
- package/dist/server/services/publications.d.ts.map +1 -1
- package/dist/server/services/publications.js +43 -4
- package/dist/server/services/publications.js.map +1 -1
- package/dist/server/services/templates.d.ts +135 -0
- package/dist/server/services/templates.d.ts.map +1 -0
- package/dist/server/services/templates.js +897 -0
- package/dist/server/services/templates.js.map +1 -0
- package/dist/server/services/unfurl.d.ts +154 -0
- package/dist/server/services/unfurl.d.ts.map +1 -0
- package/dist/server/services/unfurl.js +593 -0
- package/dist/server/services/unfurl.js.map +1 -0
- package/dist/server/services/versions.d.ts +12 -0
- package/dist/server/services/versions.d.ts.map +1 -1
- package/dist/server/services/versions.js +3 -1
- package/dist/server/services/versions.js.map +1 -1
- package/migrations/0011_templates.sql +157 -0
- package/migrations/meta/_journal.json +7 -0
- package/package.json +5 -5
- package/src/client/components/NewSpaceDialog.svelte +77 -8
- package/src/client/components/PageEditor.svelte +80 -0
- package/src/client/components/PagePicker.svelte +264 -0
- package/src/client/components/SaveAsTemplateDialog.svelte +502 -0
- package/src/client/components/SidebarSpaces.svelte +33 -1
- package/src/client/components/TemplatePicker.svelte +437 -0
- package/src/client/i18n.ts +327 -0
- package/src/client/index.ts +19 -0
- package/src/client/mock.ts +274 -0
- package/src/client/pages/PageView.svelte +50 -0
- package/src/client/pages/SpacePage.svelte +20 -4
- package/src/client/query.ts +17 -0
- package/src/contract/models.ts +191 -0
- package/src/contract/permissions.ts +33 -0
- package/src/contract/router.ts +228 -0
package/dist/server/render.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { renderMermaid } from '@kernhq/ui/editor/mermaid';
|
|
2
|
+
import { DEFAULT_PAGE_DIAGRAM_KIND, PAGE_DIAGRAM_KINDS, PAGE_DIAGRAM_MAX_SOURCE, PAGE_DIAGRAM_MAX_TITLE, PAGE_EMBED_MAX_DESCRIPTION, PAGE_EMBED_MAX_SITE, PAGE_EMBED_MAX_TITLE, PAGE_EMBED_MAX_URL, } from '@kernhq/ui/editor/page-doc';
|
|
1
3
|
/**
|
|
2
4
|
* A page, drawn outside the browser.
|
|
3
5
|
*
|
|
@@ -115,6 +117,15 @@ function safeInt(value, min, max) {
|
|
|
115
117
|
const attr = (name, value) => value === null || value === undefined || value === '' ? '' : ` ${name}="${escapeHtml(String(value))}"`;
|
|
116
118
|
/** `id` when the writer's editor stamped one, so a heading can be linked to. */
|
|
117
119
|
const idAttr = (node) => attr('id', safeId(node.attrs?.id));
|
|
120
|
+
export const DEFAULT_MACRO_STRINGS = {
|
|
121
|
+
empty: 'Nothing to show',
|
|
122
|
+
untitled: 'Untitled',
|
|
123
|
+
diagramEmpty: 'This diagram has no source yet',
|
|
124
|
+
diagramUnsupported: 'This diagram uses something that cannot be drawn here',
|
|
125
|
+
diagramBroken: 'This diagram could not be drawn',
|
|
126
|
+
diagramNoPicture: 'No picture has been saved for this diagram',
|
|
127
|
+
diagramOpen: 'Open the diagram',
|
|
128
|
+
};
|
|
118
129
|
/** Every character in the node, ignoring marks. What a `<pre>` wants. */
|
|
119
130
|
function textOf(node) {
|
|
120
131
|
if (typeof node.text === 'string')
|
|
@@ -163,6 +174,162 @@ function renderMarks(html, marks) {
|
|
|
163
174
|
}
|
|
164
175
|
return out;
|
|
165
176
|
}
|
|
177
|
+
/* ---------------------------------------------------------------------------------------------- */
|
|
178
|
+
/* Macros */
|
|
179
|
+
/* ---------------------------------------------------------------------------------------------- */
|
|
180
|
+
/**
|
|
181
|
+
* The lozenge colours, restated rather than imported.
|
|
182
|
+
*
|
|
183
|
+
* `@kernhq/ui` is a peer dependency and its editor half loads Tiptap and Svelte, neither of which
|
|
184
|
+
* belongs in a backend process — so this file imports **types** from it and nothing else, exactly as
|
|
185
|
+
* it already restates the callout tones and the table alignments. What keeps the two honest is
|
|
186
|
+
* `render.test.ts`, which is a test and may import at runtime: it compares this list against
|
|
187
|
+
* `STATUS_TONES` in the package, in both directions.
|
|
188
|
+
*/
|
|
189
|
+
export const STATUS_TONES = ['neutral', 'info', 'success', 'warning', 'danger'];
|
|
190
|
+
const DEFAULT_STATUS_TONE = 'neutral';
|
|
191
|
+
const statusTone = (value) => STATUS_TONES.includes(String(value)) ? String(value) : DEFAULT_STATUS_TONE;
|
|
192
|
+
/**
|
|
193
|
+
* The macro nodes that need an audience before they can draw anything.
|
|
194
|
+
*
|
|
195
|
+
* Exported for the same parity test: `PAGE_DOC_READING_MACROS` in `@kernhq/ui` is the writer's half
|
|
196
|
+
* of this list, and a sixth reading macro added there without a fail-closed case here is exactly the
|
|
197
|
+
* defect the whole arrangement exists to prevent.
|
|
198
|
+
*/
|
|
199
|
+
export const READING_MACROS = [
|
|
200
|
+
'contributors',
|
|
201
|
+
'excerptInclude',
|
|
202
|
+
'includePage',
|
|
203
|
+
/*
|
|
204
|
+
* The sixth. An object embed names an issue, a page or a channel by reference and holds no title,
|
|
205
|
+
* so what a reader may be told about it is a question rather than a stored answer — which is the
|
|
206
|
+
* definition of a reading macro and the reason it is drawn through `macroFrame` like the rest.
|
|
207
|
+
* `embed`, next door, is deliberately *not* one: it holds the unfurl of a public URL.
|
|
208
|
+
*/
|
|
209
|
+
'objectEmbed',
|
|
210
|
+
'pageChildren',
|
|
211
|
+
'recentlyUpdated',
|
|
212
|
+
];
|
|
213
|
+
/**
|
|
214
|
+
* The `data-macro` value each reading macro draws with, in one place.
|
|
215
|
+
*
|
|
216
|
+
* The node is named in the document's own vocabulary (`pageChildren`) and in the markup contract's
|
|
217
|
+
* (`children`), and both halves have to agree with `nodes/macros.ts` in `@kernhq/ui`. Written as a
|
|
218
|
+
* map the renderers read rather than as a literal in each case, because the second consumer of it
|
|
219
|
+
* is `hasReadingMacro` — and a marker list that had drifted from the renderers would make that
|
|
220
|
+
* function answer "no macros here" about a page that has one, which is a stored public render
|
|
221
|
+
* nobody re-resolves. `render.test.ts` holds the keys to `READING_MACROS`.
|
|
222
|
+
*/
|
|
223
|
+
export const READING_MACRO_KINDS = {
|
|
224
|
+
contributors: 'contributors',
|
|
225
|
+
excerptInclude: 'excerpt-include',
|
|
226
|
+
includePage: 'include-page',
|
|
227
|
+
objectEmbed: 'object',
|
|
228
|
+
pageChildren: 'children',
|
|
229
|
+
recentlyUpdated: 'recently-updated',
|
|
230
|
+
};
|
|
231
|
+
/**
|
|
232
|
+
* Does this rendered HTML contain a macro that had to be resolved against a reader?
|
|
233
|
+
*
|
|
234
|
+
* The cheap question the public read path asks before deciding whether to re-render a page. Stored
|
|
235
|
+
* publish-time HTML has reading macros as **empty frames** — resolving them at publish time would
|
|
236
|
+
* freeze a set of titles into a row and keep serving them after the pages were unpublished, which
|
|
237
|
+
* is precisely the leak this feature's rule exists to prevent. So the frames are drawn empty and
|
|
238
|
+
* filled per read, and this is how a read finds out whether it has to do that work at all.
|
|
239
|
+
*
|
|
240
|
+
* A string search rather than a parse: the alternative is decoding a Y.Doc on every public page
|
|
241
|
+
* view to discover that almost none of them have a macro.
|
|
242
|
+
*/
|
|
243
|
+
export const hasReadingMacro = (html) => Object.values(READING_MACRO_KINDS).some((kind) => html.includes(`data-macro="${kind}"`));
|
|
244
|
+
/** A boolean attribute out of a document, where `"true"` is what an HTML attribute carries. */
|
|
245
|
+
const macroFlag = (value) => value === true || value === 'true';
|
|
246
|
+
/**
|
|
247
|
+
* A page's icon, but only when the icon *is* the character.
|
|
248
|
+
*
|
|
249
|
+
* A page stores either an emoji or a Lucide icon name, and this renderer has no icon set — printing
|
|
250
|
+
* `book` in front of a title because somebody chose the book icon is worse than printing nothing.
|
|
251
|
+
* An emoji is outside ASCII, which is the whole test: the character carries itself. Counted by code
|
|
252
|
+
* rather than matched by a regex, for the reason `stripUrlNoise` above gives.
|
|
253
|
+
*/
|
|
254
|
+
function emojiIcon(icon) {
|
|
255
|
+
if (!icon)
|
|
256
|
+
return '';
|
|
257
|
+
let outsideAscii = false;
|
|
258
|
+
for (let i = 0; i < icon.length; i++)
|
|
259
|
+
if (icon.charCodeAt(i) > 127)
|
|
260
|
+
outsideAscii = true;
|
|
261
|
+
return outsideAscii ? `<span class="kern-macro-icon">${escapeHtml(icon)}</span>` : '';
|
|
262
|
+
}
|
|
263
|
+
/** One page in a macro's answer: a link where there is an address, plain text where there is not. */
|
|
264
|
+
function pageLink(page, strings) {
|
|
265
|
+
const body = `${emojiIcon(page.icon)}${escapeHtml(page.title || strings.untitled)}`;
|
|
266
|
+
const href = safeHref(page.href);
|
|
267
|
+
return href ? `<a href="${escapeHtml(href)}">${body}</a>` : `<span>${body}</span>`;
|
|
268
|
+
}
|
|
269
|
+
/** The same, introducing prose lifted from that page, so a reader can see where it came from. */
|
|
270
|
+
const pageSource = (page, strings) => `<span class="kern-macro-source">${pageLink(page, strings)}</span>`;
|
|
271
|
+
/**
|
|
272
|
+
* A tree of pages, as nested lists.
|
|
273
|
+
*
|
|
274
|
+
* Recursive because a children macro may go several levels down, and depth is meaningful — a flat
|
|
275
|
+
* list of everything under a page says nothing about which section a page is in. The recursion is
|
|
276
|
+
* bounded by the resolver, which builds the tree; this function walks whatever it was handed.
|
|
277
|
+
*/
|
|
278
|
+
function pageList(pages, strings) {
|
|
279
|
+
if (pages.length === 0)
|
|
280
|
+
return '';
|
|
281
|
+
const rows = pages
|
|
282
|
+
.map((page) => {
|
|
283
|
+
const excerpt = page.excerpt ? `<p class="kern-macro-excerpt">${escapeHtml(page.excerpt)}</p>` : '';
|
|
284
|
+
const updated = page.updated ? `<p class="kern-macro-meta">${escapeHtml(page.updated)}</p>` : '';
|
|
285
|
+
const nested = page.children?.length ? pageList(page.children, strings) : '';
|
|
286
|
+
return `<li>${pageLink(page, strings)}${excerpt}${updated}${nested}</li>`;
|
|
287
|
+
})
|
|
288
|
+
.join('');
|
|
289
|
+
return `<ul class="kern-macro-pages">${rows}</ul>`;
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* The frame every reading macro draws, and the one place the fail-closed rule is implemented.
|
|
293
|
+
*
|
|
294
|
+
* `options.macros` is consulted once; a null answer, a wrong-shaped answer and an empty answer are
|
|
295
|
+
* all the same thing to a reader and all draw the "nothing to show" line. That is what makes the
|
|
296
|
+
* absence of a resolver the *safe* state rather than a case somebody has to remember: there is no
|
|
297
|
+
* branch here that reads a database, so no caller can accidentally get one.
|
|
298
|
+
*/
|
|
299
|
+
function macroFrame(kind, node, options, draw) {
|
|
300
|
+
const strings = options.macroStrings ?? DEFAULT_MACRO_STRINGS;
|
|
301
|
+
const body = draw(options.macros?.(node) ?? null, strings);
|
|
302
|
+
const inner = body || `<p class="kern-macro-empty">${escapeHtml(strings.empty)}</p>`;
|
|
303
|
+
return `<div${idAttr(node)} class="kern-macro" data-macro="${escapeHtml(kind)}">${inner}</div>`;
|
|
304
|
+
}
|
|
305
|
+
/* ---------------------------------------------------------------------------------------------- */
|
|
306
|
+
/* Diagrams and embeds */
|
|
307
|
+
/* ---------------------------------------------------------------------------------------------- */
|
|
308
|
+
/**
|
|
309
|
+
* The narrowing the diagram and embed nodes apply, restated.
|
|
310
|
+
*
|
|
311
|
+
* Restated rather than imported for the reason the lozenge tones are: those functions live beside
|
|
312
|
+
* the Tiptap nodes, and this file must not load Tiptap. What keeps the two honest is the *ceilings*,
|
|
313
|
+
* which come out of `page-doc.ts` — the one file in `@kernhq/ui` that imports nothing — plus
|
|
314
|
+
* `render.test.ts`, which is a test and may import the extension at runtime to compare them.
|
|
315
|
+
*/
|
|
316
|
+
const diagramKind = (value) => PAGE_DIAGRAM_KINDS.includes(String(value))
|
|
317
|
+
? String(value)
|
|
318
|
+
: DEFAULT_PAGE_DIAGRAM_KIND;
|
|
319
|
+
const capped = (value, max) => (typeof value === 'string' ? value.slice(0, max) : '');
|
|
320
|
+
const trimmedTo = (value, max) => {
|
|
321
|
+
const text = typeof value === 'string' ? value.replace(/\s+/g, ' ').trim().slice(0, max) : '';
|
|
322
|
+
return text || null;
|
|
323
|
+
};
|
|
324
|
+
/**
|
|
325
|
+
* A source nobody could draw, shown rather than hidden.
|
|
326
|
+
*
|
|
327
|
+
* This is the rule the whole diagram feature turns on: **a diagram never renders as a blank block.**
|
|
328
|
+
* A writer whose Mermaid has a typo in it sees their own text and a sentence saying what went
|
|
329
|
+
* wrong; a reader sees the same, which is what makes the writer find out. The alternative — an empty
|
|
330
|
+
* figure — is a page that looks finished and is not, on a published site nobody re-reads.
|
|
331
|
+
*/
|
|
332
|
+
const diagramFallback = (message, source) => `<p class="kern-diagram-message">${escapeHtml(message)}</p>${source ? `<pre><code>${escapeHtml(source)}</code></pre>` : ''}`;
|
|
166
333
|
/** `<td>` and `<th>` differ only in the tag, so the attributes are written once. */
|
|
167
334
|
function cell(tag, node, children) {
|
|
168
335
|
const colspan = safeInt(node.attrs?.colspan, 1, 1000);
|
|
@@ -300,6 +467,171 @@ export const NODE_RENDERERS = {
|
|
|
300
467
|
return `<span class="kern-page-mention"${data}>${body}</span>`;
|
|
301
468
|
return `<a class="kern-page-mention" href="${escapeHtml(href)}"${data}>${body}</a>`;
|
|
302
469
|
},
|
|
470
|
+
/* -------------------------------------------------------------------------------------------- */
|
|
471
|
+
/* Diagrams */
|
|
472
|
+
/* -------------------------------------------------------------------------------------------- */
|
|
473
|
+
/**
|
|
474
|
+
* A diagram, drawn as far as this process honestly can — and never as nothing.
|
|
475
|
+
*
|
|
476
|
+
* Three kinds, three different answers, and the difference is not arbitrary:
|
|
477
|
+
*
|
|
478
|
+
* - **Mermaid is drawn.** `renderMermaid` is a real server-side render: it parses the source and
|
|
479
|
+
* emits an SVG, with no browser and no network, and it is the same function the editor's node
|
|
480
|
+
* view calls, so a writer sees what a reader will. A source it refuses shows the source and
|
|
481
|
+
* the reason.
|
|
482
|
+
* - **Excalidraw and Draw.io are shown, not drawn.** They are editors rather than notations, so
|
|
483
|
+
* the only faithful picture is the SVG their own editor exported — `svgFileId`, resolved
|
|
484
|
+
* through the same `fileSrc` a picture uses. With no saved picture the block falls back to the
|
|
485
|
+
* link the writer stored, and with neither it shows its source. It never renders empty.
|
|
486
|
+
*
|
|
487
|
+
* The SVG goes through unescaped, and it is the second string in this file that does. It is safe
|
|
488
|
+
* for the same kind of reason `includePage`'s HTML is: the only producer of it is `renderMermaid`,
|
|
489
|
+
* which escapes every character it takes from the source — asserted in its own tests, and asserted
|
|
490
|
+
* again here.
|
|
491
|
+
*/
|
|
492
|
+
diagram: (node, _children, options) => {
|
|
493
|
+
const strings = options.macroStrings ?? DEFAULT_MACRO_STRINGS;
|
|
494
|
+
const kind = diagramKind(node.attrs?.kind);
|
|
495
|
+
const source = capped(node.attrs?.source, PAGE_DIAGRAM_MAX_SOURCE);
|
|
496
|
+
const title = trimmedTo(node.attrs?.title, PAGE_DIAGRAM_MAX_TITLE);
|
|
497
|
+
const caption = title ? `<figcaption>${escapeHtml(title)}</figcaption>` : '';
|
|
498
|
+
const frame = (inner) => `<figure${idAttr(node)} class="kern-diagram" data-diagram="${escapeHtml(kind)}">${inner}${caption}</figure>`;
|
|
499
|
+
if (kind === 'mermaid') {
|
|
500
|
+
const drawn = renderMermaid(source);
|
|
501
|
+
if (drawn.ok)
|
|
502
|
+
return frame(drawn.svg);
|
|
503
|
+
const why = drawn.reason === 'empty'
|
|
504
|
+
? strings.diagramEmpty
|
|
505
|
+
: drawn.reason === 'unsupported'
|
|
506
|
+
? strings.diagramUnsupported
|
|
507
|
+
: strings.diagramBroken;
|
|
508
|
+
return frame(diagramFallback(why, source));
|
|
509
|
+
}
|
|
510
|
+
const fileId = typeof node.attrs?.svgFileId === 'string' ? node.attrs.svgFileId : null;
|
|
511
|
+
const picture = fileId ? safeHref(options.fileSrc?.(fileId) ?? null) : null;
|
|
512
|
+
if (picture)
|
|
513
|
+
return frame(`<img src="${escapeHtml(picture)}" alt="${escapeHtml(title ?? '')}" loading="lazy">`);
|
|
514
|
+
const href = safeHref(node.attrs?.href);
|
|
515
|
+
if (href)
|
|
516
|
+
return frame(`<p class="kern-diagram-message">${escapeHtml(strings.diagramNoPicture)}</p>` +
|
|
517
|
+
`<a class="kern-diagram-link" href="${escapeHtml(href)}" rel="noreferrer noopener" target="_blank">${escapeHtml(title ?? strings.diagramOpen)}</a>`);
|
|
518
|
+
return frame(diagramFallback(strings.diagramNoPicture, source));
|
|
519
|
+
},
|
|
520
|
+
/* -------------------------------------------------------------------------------------------- */
|
|
521
|
+
/* Embeds */
|
|
522
|
+
/* -------------------------------------------------------------------------------------------- */
|
|
523
|
+
/**
|
|
524
|
+
* A public URL and what it said about itself, drawn from the document alone.
|
|
525
|
+
*
|
|
526
|
+
* **Nothing here makes a request.** The unfurl happened once, in `services/unfurl.ts`, when a
|
|
527
|
+
* member inserted the block — so a page render, which happens on every read of every published
|
|
528
|
+
* page, is a pure function of what is stored. That is not only a performance argument: a renderer
|
|
529
|
+
* that fetched would be an SSRF reachable by anyone who can read a page, rather than by a member
|
|
530
|
+
* who can write one.
|
|
531
|
+
*
|
|
532
|
+
* There is no remote picture in the card on purpose. An `<img>` pointing at a third party tells
|
|
533
|
+
* that third party the address of everyone who reads the page, which is not a thing a wiki should
|
|
534
|
+
* arrange on its writers' behalf.
|
|
535
|
+
*/
|
|
536
|
+
embed: (node) => {
|
|
537
|
+
const strings = DEFAULT_MACRO_STRINGS;
|
|
538
|
+
const url = capped(node.attrs?.url, PAGE_EMBED_MAX_URL).trim();
|
|
539
|
+
const href = safeHref(url);
|
|
540
|
+
const title = trimmedTo(node.attrs?.title, PAGE_EMBED_MAX_TITLE) ?? (url || null);
|
|
541
|
+
const site = trimmedTo(node.attrs?.siteName, PAGE_EMBED_MAX_SITE);
|
|
542
|
+
const description = trimmedTo(node.attrs?.description, PAGE_EMBED_MAX_DESCRIPTION);
|
|
543
|
+
const label = `<span class="kern-embed-title">${escapeHtml(title ?? strings.untitled)}</span>`;
|
|
544
|
+
const where = site ? `<span class="kern-embed-site">${escapeHtml(site)}</span>` : '';
|
|
545
|
+
// No `<a>` at all rather than a dead one, exactly as a rejected link mark degrades.
|
|
546
|
+
const head = href
|
|
547
|
+
? `<a class="kern-embed-link" href="${escapeHtml(href)}" rel="noreferrer noopener" target="_blank">${label}${where}</a>`
|
|
548
|
+
: `${label}${where}`;
|
|
549
|
+
const body = description ? `<p class="kern-embed-description">${escapeHtml(description)}</p>` : '';
|
|
550
|
+
return `<div${idAttr(node)} class="kern-embed" data-embed="">${head}${body}</div>`;
|
|
551
|
+
},
|
|
552
|
+
/* -------------------------------------------------------------------------------------------- */
|
|
553
|
+
/* The eight macros */
|
|
554
|
+
/* -------------------------------------------------------------------------------------------- */
|
|
555
|
+
/*
|
|
556
|
+
* The three that resolve from the document, and are therefore safe on a page with no reader.
|
|
557
|
+
*
|
|
558
|
+
* An excerpt is a region of *this* page marked as quotable, so it draws its own prose — unless the
|
|
559
|
+
* writer hid it, which is the case for a page whose only job is to be quoted somewhere else.
|
|
560
|
+
* `data-hidden` rather than dropping the children here: the CSS hides it, so the same HTML serves
|
|
561
|
+
* a print stylesheet that may reasonably decide to show it.
|
|
562
|
+
*/
|
|
563
|
+
excerpt: (node, children) => `<div${idAttr(node)} class="kern-excerpt" data-macro="excerpt"${macroFlag(node.attrs?.hidden) ? ' data-hidden="true"' : ''}>${children}</div>`,
|
|
564
|
+
/*
|
|
565
|
+
* The expand, byte-for-byte the arrangement `nodes/macros.ts` renders — see the note there for why
|
|
566
|
+
* it and the toggle both exist. `open` is the writer's stored decision, which is the whole
|
|
567
|
+
* difference: a toggle's open state belongs to the reader and is not in the document.
|
|
568
|
+
*/
|
|
569
|
+
expand: (node, children) => `<details${idAttr(node)} class="kern-expand" data-macro="expand"${macroFlag(node.attrs?.open) ? ' open' : ''}>${children}</details>`,
|
|
570
|
+
/*
|
|
571
|
+
* The lozenge. Inline, and the only macro with nothing to resolve at all: the word and the colour
|
|
572
|
+
* are both in the document, which is why it is the one that works identically for a signed-in
|
|
573
|
+
* reader, a published site, a PDF and a Markdown file.
|
|
574
|
+
*/
|
|
575
|
+
statusLozenge: (node, children) => `<span class="kern-status" data-status="${statusTone(node.attrs?.tone)}">${children}</span>`,
|
|
576
|
+
/*
|
|
577
|
+
* The five that read other pages. Each draws `options.macros`' answer or an empty frame, and the
|
|
578
|
+
* empty frame is what a caller with no resolver gets — see `MacroResolver`.
|
|
579
|
+
*/
|
|
580
|
+
pageChildren: (node, _children, options) => macroFrame(READING_MACRO_KINDS.pageChildren, node, options, (content, strings) => content?.kind === 'pages' ? pageList(content.pages, strings) : ''),
|
|
581
|
+
recentlyUpdated: (node, _children, options) => macroFrame(READING_MACRO_KINDS.recentlyUpdated, node, options, (content, strings) => content?.kind === 'pages' ? pageList(content.pages, strings) : ''),
|
|
582
|
+
/*
|
|
583
|
+
* Another page's excerpt. The extract is plain text — `macros.ts` flattens it rather than lifting
|
|
584
|
+
* markup out of one document into another, where a half-open tag would be the reader's problem.
|
|
585
|
+
*/
|
|
586
|
+
excerptInclude: (node, _children, options) => macroFrame(READING_MACRO_KINDS.excerptInclude, node, options, (content, strings) => {
|
|
587
|
+
if (content?.kind !== 'page' || !content.page)
|
|
588
|
+
return '';
|
|
589
|
+
const text = content.page.excerpt ?? '';
|
|
590
|
+
if (!text)
|
|
591
|
+
return '';
|
|
592
|
+
const source = node.attrs?.showTitle === false ? '' : pageSource(content.page, strings);
|
|
593
|
+
return `${source}<p>${escapeHtml(text)}</p>`;
|
|
594
|
+
}),
|
|
595
|
+
/*
|
|
596
|
+
* Another page's whole body.
|
|
597
|
+
*
|
|
598
|
+
* `content.html` goes through unescaped and is the only string in this file that does. It is safe
|
|
599
|
+
* because `macros.ts` is the only thing that can produce it, and it produces it by calling this
|
|
600
|
+
* very function on the included page's stored document — so every character in it has already been
|
|
601
|
+
* escaped here. See the note on `MacroContent`.
|
|
602
|
+
*/
|
|
603
|
+
includePage: (node, _children, options) => macroFrame(READING_MACRO_KINDS.includePage, node, options, (content, strings) => {
|
|
604
|
+
if (content?.kind !== 'page' || !content.page || !content.html)
|
|
605
|
+
return '';
|
|
606
|
+
const source = node.attrs?.showTitle === false ? '' : pageSource(content.page, strings);
|
|
607
|
+
return `${source}${content.html}`;
|
|
608
|
+
}),
|
|
609
|
+
/**
|
|
610
|
+
* One of Kern's own objects, resolved against this reader or not drawn at all.
|
|
611
|
+
*
|
|
612
|
+
* The fail-closed frame is the whole reason this is a reading macro rather than an embed: the
|
|
613
|
+
* document holds `tracker:issue:<id>` and nothing else, so a renderer with no resolver has no
|
|
614
|
+
* title to leak and no way to get one. `services/objects.ts` is the only thing that answers it,
|
|
615
|
+
* through the module's own `resolvers`, and it answers nothing at all for a published site.
|
|
616
|
+
*/
|
|
617
|
+
objectEmbed: (node, _children, options) => macroFrame(READING_MACRO_KINDS.objectEmbed, node, options, (content, strings) => {
|
|
618
|
+
if (content?.kind !== 'object' || !content.object)
|
|
619
|
+
return '';
|
|
620
|
+
const object = content.object;
|
|
621
|
+
const body = `${emojiIcon(object.icon)}${escapeHtml(object.title || strings.untitled)}`;
|
|
622
|
+
const href = safeHref(object.href);
|
|
623
|
+
const named = href ? `<a href="${escapeHtml(href)}">${body}</a>` : `<span>${body}</span>`;
|
|
624
|
+
const subtitle = object.subtitle
|
|
625
|
+
? `<span class="kern-object-subtitle">${escapeHtml(object.subtitle)}</span>`
|
|
626
|
+
: '';
|
|
627
|
+
return `<span class="kern-object"><span class="kern-object-kind">${escapeHtml(object.label)}</span>${named}${subtitle}</span>`;
|
|
628
|
+
}),
|
|
629
|
+
contributors: (node, _children, options) => macroFrame(READING_MACRO_KINDS.contributors, node, options, (content) => {
|
|
630
|
+
if (content?.kind !== 'people' || content.people.length === 0)
|
|
631
|
+
return '';
|
|
632
|
+
const names = content.people.map((p) => `<li>${escapeHtml(p.name)}</li>`).join('');
|
|
633
|
+
return `<ul class="kern-macro-pages">${names}</ul>`;
|
|
634
|
+
}),
|
|
303
635
|
};
|
|
304
636
|
function renderNode(node, options) {
|
|
305
637
|
if (node.type === 'text')
|
|
@@ -336,6 +668,14 @@ export function referencesIn(doc) {
|
|
|
336
668
|
const walk = (node) => {
|
|
337
669
|
if (node.type === 'image' && typeof node.attrs?.fileId === 'string')
|
|
338
670
|
fileIds.add(node.attrs.fileId);
|
|
671
|
+
/*
|
|
672
|
+
* A diagram this process cannot draw is shown as the SVG its own editor exported, which is an
|
|
673
|
+
* ordinary stored file — so it is collected here beside the pictures. Missing it would not have
|
|
674
|
+
* failed anything: the render would simply have fallen through to the link, on every Excalidraw
|
|
675
|
+
* drawing in the workspace, silently.
|
|
676
|
+
*/
|
|
677
|
+
if (node.type === 'diagram' && typeof node.attrs?.svgFileId === 'string')
|
|
678
|
+
fileIds.add(node.attrs.svgFileId);
|
|
339
679
|
if (node.type === 'pageMention' && typeof node.attrs?.id === 'string')
|
|
340
680
|
pageIds.add(node.attrs.id);
|
|
341
681
|
for (const child of node.content ?? [])
|
|
@@ -345,6 +685,51 @@ export function referencesIn(doc) {
|
|
|
345
685
|
walk(node);
|
|
346
686
|
return { fileIds: [...fileIds], pageIds: [...pageIds] };
|
|
347
687
|
}
|
|
688
|
+
/**
|
|
689
|
+
* A macro instance, named by what it asks for rather than by where it sits.
|
|
690
|
+
*
|
|
691
|
+
* Two identical macros on one page are one question and get one answer, which is what makes the key
|
|
692
|
+
* the *attributes* rather than the node's `id` — and means the resolver works on a document written
|
|
693
|
+
* by an importer that never stamped ids. `id` is excluded deliberately: including it would ask the
|
|
694
|
+
* database the same question twice for two blocks that must draw the same thing.
|
|
695
|
+
*
|
|
696
|
+
* The keys are sorted, because `JSON.stringify` preserves insertion order and two clients writing
|
|
697
|
+
* the same attributes in a different order would otherwise be two questions.
|
|
698
|
+
*/
|
|
699
|
+
export function macroKey(node) {
|
|
700
|
+
const attrs = node.attrs ?? {};
|
|
701
|
+
const parts = Object.keys(attrs)
|
|
702
|
+
.filter((name) => name !== 'id')
|
|
703
|
+
.sort()
|
|
704
|
+
.map((name) => `${name}=${JSON.stringify(attrs[name] ?? null)}`);
|
|
705
|
+
return `${node.type ?? ''}(${parts.join(',')})`;
|
|
706
|
+
}
|
|
707
|
+
/**
|
|
708
|
+
* Every reading macro in a document, de-duplicated — the `referencesIn` of the macro half.
|
|
709
|
+
*
|
|
710
|
+
* A caller resolves these against one audience in one pass and hands back a `MacroResolver`. The
|
|
711
|
+
* three macros that resolve from the document itself are not here: they need nothing looked up, so
|
|
712
|
+
* collecting them would only invite a caller to ask a database about a status lozenge.
|
|
713
|
+
*/
|
|
714
|
+
export function macrosIn(doc) {
|
|
715
|
+
const reading = new Set(READING_MACROS);
|
|
716
|
+
const seen = new Set();
|
|
717
|
+
const found = [];
|
|
718
|
+
const walk = (node) => {
|
|
719
|
+
if (typeof node.type === 'string' && reading.has(node.type)) {
|
|
720
|
+
const key = macroKey(node);
|
|
721
|
+
if (!seen.has(key)) {
|
|
722
|
+
seen.add(key);
|
|
723
|
+
found.push(node);
|
|
724
|
+
}
|
|
725
|
+
}
|
|
726
|
+
for (const child of node.content ?? [])
|
|
727
|
+
walk(child);
|
|
728
|
+
};
|
|
729
|
+
for (const node of doc?.content ?? [])
|
|
730
|
+
walk(node);
|
|
731
|
+
return found;
|
|
732
|
+
}
|
|
348
733
|
/** Nodes whose children are separate blocks, so their text needs a line between each. */
|
|
349
734
|
const BLOCK_PARENTS = new Set([
|
|
350
735
|
'blockquote',
|
|
@@ -353,6 +738,8 @@ const BLOCK_PARENTS = new Set([
|
|
|
353
738
|
'details',
|
|
354
739
|
'detailsContent',
|
|
355
740
|
'doc',
|
|
741
|
+
'excerpt',
|
|
742
|
+
'expand',
|
|
356
743
|
'listItem',
|
|
357
744
|
'orderedList',
|
|
358
745
|
'table',
|
|
@@ -369,6 +756,12 @@ const TEXT_LIMIT = 100_000;
|
|
|
369
756
|
* *as markup* — so a page containing one link put
|
|
370
757
|
* `<link class="null" href="…" rel="noreferrer noopener" target="_blank">` into the search body,
|
|
371
758
|
* and every page in the workspace matched a search for "noopener".
|
|
759
|
+
*
|
|
760
|
+
* **A macro contributes nothing.** The five that read other pages are atoms with no content, so they
|
|
761
|
+
* fall out of this walk on their own — and that is the behaviour to keep rather than an omission to
|
|
762
|
+
* fix. What a children macro would contribute is other pages' titles, resolved against nobody, into
|
|
763
|
+
* a search index that is read by everybody: the same leak the render rule exists to prevent, one
|
|
764
|
+
* layer further from where anybody would look for it.
|
|
372
765
|
*/
|
|
373
766
|
export function textFromPageDoc(doc) {
|
|
374
767
|
if (!doc || !Array.isArray(doc.content))
|
|
@@ -387,6 +780,26 @@ export function textFromPageDoc(doc) {
|
|
|
387
780
|
// A picture contributes its alt text, the only part of it anybody can search for.
|
|
388
781
|
case 'image':
|
|
389
782
|
return typeof node.attrs?.alt === 'string' ? node.attrs.alt : '';
|
|
783
|
+
/*
|
|
784
|
+
* A diagram contributes its **name and not its source**. A Mermaid source is `A-->B` and an
|
|
785
|
+
* Excalidraw scene is a megabyte of JSON with a font name in it — putting either in the search
|
|
786
|
+
* body would make every diagram in the workspace match a search for `flowchart`, which is the
|
|
787
|
+
* same defect as the `noopener` one this function was written to fix.
|
|
788
|
+
*/
|
|
789
|
+
case 'diagram':
|
|
790
|
+
return trimmedTo(node.attrs?.title, PAGE_DIAGRAM_MAX_TITLE) ?? '';
|
|
791
|
+
/*
|
|
792
|
+
* An embed contributes what a person reads on the card: the headline and the sentence under
|
|
793
|
+
* it. Not the URL — a search body full of addresses matches on `https` and on every hostname
|
|
794
|
+
* anybody has ever linked to.
|
|
795
|
+
*/
|
|
796
|
+
case 'embed':
|
|
797
|
+
return [
|
|
798
|
+
trimmedTo(node.attrs?.title, PAGE_EMBED_MAX_TITLE),
|
|
799
|
+
trimmedTo(node.attrs?.description, PAGE_EMBED_MAX_DESCRIPTION),
|
|
800
|
+
]
|
|
801
|
+
.filter(Boolean)
|
|
802
|
+
.join('\n');
|
|
390
803
|
// Cells are joined with a tab, or two columns run together into one nonsense word.
|
|
391
804
|
case 'tableRow':
|
|
392
805
|
return (node.content ?? []).map(walk).join('\t');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/server/render.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/server/render.ts"],"names":[],"mappings":"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"}
|