@wizzlethorpe/vaults 0.9.3 → 0.9.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/build.js +29 -8
- package/dist/build.js.map +1 -1
- package/dist/foundry-importer.bundle.js +1270 -0
- package/dist/foundry-importer.js +14 -44
- package/dist/foundry-importer.js.map +1 -1
- package/dist/render/layout.js +94 -30
- package/dist/render/layout.js.map +1 -1
- package/dist/render/styles.js +18 -1
- package/dist/render/styles.js.map +1 -1
- package/dist/settings.js +5 -0
- package/dist/settings.js.map +1 -1
- package/package.json +2 -2
package/dist/foundry-importer.js
CHANGED
|
@@ -1,50 +1,19 @@
|
|
|
1
|
-
// Build helper:
|
|
2
|
-
//
|
|
3
|
-
//
|
|
1
|
+
// Build helper: the Foundry-side importer is pre-bundled at CLI build time
|
|
2
|
+
// (see scripts/bundle-importer.mjs) into `dist/foundry-importer.bundle.js`,
|
|
3
|
+
// which ships inside the npm package. At deploy time we copy that bundle to
|
|
4
|
+
// `_foundry/importer.js` and emit a `_foundry/version.json` sidecar carrying
|
|
5
|
+
// `{ version, sha256 }` so the Foundry host can detect skew before evaluating.
|
|
4
6
|
//
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
// so the host can detect skew before evaluating.
|
|
9
|
-
import { build } from "esbuild";
|
|
7
|
+
// Bundling ahead of publish (not here) means the installed CLI never runs
|
|
8
|
+
// esbuild on the user's machine and doesn't need the foundry/ source tree,
|
|
9
|
+
// which isn't part of the npm package.
|
|
10
10
|
import { createHash } from "node:crypto";
|
|
11
|
-
import { mkdir, writeFile } from "node:fs/promises";
|
|
12
|
-
import { dirname, join
|
|
11
|
+
import { mkdir, readFile, writeFile } from "node:fs/promises";
|
|
12
|
+
import { dirname, join } from "node:path";
|
|
13
13
|
import { fileURLToPath } from "node:url";
|
|
14
14
|
import { CLI_VERSION } from "./version.js";
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
* but runs against the monorepo checkout during dev / `vaults build` —
|
|
18
|
-
* walk up from this file until we find the foundry/ sibling. */
|
|
19
|
-
function resolveEntry() {
|
|
20
|
-
const here = dirname(fileURLToPath(import.meta.url));
|
|
21
|
-
// dev: cli/src/ → cli → vaults/ → vaults/foundry/scripts/importer-entry.mjs
|
|
22
|
-
// installed: dist/ → cli → vaults/ → vaults/foundry/scripts/importer-entry.mjs (same)
|
|
23
|
-
return resolve(here, "..", "..", ENTRY_RELATIVE_TO_REPO);
|
|
24
|
-
}
|
|
25
|
-
async function bundleImporter() {
|
|
26
|
-
const entry = resolveEntry();
|
|
27
|
-
const result = await build({
|
|
28
|
-
entryPoints: [entry],
|
|
29
|
-
bundle: true,
|
|
30
|
-
format: "esm",
|
|
31
|
-
platform: "browser",
|
|
32
|
-
target: "es2022",
|
|
33
|
-
write: false,
|
|
34
|
-
// Foundry globals are present at runtime; esbuild treats them as
|
|
35
|
-
// externals automatically because they're not imported. No need to
|
|
36
|
-
// mark anything as external explicitly.
|
|
37
|
-
minify: false,
|
|
38
|
-
sourcemap: false,
|
|
39
|
-
legalComments: "none",
|
|
40
|
-
});
|
|
41
|
-
if (result.outputFiles.length !== 1) {
|
|
42
|
-
throw new Error(`expected 1 bundle output, got ${result.outputFiles.length}`);
|
|
43
|
-
}
|
|
44
|
-
const source = result.outputFiles[0].text;
|
|
45
|
-
const sha256 = createHash("sha256").update(source).digest("hex");
|
|
46
|
-
return { source, sha256 };
|
|
47
|
-
}
|
|
15
|
+
// Sibling of this compiled file in dist/, produced by scripts/bundle-importer.mjs.
|
|
16
|
+
const BUNDLE_PATH = join(dirname(fileURLToPath(import.meta.url)), "foundry-importer.bundle.js");
|
|
48
17
|
/**
|
|
49
18
|
* Write `_foundry/importer.js` + `_foundry/version.json` into the deploy.
|
|
50
19
|
* Called from build.ts after the variant outputs are in place — the
|
|
@@ -52,7 +21,8 @@ async function bundleImporter() {
|
|
|
52
21
|
* no role-gated content.
|
|
53
22
|
*/
|
|
54
23
|
export async function writeFoundryImporter(outputDir) {
|
|
55
|
-
const
|
|
24
|
+
const source = await readFile(BUNDLE_PATH, "utf8");
|
|
25
|
+
const sha256 = createHash("sha256").update(source).digest("hex");
|
|
56
26
|
const dir = join(outputDir, "_foundry");
|
|
57
27
|
await mkdir(dir, { recursive: true });
|
|
58
28
|
await writeFile(join(dir, "importer.js"), source);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"foundry-importer.js","sourceRoot":"","sources":["../src/foundry-importer.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"foundry-importer.js","sourceRoot":"","sources":["../src/foundry-importer.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,4EAA4E;AAC5E,4EAA4E;AAC5E,6EAA6E;AAC7E,+EAA+E;AAC/E,EAAE;AACF,0EAA0E;AAC1E,2EAA2E;AAC3E,uCAAuC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,mFAAmF;AACnF,MAAM,WAAW,GAAG,IAAI,CACtB,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EACvC,4BAA4B,CAC7B,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,SAAiB;IAC1D,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjE,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACxC,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC;IAClD,MAAM,SAAS,CACb,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EACzB,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAC1D,CAAC;AACJ,CAAC"}
|
package/dist/render/layout.js
CHANGED
|
@@ -26,9 +26,9 @@ export function renderLayout(input) {
|
|
|
26
26
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
27
27
|
<title>${esc(input.title)} | ${esc(input.vaultName)}</title>
|
|
28
28
|
<link rel="icon" href="/favicon.ico">
|
|
29
|
-
<link rel="stylesheet" href="/styles.css">
|
|
30
|
-
<link rel="stylesheet" href="/user.css">
|
|
31
|
-
${input.hasHandlerCss ? `<link rel="stylesheet" href="/_handlers.css">` : ""}${input.hasHandlerJs ? `\n<script src="/_handlers.js" defer></script>` : ""}
|
|
29
|
+
<link rel="stylesheet" href="/styles.css?v=${attr(input.assetVersion)}">
|
|
30
|
+
<link rel="stylesheet" href="/user.css?v=${attr(input.assetVersion)}">
|
|
31
|
+
${input.hasHandlerCss ? `<link rel="stylesheet" href="/_handlers.css?v=${attr(input.assetVersion)}">` : ""}${input.hasHandlerJs ? `\n<script src="/_handlers.js?v=${attr(input.assetVersion)}" defer></script>` : ""}
|
|
32
32
|
${renderSocialMeta(input)}
|
|
33
33
|
${THEME_BOOT_SCRIPT}
|
|
34
34
|
</head>
|
|
@@ -66,7 +66,7 @@ ${THEME_BOOT_SCRIPT}
|
|
|
66
66
|
</aside>
|
|
67
67
|
</div>
|
|
68
68
|
${EXPLORER_INIT_SCRIPT}
|
|
69
|
-
${
|
|
69
|
+
${input.previewMode === "none" ? "" : hoverPreviewScript(input.previewMode === "sticky")}
|
|
70
70
|
${TOC_SCRIPT}
|
|
71
71
|
${SEARCH_SCRIPT}
|
|
72
72
|
${LIGHTBOX_SCRIPT}
|
|
@@ -173,8 +173,11 @@ function renderBreadcrumbs(pagePath, vaultName) {
|
|
|
173
173
|
if (pagePath === "__404__.md")
|
|
174
174
|
return "";
|
|
175
175
|
const parts = pagePath.replace(/\.md$/i, "").split("/");
|
|
176
|
-
|
|
177
|
-
|
|
176
|
+
// Root homepage: no path to crumb, but show the vault name so the strip
|
|
177
|
+
// isn't blank. Reads "Forgotten Folk /" to match the path style below.
|
|
178
|
+
if (parts.length === 1 && parts[0] === "index") {
|
|
179
|
+
return `<nav class="crumbs"><span>${esc(vaultName)}</span> <span class="crumb-sep">/</span></nav>`;
|
|
180
|
+
}
|
|
178
181
|
// Folder homepages end in /index; drop that trailing segment so the crumbs
|
|
179
182
|
// read "Vault › DM Notes" instead of "Vault › DM Notes › index".
|
|
180
183
|
if (parts.length > 1 && parts[parts.length - 1] === "index")
|
|
@@ -259,14 +262,18 @@ const EXPLORER_INIT_SCRIPT = `<script>
|
|
|
259
262
|
if (explorer) explorer.open = true;
|
|
260
263
|
})();
|
|
261
264
|
</script>`;
|
|
262
|
-
|
|
265
|
+
function hoverPreviewScript(sticky) {
|
|
266
|
+
return `<script>
|
|
263
267
|
(function () {
|
|
264
|
-
//
|
|
265
|
-
//
|
|
266
|
-
//
|
|
267
|
-
|
|
268
|
+
// Hovering an internal link shows a transient preview (pointer devices only)
|
|
269
|
+
// that fades when you move away. When PIN is on, clicking pins the preview
|
|
270
|
+
// open instead of navigating (the "Go to page" footer is then the way
|
|
271
|
+
// through, and it stays until you click elsewhere or press Escape); when off,
|
|
272
|
+
// clicks navigate normally and the preview is hover-only.
|
|
273
|
+
const PIN = ${sticky};
|
|
274
|
+
const HOVERABLE = window.matchMedia('(hover: hover)').matches;
|
|
268
275
|
const cache = new Map();
|
|
269
|
-
let popover = null, showTimer = null, hideTimer = null, activeLink = null;
|
|
276
|
+
let popover = null, showTimer = null, hideTimer = null, activeLink = null, pinned = false;
|
|
270
277
|
const HOVER_DELAY = 220, HIDE_DELAY = 180;
|
|
271
278
|
|
|
272
279
|
function ensurePopover() {
|
|
@@ -274,7 +281,10 @@ const HOVER_PREVIEW_SCRIPT = `<script>
|
|
|
274
281
|
popover = document.createElement('div');
|
|
275
282
|
popover.className = 'wiki-preview';
|
|
276
283
|
popover.addEventListener('mouseenter', () => { if (hideTimer) { clearTimeout(hideTimer); hideTimer = null; } });
|
|
277
|
-
popover.addEventListener('mouseleave', schedHide);
|
|
284
|
+
popover.addEventListener('mouseleave', () => { if (!pinned) schedHide(); });
|
|
285
|
+
popover.addEventListener('click', (e) => {
|
|
286
|
+
if (e.target instanceof Element && e.target.closest('.wiki-preview-close')) hide();
|
|
287
|
+
});
|
|
278
288
|
document.body.appendChild(popover);
|
|
279
289
|
return popover;
|
|
280
290
|
}
|
|
@@ -282,26 +292,43 @@ const HOVER_PREVIEW_SCRIPT = `<script>
|
|
|
282
292
|
const rect = link.getBoundingClientRect();
|
|
283
293
|
pop.style.visibility = 'hidden'; pop.style.display = 'block';
|
|
284
294
|
const popRect = pop.getBoundingClientRect();
|
|
285
|
-
const m = 8;
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
295
|
+
const m = 8, vh = window.innerHeight, vw = window.innerWidth;
|
|
296
|
+
// Prefer below; flip above only if it actually fits there; otherwise pin to
|
|
297
|
+
// whichever side has more room. Clamp into the viewport so a tall popover
|
|
298
|
+
// (CSS caps the height) never spills off the top or bottom.
|
|
299
|
+
let top;
|
|
300
|
+
if (rect.bottom + popRect.height + m <= vh) top = rect.bottom + m;
|
|
301
|
+
else if (rect.top - popRect.height - m >= 0) top = rect.top - popRect.height - m;
|
|
302
|
+
else top = (vh - rect.bottom >= rect.top) ? rect.bottom + m : m;
|
|
303
|
+
if (top + popRect.height + m > vh) top = vh - popRect.height - m;
|
|
304
|
+
if (top < m) top = m;
|
|
305
|
+
let left = rect.left;
|
|
306
|
+
if (left + popRect.width + m > vw) left = vw - popRect.width - m;
|
|
290
307
|
if (left < m) left = m;
|
|
291
|
-
pop.style.top = top +
|
|
308
|
+
pop.style.top = (top + window.scrollY) + 'px';
|
|
309
|
+
pop.style.left = (left + window.scrollX) + 'px';
|
|
292
310
|
pop.style.visibility = 'visible';
|
|
293
311
|
}
|
|
294
312
|
function esc(s) { return String(s).replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>').replace(/"/g,'"'); }
|
|
295
|
-
function render(data, anchor) {
|
|
313
|
+
function render(data, anchor, href) {
|
|
296
314
|
// .summary is already sanitised HTML at build time; safe to inject.
|
|
297
315
|
const section = anchor && data.headings && data.headings[anchor];
|
|
316
|
+
// Close button is always in the markup but only shown when pinned (CSS,
|
|
317
|
+
// keyed off .is-pinned); transient hover previews don't need it.
|
|
318
|
+
let html = '<button class="wiki-preview-close" type="button" aria-label="Close preview">×</button>';
|
|
298
319
|
if (section) {
|
|
299
|
-
|
|
320
|
+
html += '<div class="wiki-preview-title">' + esc(data.title) + '</div>' +
|
|
300
321
|
'<div class="wiki-preview-subheading">› ' + esc(section.title) + '</div>' +
|
|
301
322
|
'<div class="wiki-preview-body">' + (section.summary || '') + '</div>';
|
|
323
|
+
} else {
|
|
324
|
+
html += '<div class="wiki-preview-title">' + esc(data.title) + '</div>' +
|
|
325
|
+
'<div class="wiki-preview-body">' + (data.summary || '') + '</div>';
|
|
302
326
|
}
|
|
303
|
-
|
|
304
|
-
|
|
327
|
+
// Footer and close button are always in the markup but only shown on a
|
|
328
|
+
// pinned popover (CSS, keyed off .is-pinned); a transient hover preview
|
|
329
|
+
// shows neither.
|
|
330
|
+
html += '<a class="wiki-preview-goto" href="' + esc(href) + '">Go to page →</a>';
|
|
331
|
+
return html;
|
|
305
332
|
}
|
|
306
333
|
async function fetchPreview(href) {
|
|
307
334
|
if (cache.has(href)) return cache.get(href);
|
|
@@ -324,32 +351,69 @@ const HOVER_PREVIEW_SCRIPT = `<script>
|
|
|
324
351
|
if (href.endsWith('.json') || href.endsWith('.css')) return false;
|
|
325
352
|
return true;
|
|
326
353
|
}
|
|
327
|
-
function
|
|
354
|
+
function hide() { if (popover) popover.style.display = 'none'; activeLink = null; pinned = false; }
|
|
355
|
+
function schedHide() { hideTimer = window.setTimeout(() => { if (!pinned) hide(); }, HIDE_DELAY); }
|
|
356
|
+
function anchorOf(href) { const i = href.indexOf('#'); return i === -1 ? '' : href.slice(i + 1); }
|
|
357
|
+
|
|
358
|
+
// Sticky mode: clicking an internal link pins the preview open (on every
|
|
359
|
+
// device) instead of navigating; the "Go to page" footer does that. Off:
|
|
360
|
+
// no click handling, links navigate normally.
|
|
361
|
+
if (PIN) {
|
|
362
|
+
document.addEventListener('click', async (e) => {
|
|
363
|
+
const t = e.target;
|
|
364
|
+
// Clicks inside the popover (notably "Go to page") follow their own link.
|
|
365
|
+
if (popover && t instanceof Node && popover.contains(t)) return;
|
|
366
|
+
const link = t instanceof Element ? t.closest('a') : null;
|
|
367
|
+
if (link && isInternal(link)) {
|
|
368
|
+
// Let the browser handle new-tab / new-window modifier clicks.
|
|
369
|
+
if (e.metaKey || e.ctrlKey || e.shiftKey || e.altKey || e.button !== 0) return;
|
|
370
|
+
e.preventDefault();
|
|
371
|
+
if (showTimer) { clearTimeout(showTimer); showTimer = null; }
|
|
372
|
+
if (hideTimer) { clearTimeout(hideTimer); hideTimer = null; }
|
|
373
|
+
activeLink = link;
|
|
374
|
+
const href = link.getAttribute('href');
|
|
375
|
+
const data = await fetchPreview(href);
|
|
376
|
+
if (activeLink !== link) return;
|
|
377
|
+
if (!data) { window.location.href = href; return; } // no preview, just go
|
|
378
|
+
pinned = true;
|
|
379
|
+
const pop = ensurePopover();
|
|
380
|
+
pop.classList.add('is-pinned');
|
|
381
|
+
pop.innerHTML = render(data, anchorOf(href), href);
|
|
382
|
+
position(pop, link);
|
|
383
|
+
return;
|
|
384
|
+
}
|
|
385
|
+
hide(); // click anywhere else dismisses a pinned preview
|
|
386
|
+
});
|
|
387
|
+
document.addEventListener('keydown', (e) => { if (e.key === 'Escape') hide(); });
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
if (!HOVERABLE) return; // hover previews are a pointer-device enhancement
|
|
391
|
+
|
|
328
392
|
document.addEventListener('mouseover', (e) => {
|
|
329
393
|
const link = e.target;
|
|
330
|
-
if (!isInternal(link)) return;
|
|
394
|
+
if (!isInternal(link) || pinned) return;
|
|
331
395
|
if (link === activeLink) { if (hideTimer) { clearTimeout(hideTimer); hideTimer = null; } return; }
|
|
332
396
|
activeLink = link;
|
|
333
397
|
if (showTimer) clearTimeout(showTimer);
|
|
334
398
|
if (hideTimer) { clearTimeout(hideTimer); hideTimer = null; }
|
|
335
399
|
showTimer = window.setTimeout(async () => {
|
|
336
400
|
const href = link.getAttribute('href');
|
|
337
|
-
const hashIdx = href.indexOf('#');
|
|
338
|
-
const anchor = hashIdx === -1 ? '' : href.slice(hashIdx + 1);
|
|
339
401
|
const data = await fetchPreview(href);
|
|
340
|
-
if (!data || activeLink !== link) return;
|
|
402
|
+
if (!data || activeLink !== link || pinned) return;
|
|
341
403
|
const pop = ensurePopover();
|
|
342
|
-
pop.
|
|
404
|
+
pop.classList.remove('is-pinned');
|
|
405
|
+
pop.innerHTML = render(data, anchorOf(href), href);
|
|
343
406
|
position(pop, link);
|
|
344
407
|
}, HOVER_DELAY);
|
|
345
408
|
});
|
|
346
409
|
document.addEventListener('mouseout', (e) => {
|
|
347
|
-
if (!isInternal(e.target)) return;
|
|
410
|
+
if (!isInternal(e.target) || pinned) return;
|
|
348
411
|
if (showTimer) { clearTimeout(showTimer); showTimer = null; }
|
|
349
412
|
schedHide();
|
|
350
413
|
});
|
|
351
414
|
})();
|
|
352
415
|
</script>`;
|
|
416
|
+
}
|
|
353
417
|
const TOC_SCRIPT = `<script>
|
|
354
418
|
(function () {
|
|
355
419
|
const headings = Array.from(document.querySelectorAll('article h2, article h3, article h4'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/render/layout.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,IAAI,GAAG,EAAE,QAAQ,IAAI,IAAI,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/render/layout.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,IAAI,GAAG,EAAE,QAAQ,IAAI,IAAI,EAAE,MAAM,cAAc,CAAC;AA0CnE;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,KAAyE;IACjG,MAAM,IAAI,GAAG;4CAC6B,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,iBAAiB,CAAC;IAChF,OAAO,YAAY,CAAC;QAClB,GAAG,KAAK;QACR,KAAK,EAAE,gBAAgB;QACvB,sEAAsE;QACtE,QAAQ,EAAE,YAAY;QACtB,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE,EAAE;KACd,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAkB;IAC7C,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAE3D,OAAO;8BACqB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;;;;SAItC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;;6CAEN,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;2CAC1B,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;EACjE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,iDAAiD,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,kCAAkC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE;EAClN,gBAAgB,CAAC,KAAK,CAAC;EACvB,iBAAiB;;OAEZ,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,gCAAgC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;;;gCAG3H,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;;;;;;;;;;MAU9C,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,8CAA8C,CAAC,CAAC,CAAC,EAAE;MAC1E,OAAO;;;;QAIL,gBAAgB,CAAC,WAAW,EAAE,KAAK,CAAC,eAAe,CAAC;QACpD,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACvD,KAAK,CAAC,QAAQ;QACd,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;;MAE1C,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,+BAA+B,KAAK,CAAC,UAAU,WAAW,CAAC,CAAC,CAAC,EAAE;;;;;;;MAOlF,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC;;;EAGpC,oBAAoB;EACpB,KAAK,CAAC,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC;EACtF,UAAU;EACV,aAAa;EACb,eAAe;EACf,WAAW;EACX,mBAAmB;EACnB,YAAY;EACZ,kBAAkB;;QAEZ,CAAC;AACT,CAAC;AAED,SAAS,eAAe,CAAC,SAAqB;IAC5C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACtC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAChC,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7F,OAAO,gBAAgB,IAAI,CAAC,IAAI,CAAC,oCAAoC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;IAC/F,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,OAAO,oDAAoD,KAAK,iBAAiB,CAAC;AACpF,CAAC;AAED;;;;;;GAMG;AACH,SAAS,gBAAgB,CACvB,eAAuB,EACvB,eAAmC;IAEnC,MAAM,WAAW,GAAG,2BAA2B,CAAC,eAAe,CAAC,CAAC;IACjE,IAAI,CAAC,eAAe,IAAI,CAAC,WAAW;QAAE,OAAO,EAAE,CAAC;IAChD,MAAM,UAAU,GAAG,WAAW;QAC5B,CAAC,CAAC,kCAAkC,WAAW,QAAQ;QACvD,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,4BAA4B,eAAe,GAAG,UAAU,QAAQ,CAAC;AAC1E,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,2BAA2B,CAAC,IAAwB;IAC3D,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,OAAO;;;;;;;;;;;;;;;4CAemC,GAAG,CAAC,IAAI,CAAC;cACvC,CAAC;AACf,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAkB;IAC1C,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,MAAM,SAAS,GAAG,GAAG,KAAK,CAAC,KAAK,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC;IACxD,IAAI,CAAC,IAAI,CAAC,sCAAsC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACrE,IAAI,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;IACzD,IAAI,CAAC,IAAI,CAAC,0CAA0C,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/E,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,sCAAsC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC5E,IAAI,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,CAAC,uCAAuC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/E,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,UAAU,CAAC,KAAyB,EAAE,SAA6B;IAC1E,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,CAAC;IACpC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,SAAS,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;QAC9D,6EAA6E;QAC7E,KAAK,CAAC,IAAI,CAAC,iCAAiC,OAAO,CAAC,SAAS,CAAC,KAAK,UAAU,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAC5G,CAAC;IACD,IAAI,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,iCAAiC,OAAO,CAAC,KAAK,CAAC,KAAK,UAAU,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC7G,OAAO,0BAA0B,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,QAAQ,CAAC;AAC3F,CAAC;AAED,SAAS,OAAO,CAAC,IAAY;IAC3B,OAAO,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;AAC7C,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IAChC,OAAO,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;AAC5F,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAgB,EAAE,SAAiB;IAC5D,+DAA+D;IAC/D,IAAI,QAAQ,KAAK,YAAY;QAAE,OAAO,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxD,wEAAwE;IACxE,uEAAuE;IACvE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;QAC/C,OAAO,6BAA6B,GAAG,CAAC,SAAS,CAAC,gDAAgD,CAAC;IACrG,CAAC;IACD,2EAA2E;IAC3E,iEAAiE;IACjE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,OAAO;QAAE,KAAK,CAAC,GAAG,EAAE,CAAC;IACzE,MAAM,MAAM,GAAG,CAAC,eAAe,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACrD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QACxB,MAAM,MAAM,GAAG,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACtC,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3E,MAAM,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,uBAAuB,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,QAAQ,CAAC;AAC1F,CAAC;AAQD,SAAS,aAAa,CAAC,KAAiB,EAAE,WAAmB;IAC3D,MAAM,IAAI,GAAe,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;IACxE,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,uEAAuE;QACvE,4EAA4E;QAC5E,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;YAAE,SAAS;QACpE,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;YACzB,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACxC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,KAAK,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;gBAC3D,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACrC,CAAC;YACD,IAAI,GAAG,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IAED,sEAAsE;IACtE,kEAAkE;IAClE,iEAAiE;IACjE,OAAO,0GAA0G,UAAU,CAAC,IAAI,EAAE,EAAE,EAAE,WAAW,CAAC,uBAAuB,CAAC;AAC5K,CAAC;AAED,SAAS,UAAU,CAAC,IAAgB,EAAE,UAAkB,EAAE,WAAmB;IAC3E,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,0EAA0E;IAC1E,6EAA6E;IAC7E,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtF,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/D,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,GAAG,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;QACjF,IAAI,IAAI,sCAAsC,IAAI,4EAA4E,IAAI,CAAC,IAAI,CAAC,yBAAyB,GAAG,CAAC,IAAI,CAAC,0CAA0C,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE,WAAW,CAAC,sBAAsB,CAAC;IACrR,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC7E,IAAI,IAAI,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,UAAU,CAAC,CAAS,EAAE,CAAS;IACtC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;AAC/E,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAgB,EAAE,WAAmB;IAC7D,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC;QAAE,OAAO,IAAI,CAAC;IAChE,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;QAC3C,IAAI,gBAAgB,CAAC,GAAG,EAAE,WAAW,CAAC;YAAE,OAAO,IAAI,CAAC;IACtD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,CAAW,EAAE,WAAmB;IACnD,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7F,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,OAAO,gBAAgB,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,mCAAmC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;AACrG,CAAC;AAED,0EAA0E;AAC1E,wEAAwE;AACxE,gCAAgC;AAChC,MAAM,oBAAoB,GAAG;;;;;;UAMnB,CAAC;AAEX,SAAS,kBAAkB,CAAC,MAAe;IACzC,OAAO;;;;;;;gBAOO,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UA8IZ,CAAC;AACX,CAAC;AAED,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;UAgBT,CAAC;AAEX,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;UA0BV,CAAC;AAEX,6EAA6E;AAC7E,oEAAoE;AACpE,yEAAyE;AACzE,yEAAyE;AACzE,uEAAuE;AACvE,MAAM,iBAAiB,GAAG;;;;;;;;UAQhB,CAAC;AAEX,mEAAmE;AACnE,0EAA0E;AAC1E,uEAAuE;AACvE,oEAAoE;AACpE,kCAAkC;AAClC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UA6BlB,CAAC;AAEX,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAyCd,CAAC;AAEX,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAiFZ,CAAC;AAEX,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAiGX,CAAC;AAEX,0EAA0E;AAC1E,wEAAwE;AACxE,2EAA2E;AAC3E,iDAAiD;AACjD,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UA8CjB,CAAC"}
|
package/dist/render/styles.js
CHANGED
|
@@ -887,7 +887,8 @@ code.fm-missing { color: #b94a3a; background: color-mix(in srgb, #b94a3a 10%, tr
|
|
|
887
887
|
|
|
888
888
|
/* Hover preview popover */
|
|
889
889
|
.wiki-preview {
|
|
890
|
-
position: absolute; display: none; max-width: 22rem;
|
|
890
|
+
position: absolute; display: none; max-width: min(22rem, calc(100vw - 1.5rem));
|
|
891
|
+
max-height: min(60vh, 22rem); overflow-y: auto;
|
|
891
892
|
padding: 0.75rem 1rem; background: var(--bg); color: var(--fg);
|
|
892
893
|
border: 1px solid var(--rule); border-left: 3px solid var(--accent);
|
|
893
894
|
border-radius: 4px; box-shadow: 0 6px 20px rgba(0,0,0,0.18);
|
|
@@ -896,5 +897,21 @@ code.fm-missing { color: #b94a3a; background: color-mix(in srgb, #b94a3a 10%, tr
|
|
|
896
897
|
.wiki-preview-title { font-weight: 700; margin-bottom: 0.2rem; }
|
|
897
898
|
.wiki-preview-subheading { color: var(--accent); font-size: 0.8rem; margin-bottom: 0.4rem; font-style: italic; }
|
|
898
899
|
.wiki-preview-body { color: var(--muted); }
|
|
900
|
+
/* Footer and close button are pinned-only; hidden on transient hover previews. */
|
|
901
|
+
.wiki-preview-goto {
|
|
902
|
+
display: none; margin-top: 0.6rem; padding-top: 0.5rem;
|
|
903
|
+
border-top: 1px solid var(--rule);
|
|
904
|
+
font-weight: 600; color: var(--accent); text-decoration: none;
|
|
905
|
+
}
|
|
906
|
+
.wiki-preview-close {
|
|
907
|
+
display: none; position: absolute; top: 0.35rem; right: 0.4rem;
|
|
908
|
+
width: 1.4rem; height: 1.4rem; padding: 0; line-height: 1;
|
|
909
|
+
border: none; border-radius: 4px; background: transparent;
|
|
910
|
+
color: var(--muted); font-size: 1.15rem; cursor: pointer;
|
|
911
|
+
}
|
|
912
|
+
.wiki-preview-close:hover { background: var(--rule); color: var(--fg); }
|
|
913
|
+
.wiki-preview.is-pinned .wiki-preview-goto { display: block; }
|
|
914
|
+
.wiki-preview.is-pinned .wiki-preview-close { display: block; }
|
|
915
|
+
.wiki-preview.is-pinned .wiki-preview-title { padding-right: 1.25rem; }
|
|
899
916
|
`;
|
|
900
917
|
//# sourceMappingURL=styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/render/styles.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,2CAA2C;AAE3C;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAKnC;IACC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,IAAI,CAAC,WAAW;QAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC1E,IAAI,IAAI,CAAC,OAAO;QAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IACvE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,0BAA0B,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QACtE,MAAM,CAAC,IAAI,CAAC,0CAA0C,WAAW,CAAC,4BAA4B,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACzH,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,0BAA0B,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QACtE,MAAM,CAAC,IAAI,CAAC,0CAA0C,OAAO,CAAC,4BAA4B,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACzH,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAC9B,OAAO,gDAAgD,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9E,CAAC;AAED;;0EAE0E;AAC1E,SAAS,OAAO,CAAC,QAAgB,EAAE,KAAa,EAAE,IAAsB;IACtE,MAAM,IAAI,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAChD,OAAO,GAAG,QAAQ;UACV,KAAK;+BACgB,KAAK,SAAS,IAAI;EAC/C,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB,EAAE,KAAa;IAClD,OAAO,GAAG,QAAQ;cACN,KAAK;sCACmB,KAAK;sCACL,KAAK;4CACC,KAAK;EAC/C,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/render/styles.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,2CAA2C;AAE3C;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAKnC;IACC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,IAAI,CAAC,WAAW;QAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC1E,IAAI,IAAI,CAAC,OAAO;QAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IACvE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,0BAA0B,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QACtE,MAAM,CAAC,IAAI,CAAC,0CAA0C,WAAW,CAAC,4BAA4B,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACzH,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,0BAA0B,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QACtE,MAAM,CAAC,IAAI,CAAC,0CAA0C,OAAO,CAAC,4BAA4B,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACzH,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAC9B,OAAO,gDAAgD,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9E,CAAC;AAED;;0EAE0E;AAC1E,SAAS,OAAO,CAAC,QAAgB,EAAE,KAAa,EAAE,IAAsB;IACtE,MAAM,IAAI,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAChD,OAAO,GAAG,QAAQ;UACV,KAAK;+BACgB,KAAK,SAAS,IAAI;EAC/C,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB,EAAE,KAAa;IAClD,OAAO,GAAG,QAAQ;cACN,KAAK;sCACmB,KAAK;sCACL,KAAK;4CACC,KAAK;EAC/C,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAk2B1B,CAAC"}
|
package/dist/settings.js
CHANGED
|
@@ -37,6 +37,11 @@ const SCHEMA = {
|
|
|
37
37
|
type: "boolean",
|
|
38
38
|
description: "Center images in the article body. Set false to leave them flush left.",
|
|
39
39
|
},
|
|
40
|
+
preview_mode: {
|
|
41
|
+
default: "normal",
|
|
42
|
+
type: "string",
|
|
43
|
+
description: "Internal-link preview behavior: 'normal' (the default) hovers a preview popover and navigates on click; 'sticky' hovers a preview and pins it open on click (with a 'Go to page' link) instead of navigating; 'none' disables previews entirely so links just navigate.",
|
|
44
|
+
},
|
|
40
45
|
default_role: {
|
|
41
46
|
default: "",
|
|
42
47
|
type: "string",
|
package/dist/settings.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,MAAM,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,MAAM,MAAM,aAAa,CAAC;AAuCjC,MAAM,MAAM,GAA6C;IACvD,UAAU,EAAE;QACV,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,8DAA8D;KAC5E;IACD,aAAa,EAAE;QACb,OAAO,EAAE,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,6DAA6D;KAC3E;IACD,cAAc,EAAE;QACd,OAAO,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;QACzB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,iEAAiE;KAC/E;IACD,MAAM,EAAE;QACN,OAAO,EAAE,EAAE;QACX,IAAI,EAAE,UAAU;QAChB,WAAW,EACT,kHAAkH;KACrH;IACD,YAAY,EAAE;QACZ,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,SAAS;QACf,WAAW,EACT,+IAA+I;KAClJ;IACD,mBAAmB,EAAE;QACnB,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,QAAQ;QACd,WAAW,EACT,oLAAoL;KACvL;IACD,aAAa,EAAE;QACb,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,SAAS;QACf,WAAW,EACT,wEAAwE;KAC3E;IACD,YAAY,EAAE;QACZ,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE,QAAQ;QACd,WAAW,EACT,yQAAyQ;KAC5Q;IACD,YAAY,EAAE;QACZ,OAAO,EAAE,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,WAAW,EACT,0MAA0M;KAC7M;IACD,YAAY,EAAE;QACZ,OAAO,EAAE,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,WAAW,EACT,yJAAyJ;KAC5J;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,WAAW,EACT,uJAAuJ;KAC1J;IACD,iBAAiB,EAAE;QACjB,OAAO,EAAE,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,WAAW,EACT,iIAAiI;KACpI;IACD,aAAa,EAAE;QACb,OAAO,EAAE,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,WAAW,EACT,mHAAmH;KACtH;IACD,KAAK,EAAE;QACL,OAAO,EAAE,MAAM;QACf,IAAI,EAAE,QAAQ;QACd,WAAW,EACT,gMAAgM;KACnM;IACD,OAAO,EAAE;QACP,OAAO,EAAE,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,WAAW,EACT,uIAAuI;KAC1I;IACD,UAAU,EAAE;QACV,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,SAAS;QACf,WAAW,EACT,wMAAwM;KAC3M;IACD,qBAAqB,EAAE;QACrB,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,SAAS;QACf,WAAW,EACT,2RAA2R;KAC9R;IACD,MAAM,EAAE;QACN,OAAO,EAAE,wEAAwE;QACjF,IAAI,EAAE,QAAQ;QACd,WAAW,EACT,mLAAmL;KACtL;CAEF,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAW3C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,SAAiB;IAClD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAC5C,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,MAAM,GAAG,QAAQ,EAAE,CAAC;QAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IACjE,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAA4B,CAAC;IAC1D,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAG,QAAQ,EAAE,CAAC;IAE1B,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAmD,EAAE,CAAC;QAClG,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC;YAAE,SAAS;QAC3B,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,QAAQ,CAAC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,GAAG,CAAC,IAAI,SAAS,YAAY,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;YACvG,SAAS;QACX,CAAC;QACA,MAA6C,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QAClC,IAAI,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE,CAAC;YACrB,QAAQ,CAAC,IAAI,CAAC,iCAAiC,GAAG,iCAAiC,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,KAAK,GAAG,EAAE,QAAQ,EAAE,CAAC;AACxE,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,SAAiB,EAAE,MAAgB;IACrE,MAAM,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,QAAQ;IACf,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CACpC,CAAC;AAC3B,CAAC;AAED,SAAS,WAAW,CAAC,CAAU,EAAE,CAAc;IAC7C,IAAI,CAAC,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC;IAC7F,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,YAAY,CAAC,CAAU;IAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,OAAO,CAAC;IACrC,OAAO,OAAO,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAgB;IAC1C,MAAM,KAAK,GAAa,CAAC,KAAK,CAAC,CAAC;IAChC,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAmD,EAAE,CAAC;QAClG,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QACnC,MAAM,KAAK,GAAI,MAA6C,CAAC,GAAG,CAAC,CAAC;QAClE,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,CAAa,CAAC;YACtC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrB,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;gBACtB,KAAK,MAAM,IAAI,IAAI,GAAG;oBAAE,KAAK,CAAC,IAAI,CAAC,OAAO,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/C,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,GAAG,EAAE,CAAC;IACnD,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACtB,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC;IACxF,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IACzD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,YAAY,CAAC,CAAU;IAC9B,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;IAClD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC;AAED,SAAS,YAAY,CAAC,CAAS;IAC7B,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wizzlethorpe/vaults",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.5",
|
|
4
4
|
"description": "Sync an Obsidian vault to a Cloudflare-hosted wiki with role-based access. Renders locally, deploys to Cloudflare Pages.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"obsidian",
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"typescript": "^5.9.3"
|
|
62
62
|
},
|
|
63
63
|
"scripts": {
|
|
64
|
-
"build": "tsc",
|
|
64
|
+
"build": "tsc && node scripts/bundle-importer.mjs",
|
|
65
65
|
"start": "node dist/index.js",
|
|
66
66
|
"test": "node --import tsx --test test/*.test.ts",
|
|
67
67
|
"typecheck:test": "tsc -p tsconfig.test.json --noEmit"
|