@wizzlethorpe/vaults 0.4.0 → 0.5.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/build.js +229 -43
- package/dist/build.js.map +1 -1
- package/dist/favicon.js +8 -31
- package/dist/favicon.js.map +1 -1
- package/dist/render/bases.js +64 -5
- package/dist/render/bases.js.map +1 -1
- package/dist/render/callouts.js +4 -1
- package/dist/render/callouts.js.map +1 -1
- package/dist/render/cover.js +41 -0
- package/dist/render/cover.js.map +1 -0
- package/dist/render/layout.js +190 -31
- package/dist/render/layout.js.map +1 -1
- package/dist/render/pipeline.js +11 -5
- package/dist/render/pipeline.js.map +1 -1
- package/dist/render/styles.js +277 -41
- package/dist/render/styles.js.map +1 -1
- package/dist/settings.js +15 -0
- package/dist/settings.js.map +1 -1
- package/package.json +1 -1
package/dist/render/styles.js
CHANGED
|
@@ -1,15 +1,26 @@
|
|
|
1
1
|
// Theme + layout styles for the rendered wiki. Self-contained, no build step.
|
|
2
2
|
// Single light theme: parchment + scarlet.
|
|
3
3
|
/**
|
|
4
|
-
* Per-vault
|
|
5
|
-
* append this block after DEFAULT_CSS so it wins. The derived
|
|
6
|
-
* (--accent-soft, --wikilink-bg) are recomputed via
|
|
7
|
-
* stay coherent with whatever
|
|
4
|
+
* Per-vault theme overrides. When `accent_color` or `bg_color` are set in
|
|
5
|
+
* settings.md, append this block after DEFAULT_CSS so it wins. The derived
|
|
6
|
+
* shades (--accent-soft, --wikilink-bg, --rule, etc) are recomputed via
|
|
7
|
+
* color-mix so they stay coherent with whatever colors the user picked.
|
|
8
8
|
*/
|
|
9
9
|
export function renderThemeOverride(opts) {
|
|
10
|
-
|
|
10
|
+
const blocks = [];
|
|
11
|
+
if (opts.lightAccent)
|
|
12
|
+
blocks.push(accentBlock(":root", opts.lightAccent));
|
|
13
|
+
if (opts.lightBg)
|
|
14
|
+
blocks.push(bgBlock(":root", opts.lightBg));
|
|
15
|
+
if (!blocks.length)
|
|
11
16
|
return "";
|
|
12
|
-
return "\n\n/* User
|
|
17
|
+
return "\n\n/* User theme overrides (settings.md) */\n" + blocks.join("\n");
|
|
18
|
+
}
|
|
19
|
+
function bgBlock(selector, color) {
|
|
20
|
+
return `${selector} {
|
|
21
|
+
--bg: ${color};
|
|
22
|
+
--rule: color-mix(in srgb, ${color} 85%, #000);
|
|
23
|
+
}`;
|
|
13
24
|
}
|
|
14
25
|
function accentBlock(selector, color) {
|
|
15
26
|
return `${selector} {
|
|
@@ -44,7 +55,7 @@ article a.internal.new, article a.internal.is-unresolved { opacity: 0.7; font-st
|
|
|
44
55
|
The sidebar's flex gap handles spacing; no extra margin or rule needed. */
|
|
45
56
|
.sidebar > .brand {
|
|
46
57
|
display: block; padding: 0 0.5rem;
|
|
47
|
-
font-weight: 700; font-size: 1.
|
|
58
|
+
font-weight: 700; font-size: 1.25rem; letter-spacing: 0.04em;
|
|
48
59
|
color: var(--fg); text-decoration: none;
|
|
49
60
|
}
|
|
50
61
|
.sidebar > .brand:hover { color: var(--accent); text-decoration: none; }
|
|
@@ -76,42 +87,20 @@ main { padding: 2rem 0 4rem; min-width: 0; }
|
|
|
76
87
|
(the Explorer is always shown). On mobile it acts as a real disclosure
|
|
77
88
|
widget so the long sitemap doesn't push the article off-screen. The
|
|
78
89
|
default state is closed; an inline script in the layout opens it on
|
|
79
|
-
desktop after first paint.
|
|
80
|
-
|
|
81
|
-
.sidebar > details.explorer
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
gap: 0.5rem;
|
|
88
|
-
padding: 0.4rem 0.5rem;
|
|
89
|
-
margin: 0 0 0.5rem;
|
|
90
|
-
font-size: 0.75rem;
|
|
91
|
-
text-transform: uppercase;
|
|
92
|
-
letter-spacing: 0.08em;
|
|
93
|
-
color: var(--muted);
|
|
94
|
-
font-weight: 600;
|
|
95
|
-
border-radius: 3px;
|
|
96
|
-
}
|
|
97
|
-
.sidebar > details.explorer > summary::-webkit-details-marker { display: none; }
|
|
98
|
-
.sidebar > details.explorer > summary::before {
|
|
99
|
-
content: ''; display: inline-block;
|
|
100
|
-
width: 5px; height: 5px;
|
|
101
|
-
border-right: 1.5px solid currentColor;
|
|
102
|
-
border-bottom: 1.5px solid currentColor;
|
|
103
|
-
transform: rotate(-45deg);
|
|
104
|
-
transition: transform 0.15s ease;
|
|
105
|
-
opacity: 0.7;
|
|
106
|
-
}
|
|
107
|
-
.sidebar > details.explorer[open] > summary::before { transform: rotate(45deg); }
|
|
108
|
-
.sidebar > details.explorer > summary:hover { color: var(--accent); }
|
|
90
|
+
desktop after first paint. The summary reuses the TOC styling so both
|
|
91
|
+
sidebars present the same dropdown affordance. */
|
|
92
|
+
.sidebar > nav > details.explorer { margin: 0; }
|
|
93
|
+
.sidebar > nav > details.explorer > .toc-summary {
|
|
94
|
+
margin-bottom: 0.5rem;
|
|
95
|
+
display: inline-flex;
|
|
96
|
+
}
|
|
97
|
+
.sidebar > nav > details.explorer[open] > .toc-summary::before { transform: rotate(45deg); }
|
|
109
98
|
@media (min-width: 1101px) {
|
|
110
99
|
/* On desktop, force the Explorer to behave as if always open: hide the
|
|
111
100
|
toggle affordance, and reveal the sitemap regardless of [open] state. */
|
|
112
|
-
.sidebar > details.explorer > summary { cursor: default; pointer-events: none; }
|
|
113
|
-
.sidebar > details.explorer > summary::before { display: none; }
|
|
114
|
-
.sidebar > details.explorer > .sitemap-list { display: block; }
|
|
101
|
+
.sidebar > nav > details.explorer > .toc-summary { cursor: default; pointer-events: none; }
|
|
102
|
+
.sidebar > nav > details.explorer > .toc-summary::before { display: none; }
|
|
103
|
+
.sidebar > nav > details.explorer > .sitemap-list { display: block; }
|
|
115
104
|
}
|
|
116
105
|
|
|
117
106
|
.search-box { position: relative; }
|
|
@@ -144,6 +133,67 @@ main { padding: 2rem 0 4rem; min-width: 0; }
|
|
|
144
133
|
.auth-box .auth-status strong { color: var(--accent); font-weight: 600; }
|
|
145
134
|
.auth-box .auth-action { color: var(--accent); text-decoration: none; font-weight: 500; }
|
|
146
135
|
.auth-box .auth-action:hover { text-decoration: underline; }
|
|
136
|
+
|
|
137
|
+
/* Signed-out auth UI: present Sign in as a full-width button rather than
|
|
138
|
+
a lightweight text link. */
|
|
139
|
+
.auth-box.auth-signed-out {
|
|
140
|
+
padding: 0;
|
|
141
|
+
border: none;
|
|
142
|
+
border-radius: 0;
|
|
143
|
+
}
|
|
144
|
+
.auth-box .auth-action-primary {
|
|
145
|
+
width: 100%;
|
|
146
|
+
display: block;
|
|
147
|
+
text-align: center;
|
|
148
|
+
padding: 0.52rem 0.75rem;
|
|
149
|
+
border-radius: 4px;
|
|
150
|
+
border: 1px solid var(--accent);
|
|
151
|
+
background: transparent;
|
|
152
|
+
color: var(--accent);
|
|
153
|
+
font-weight: 600;
|
|
154
|
+
letter-spacing: 0.01em;
|
|
155
|
+
transition: background 0.12s ease, border-color 0.12s ease, color 0.12s ease, transform 0.06s ease;
|
|
156
|
+
}
|
|
157
|
+
.auth-box .auth-action-primary:hover {
|
|
158
|
+
text-decoration: none;
|
|
159
|
+
background: var(--wikilink-bg);
|
|
160
|
+
border-color: var(--accent-soft);
|
|
161
|
+
color: var(--accent);
|
|
162
|
+
}
|
|
163
|
+
.auth-box .auth-action-primary:active { transform: translateY(1px); }
|
|
164
|
+
|
|
165
|
+
/* Signed-in auth UI: keep status on the left and present Sign out as a
|
|
166
|
+
right-side action split by a divider. */
|
|
167
|
+
.auth-box.auth-signed-in {
|
|
168
|
+
padding: 0.3rem 0.35rem 0.3rem 0.65rem;
|
|
169
|
+
flex-wrap: nowrap;
|
|
170
|
+
gap: 0;
|
|
171
|
+
}
|
|
172
|
+
.auth-box.auth-signed-in .auth-status {
|
|
173
|
+
flex: 1;
|
|
174
|
+
min-width: 0;
|
|
175
|
+
padding-right: 0.55rem;
|
|
176
|
+
white-space: nowrap;
|
|
177
|
+
overflow: hidden;
|
|
178
|
+
text-overflow: ellipsis;
|
|
179
|
+
}
|
|
180
|
+
.auth-box.auth-signed-in .auth-action {
|
|
181
|
+
display: inline-flex;
|
|
182
|
+
align-items: center;
|
|
183
|
+
justify-content: center;
|
|
184
|
+
margin-left: auto;
|
|
185
|
+
padding: 0.32rem 0.6rem;
|
|
186
|
+
border-left: 1px solid var(--rule);
|
|
187
|
+
border-radius: 0;
|
|
188
|
+
text-decoration: none;
|
|
189
|
+
font-weight: 600;
|
|
190
|
+
line-height: 1.2;
|
|
191
|
+
white-space: nowrap;
|
|
192
|
+
}
|
|
193
|
+
.auth-box.auth-signed-in .auth-action:hover {
|
|
194
|
+
text-decoration: none;
|
|
195
|
+
background: var(--wikilink-bg);
|
|
196
|
+
}
|
|
147
197
|
.search-result-summary {
|
|
148
198
|
font-size: 0.78rem; color: var(--muted); margin-top: 0.25rem; line-height: 1.4;
|
|
149
199
|
display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
|
|
@@ -199,14 +249,130 @@ main { padding: 2rem 0 4rem; min-width: 0; }
|
|
|
199
249
|
}
|
|
200
250
|
.rightbar .backlinks a:hover { color: var(--accent); border-left-color: var(--accent); }
|
|
201
251
|
|
|
252
|
+
/* Top-of-article header strip: breadcrumbs left, meta + frontmatter affordance right.
|
|
253
|
+
Wraps onto a second line on narrow viewports rather than overflowing. */
|
|
254
|
+
.page-header {
|
|
255
|
+
display: flex;
|
|
256
|
+
flex-wrap: wrap;
|
|
257
|
+
align-items: center;
|
|
258
|
+
gap: 0.4rem 1rem;
|
|
259
|
+
margin: 0 0 1rem;
|
|
260
|
+
}
|
|
261
|
+
.page-header .crumbs { margin: 0; flex: 1 1 auto; min-width: 0; }
|
|
262
|
+
.page-header-right {
|
|
263
|
+
display: flex;
|
|
264
|
+
align-items: center;
|
|
265
|
+
gap: 0.5rem;
|
|
266
|
+
margin-left: auto;
|
|
267
|
+
flex-shrink: 0;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
/* Lives at the bottom of the article; muted, separated by a thin rule so
|
|
271
|
+
it reads as page-footer info rather than article content. */
|
|
202
272
|
.page-meta {
|
|
203
273
|
color: var(--muted); font-size: 0.78rem;
|
|
204
|
-
margin:
|
|
274
|
+
margin: 2.5rem 0 0;
|
|
275
|
+
padding-top: 0.6rem;
|
|
276
|
+
border-top: 1px solid var(--rule);
|
|
205
277
|
display: flex; gap: 0.4rem; align-items: center; flex-wrap: wrap;
|
|
206
278
|
}
|
|
207
279
|
.page-meta time { font-variant-numeric: tabular-nums; }
|
|
208
280
|
.page-meta .meta-sep { opacity: 0.5; }
|
|
209
281
|
|
|
282
|
+
.frontmatter-toggle {
|
|
283
|
+
display: inline-flex; align-items: center; gap: 0.35rem;
|
|
284
|
+
padding: 0.15rem 0.5rem;
|
|
285
|
+
font-size: 0.78rem;
|
|
286
|
+
color: var(--muted);
|
|
287
|
+
background: transparent;
|
|
288
|
+
border: 1px solid var(--rule);
|
|
289
|
+
border-radius: 4px;
|
|
290
|
+
cursor: pointer;
|
|
291
|
+
font-family: inherit;
|
|
292
|
+
transition: color 0.15s, border-color 0.15s, background 0.15s;
|
|
293
|
+
}
|
|
294
|
+
.frontmatter-toggle:hover {
|
|
295
|
+
color: var(--accent);
|
|
296
|
+
border-color: var(--accent);
|
|
297
|
+
}
|
|
298
|
+
.frontmatter-toggle-glyph {
|
|
299
|
+
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
|
300
|
+
font-weight: 700;
|
|
301
|
+
letter-spacing: -0.05em;
|
|
302
|
+
}
|
|
303
|
+
/* Mobile: drop the "frontmatter" label so the button is just a {} chip. */
|
|
304
|
+
@media (max-width: 600px) {
|
|
305
|
+
.frontmatter-toggle-label { display: none; }
|
|
306
|
+
.frontmatter-toggle { padding: 0.15rem 0.4rem; }
|
|
307
|
+
}
|
|
308
|
+
.frontmatter-dialog {
|
|
309
|
+
border: 1px solid var(--rule);
|
|
310
|
+
border-radius: 6px;
|
|
311
|
+
padding: 0;
|
|
312
|
+
background: var(--bg);
|
|
313
|
+
color: inherit;
|
|
314
|
+
max-width: min(720px, 90vw);
|
|
315
|
+
width: min(720px, 90vw);
|
|
316
|
+
}
|
|
317
|
+
.frontmatter-dialog::backdrop {
|
|
318
|
+
background: rgba(0, 0, 0, 0.35);
|
|
319
|
+
}
|
|
320
|
+
.frontmatter-header {
|
|
321
|
+
display: flex; align-items: center; gap: 0.5rem;
|
|
322
|
+
padding: 0.6rem 0.8rem;
|
|
323
|
+
border-bottom: 1px solid var(--rule);
|
|
324
|
+
}
|
|
325
|
+
.frontmatter-title {
|
|
326
|
+
font-weight: 600;
|
|
327
|
+
font-size: 0.85rem;
|
|
328
|
+
color: var(--muted);
|
|
329
|
+
flex: 1;
|
|
330
|
+
}
|
|
331
|
+
/* Pin a fixed min-height on both buttons and centre contents — different
|
|
332
|
+
font-sizes (× at 1rem vs "Copy" at 0.8rem) would otherwise produce
|
|
333
|
+
different line-box heights. */
|
|
334
|
+
.frontmatter-copy,
|
|
335
|
+
.frontmatter-close {
|
|
336
|
+
font-family: inherit;
|
|
337
|
+
background: transparent;
|
|
338
|
+
border: 1px solid var(--rule);
|
|
339
|
+
border-radius: 4px;
|
|
340
|
+
cursor: pointer;
|
|
341
|
+
color: inherit;
|
|
342
|
+
font-size: 0.8rem;
|
|
343
|
+
line-height: 1;
|
|
344
|
+
display: inline-flex;
|
|
345
|
+
align-items: center;
|
|
346
|
+
justify-content: center;
|
|
347
|
+
min-height: 1.75rem;
|
|
348
|
+
padding: 0 0.6rem;
|
|
349
|
+
transition: color 0.15s, border-color 0.15s;
|
|
350
|
+
}
|
|
351
|
+
.frontmatter-copy:hover,
|
|
352
|
+
.frontmatter-close:hover {
|
|
353
|
+
color: var(--accent);
|
|
354
|
+
border-color: var(--accent);
|
|
355
|
+
}
|
|
356
|
+
.frontmatter-close {
|
|
357
|
+
font-size: 1.1rem;
|
|
358
|
+
min-width: 1.75rem;
|
|
359
|
+
padding: 0;
|
|
360
|
+
}
|
|
361
|
+
.frontmatter-dialog pre {
|
|
362
|
+
margin: 0;
|
|
363
|
+
padding: 0.8rem 1rem;
|
|
364
|
+
max-height: 60vh;
|
|
365
|
+
overflow: auto;
|
|
366
|
+
background: color-mix(in srgb, var(--muted) 8%, transparent);
|
|
367
|
+
}
|
|
368
|
+
.frontmatter-dialog code.frontmatter-yaml {
|
|
369
|
+
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
|
370
|
+
font-size: 0.85rem;
|
|
371
|
+
line-height: 1.45;
|
|
372
|
+
white-space: pre;
|
|
373
|
+
display: block;
|
|
374
|
+
}
|
|
375
|
+
|
|
210
376
|
.crumbs { color: var(--muted); font-size: 0.875rem; margin-bottom: 1rem; }
|
|
211
377
|
.crumbs a { color: var(--muted); text-decoration: none; }
|
|
212
378
|
.crumbs a:hover { color: var(--accent); text-decoration: underline; }
|
|
@@ -367,6 +533,54 @@ article blockquote { margin: 1rem 0; padding: 0.5rem 1rem; border-left: 3px soli
|
|
|
367
533
|
border-radius: 6px;
|
|
368
534
|
background: color-mix(in srgb, var(--muted) 4%, transparent);
|
|
369
535
|
}
|
|
536
|
+
|
|
537
|
+
/* Multi-view tabbed container: tab strip on top, blocks below as panels.
|
|
538
|
+
The block inside loses its outer rounding/border on top so it merges
|
|
539
|
+
visually with the active tab without doubled rules. */
|
|
540
|
+
.bases-tabbed {
|
|
541
|
+
margin: 1rem 0;
|
|
542
|
+
border: 1px solid var(--rule);
|
|
543
|
+
border-radius: 6px;
|
|
544
|
+
background: color-mix(in srgb, var(--muted) 4%, transparent);
|
|
545
|
+
}
|
|
546
|
+
.bases-tabbed .bases-block {
|
|
547
|
+
margin: 0;
|
|
548
|
+
border: none;
|
|
549
|
+
border-radius: 0;
|
|
550
|
+
background: transparent;
|
|
551
|
+
}
|
|
552
|
+
.bases-tabbed .bases-block .bases-caption { display: none; }
|
|
553
|
+
.bases-tab-strip {
|
|
554
|
+
display: flex;
|
|
555
|
+
flex-wrap: wrap;
|
|
556
|
+
gap: 0.25rem;
|
|
557
|
+
padding: 0.4rem 0.5rem 0;
|
|
558
|
+
border-bottom: 1px solid var(--rule);
|
|
559
|
+
}
|
|
560
|
+
.bases-tab {
|
|
561
|
+
font-family: inherit;
|
|
562
|
+
font-size: 0.85rem;
|
|
563
|
+
font-weight: 600;
|
|
564
|
+
background: transparent;
|
|
565
|
+
border: 1px solid transparent;
|
|
566
|
+
border-bottom: none;
|
|
567
|
+
border-radius: 5px 5px 0 0;
|
|
568
|
+
color: var(--muted);
|
|
569
|
+
cursor: pointer;
|
|
570
|
+
padding: 0.4rem 0.85rem;
|
|
571
|
+
margin-bottom: -1px;
|
|
572
|
+
transition: color 0.15s, background 0.15s, border-color 0.15s;
|
|
573
|
+
}
|
|
574
|
+
.bases-tab:hover {
|
|
575
|
+
color: var(--accent);
|
|
576
|
+
}
|
|
577
|
+
.bases-tab-active {
|
|
578
|
+
color: inherit;
|
|
579
|
+
background: var(--bg);
|
|
580
|
+
border-color: var(--rule);
|
|
581
|
+
border-bottom-color: var(--bg);
|
|
582
|
+
}
|
|
583
|
+
.bases-tab-panel[hidden] { display: none !important; }
|
|
370
584
|
.bases-caption {
|
|
371
585
|
padding: 0.55rem 0.85rem;
|
|
372
586
|
font-weight: 700;
|
|
@@ -447,6 +661,14 @@ article blockquote { margin: 1rem 0; padding: 0.5rem 1rem; border-left: 3px soli
|
|
|
447
661
|
overflow: hidden;
|
|
448
662
|
transition: border-color 0.15s, transform 0.15s;
|
|
449
663
|
}
|
|
664
|
+
/* Author rules with display:flex/grid/... override the UA [hidden]
|
|
665
|
+
default, so the runtime filter has nothing to cling to. Force the hide
|
|
666
|
+
here for every Bases item type. */
|
|
667
|
+
.bases-card[hidden],
|
|
668
|
+
.bases-list li[hidden],
|
|
669
|
+
.bases-table tr[hidden] {
|
|
670
|
+
display: none !important;
|
|
671
|
+
}
|
|
450
672
|
.bases-card:hover {
|
|
451
673
|
border-color: var(--accent);
|
|
452
674
|
transform: translateY(-2px);
|
|
@@ -455,7 +677,21 @@ article blockquote { margin: 1rem 0; padding: 0.5rem 1rem; border-left: 3px soli
|
|
|
455
677
|
width: 100%;
|
|
456
678
|
aspect-ratio: 1 / 1;
|
|
457
679
|
background-color: color-mix(in srgb, var(--muted) 8%, transparent);
|
|
680
|
+
overflow: hidden;
|
|
681
|
+
}
|
|
682
|
+
.bases-card-cover img {
|
|
683
|
+
width: 100%;
|
|
684
|
+
height: 100%;
|
|
685
|
+
display: block;
|
|
458
686
|
}
|
|
687
|
+
.bases-card-cover-cover img { object-fit: cover; object-position: center; }
|
|
688
|
+
.bases-card-cover-contain img { object-fit: contain; object-position: center; }
|
|
689
|
+
.bases-card-cover-1x1 { aspect-ratio: 1 / 1; }
|
|
690
|
+
.bases-card-cover-3x2 { aspect-ratio: 3 / 2; }
|
|
691
|
+
.bases-card-cover-4x3 { aspect-ratio: 4 / 3; }
|
|
692
|
+
.bases-card-cover-16x9 { aspect-ratio: 16 / 9; }
|
|
693
|
+
.bases-card-cover-3x4 { aspect-ratio: 3 / 4; }
|
|
694
|
+
.bases-card-cover-2x3 { aspect-ratio: 2 / 3; }
|
|
459
695
|
.bases-card-body {
|
|
460
696
|
padding: 0.6rem 0.75rem;
|
|
461
697
|
display: flex;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/render/styles.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,2CAA2C;AAE3C;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/render/styles.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,2CAA2C;AAE3C;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAgD;IAClF,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,CAAC,CAAC,CAAC;IAC9D,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAC9B,OAAO,gDAAgD,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,OAAO,CAAC,QAAgB,EAAE,KAAa;IAC9C,OAAO,GAAG,QAAQ;UACV,KAAK;+BACgB,KAAK;EAClC,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6uB1B,CAAC"}
|
package/dist/settings.js
CHANGED
|
@@ -47,11 +47,26 @@ const SCHEMA = {
|
|
|
47
47
|
type: "string",
|
|
48
48
|
description: "Override the accent color (links, headings, highlights). Any CSS color works: '#a8201a', 'crimson', 'rgb(168 32 26)'. Empty = use the built-in scarlet.",
|
|
49
49
|
},
|
|
50
|
+
bg_color: {
|
|
51
|
+
default: "",
|
|
52
|
+
type: "string",
|
|
53
|
+
description: "Override the background color. Any CSS color works: '#f4ecd8', 'wheat', 'rgb(244 236 216)'. Empty = use the built-in parchment.",
|
|
54
|
+
},
|
|
50
55
|
favicon: {
|
|
51
56
|
default: "",
|
|
52
57
|
type: "string",
|
|
53
58
|
description: "Vault-relative path to an image used as the site favicon (png/jpg/svg/webp). Empty = generated default with the vault's accent color.",
|
|
54
59
|
},
|
|
60
|
+
auto_image: {
|
|
61
|
+
default: true,
|
|
62
|
+
type: "boolean",
|
|
63
|
+
description: "When a page has no 'image:' frontmatter, fall back to the first embedded image in the body. Used for OG/Twitter social cards, Bases card covers, and Foundry actor/item reskins. Set false to opt out.",
|
|
64
|
+
},
|
|
65
|
+
include_unknown_files: {
|
|
66
|
+
default: false,
|
|
67
|
+
type: "boolean",
|
|
68
|
+
description: "Ship files with unrecognized extensions to every deploy variant. Default false skips them (with a warning) so a stray file in your vault can't accidentally bypass role gating. Recognized media types (audio/video/pdf/epub) are reference-gated like images regardless of this setting.",
|
|
69
|
+
},
|
|
55
70
|
};
|
|
56
71
|
export const SETTINGS_FILE = "settings.md";
|
|
57
72
|
/**
|
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":"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"}
|
package/package.json
CHANGED