@riebeckite/honox 0.0.5 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/README_ja.md +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +939 -135
- package/dist/server.js +25 -3
- package/dist/src/endpoints.d.ts +15 -0
- package/dist/src/honox_islands.d.ts +2 -4
- package/dist/src/scaffold/localized-content.d.ts +1 -1
- package/dist/src/scaffold/next-steps.d.ts +1 -0
- package/dist/src/scaffold/presets.d.ts +34 -2
- package/dist/src/scaffold/presets.js +331 -49
- package/dist/src/scaffold/templates.d.ts +37 -1
- package/dist/src/scaffold/version.d.ts +1 -0
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -167,6 +167,10 @@ function replaceHonoxIslandDependencyPlugin(plugins) {
|
|
|
167
167
|
];
|
|
168
168
|
}
|
|
169
169
|
function disableHonoxIslandDependencyPlugin(plugin) {
|
|
170
|
+
if (!plugin || typeof plugin === "boolean") return plugin;
|
|
171
|
+
if (Array.isArray(plugin)) {
|
|
172
|
+
return plugin.map(disableHonoxIslandDependencyPlugin);
|
|
173
|
+
}
|
|
170
174
|
if (plugin instanceof Promise) {
|
|
171
175
|
return plugin.then(disableHonoxIslandDependencyPlugin);
|
|
172
176
|
}
|
|
@@ -296,78 +300,340 @@ var obsidianMarkdown = np(
|
|
|
296
300
|
"obsidianMarkdown"
|
|
297
301
|
);
|
|
298
302
|
var colorMode = np("@riebeckite/plugin-color-mode", "colorModePlugin");
|
|
299
|
-
var l10n = np("@riebeckite/plugin-l10n", "l10n")
|
|
300
|
-
|
|
303
|
+
var l10n = np("@riebeckite/plugin-l10n", "l10n", (context) => {
|
|
304
|
+
const defaultLang = defaultLanguageForLocale(context.variables.locale);
|
|
305
|
+
return `{ defaultLang: ${JSON.stringify(defaultLang)}, languages: ${JSON.stringify(context.languages)} }`;
|
|
306
|
+
});
|
|
307
|
+
var seo = np("@riebeckite/plugin-seo", "seo", {
|
|
308
|
+
siteName: {
|
|
309
|
+
depth: 1,
|
|
310
|
+
value: (context) => JSON.stringify(context.variables.title)
|
|
311
|
+
},
|
|
312
|
+
sitemap: { depth: 1, value: "true" },
|
|
313
|
+
robots: { depth: 2, value: "true" },
|
|
314
|
+
defaultImage: { depth: 3, value: '"/ogp.png"' },
|
|
315
|
+
feed: { depth: 3, value: "{ rss: true, atom: true, json: true }" }
|
|
316
|
+
});
|
|
301
317
|
var toc = np("@riebeckite/plugin-toc", "tocPlugin");
|
|
302
|
-
var properties = np("@riebeckite/plugin-properties", "properties"
|
|
303
|
-
|
|
304
|
-
|
|
318
|
+
var properties = np("@riebeckite/plugin-properties", "properties", {
|
|
319
|
+
render: { depth: 1, value: '"slot"' },
|
|
320
|
+
include: { depth: 2, value: '["created", "modified", "tags", "status"]' },
|
|
321
|
+
order: { depth: 2, value: '["created", "modified", "tags", "status"]' }
|
|
322
|
+
});
|
|
323
|
+
var alias = np("@riebeckite/plugin-alias", "aliasPlugin", `{ status: 308 }`);
|
|
324
|
+
var codeEnhance = np("@riebeckite/plugin-code-enhance", "codeEnhance", {
|
|
325
|
+
lineNumbers: { depth: 1, value: "true" },
|
|
326
|
+
copyButton: { depth: 1, value: "true" },
|
|
327
|
+
filename: { depth: 2, value: "true" },
|
|
328
|
+
lineHighlight: { depth: 2, value: "true" },
|
|
329
|
+
diffHighlight: { depth: 2, value: "true" },
|
|
330
|
+
theme: { depth: 3, value: '{ light: "github-light", dark: "github-dark" }' },
|
|
331
|
+
wrapToggle: { depth: 3, value: "true" }
|
|
332
|
+
});
|
|
305
333
|
var search = np("@riebeckite/plugin-search", "searchPlugin");
|
|
306
334
|
var backlinks = np("@riebeckite/plugin-backlinks", "backlinksPlugin");
|
|
307
|
-
var relatedPosts = np("@riebeckite/plugin-related-posts", "relatedPosts"
|
|
335
|
+
var relatedPosts = np("@riebeckite/plugin-related-posts", "relatedPosts", {
|
|
336
|
+
limit: { depth: 2, value: "5" },
|
|
337
|
+
useTags: { depth: 2, value: "true" },
|
|
338
|
+
useBacklinks: { depth: 2, value: "true" },
|
|
339
|
+
minScore: { depth: 3, value: "1" },
|
|
340
|
+
heading: { depth: 3, value: "true" },
|
|
341
|
+
headingText: { depth: 3, value: '"Related"' },
|
|
342
|
+
className: { depth: 3, value: '"rb-related-posts"' }
|
|
343
|
+
});
|
|
344
|
+
var share = np("@riebeckite/plugin-share", "share", {
|
|
345
|
+
placement: { depth: 2, value: '"bottom"' },
|
|
346
|
+
services: {
|
|
347
|
+
depth: 3,
|
|
348
|
+
value: '["x", "bluesky", "mastodon", "facebook", "linkedin", "hatena", "copy"]'
|
|
349
|
+
},
|
|
350
|
+
mastodonInstance: { depth: 3, value: '"mastodon.social"' }
|
|
351
|
+
});
|
|
308
352
|
var recentPosts = np("@riebeckite/plugin-recent-posts", "recentPostsPlugin");
|
|
309
|
-
var
|
|
310
|
-
|
|
353
|
+
var changelog = np("@riebeckite/plugin-changelog", "changelog", {
|
|
354
|
+
perNote: { depth: 2, value: "true" },
|
|
355
|
+
lookbackDays: { depth: 3, value: "90" },
|
|
356
|
+
dateFormat: { depth: 3, value: '"iso"' },
|
|
357
|
+
siteWide: { depth: 3, value: "false" }
|
|
358
|
+
});
|
|
359
|
+
var webmention = np("@riebeckite/plugin-webmention", "webmention", {
|
|
360
|
+
headingText: { depth: 2, value: '"Mentions"' },
|
|
361
|
+
limit: { depth: 3, value: "20" }
|
|
362
|
+
});
|
|
363
|
+
var attachment = np(
|
|
364
|
+
"@riebeckite/plugin-attachment",
|
|
365
|
+
"attachment",
|
|
366
|
+
`{ showSize: true }`
|
|
367
|
+
);
|
|
368
|
+
var pdf = np("@riebeckite/plugin-pdf", "pdf", {
|
|
369
|
+
height: { depth: 2, value: '"640px"' },
|
|
370
|
+
initialPage: { depth: 2, value: "1" },
|
|
371
|
+
toolbar: { depth: 2, value: "true" },
|
|
372
|
+
showMetadata: { depth: 3, value: "true" },
|
|
373
|
+
downloadLabel: { depth: 3, value: '"Download PDF"' }
|
|
374
|
+
});
|
|
375
|
+
var media = np("@riebeckite/plugin-media", "media", {
|
|
376
|
+
preload: { depth: 2, value: '"metadata"' },
|
|
377
|
+
lazy: { depth: 2, value: "true" },
|
|
378
|
+
showCaption: { depth: 3, value: "true" },
|
|
379
|
+
showDownload: { depth: 3, value: "false" },
|
|
380
|
+
showOpenOriginal: { depth: 3, value: "true" }
|
|
381
|
+
});
|
|
311
382
|
var responsiveImage = np(
|
|
312
383
|
"@riebeckite/plugin-responsive-image",
|
|
313
|
-
"responsiveImage"
|
|
384
|
+
"responsiveImage",
|
|
385
|
+
{
|
|
386
|
+
lazy: { depth: 2, value: "true" },
|
|
387
|
+
decoding: { depth: 2, value: "true" },
|
|
388
|
+
sizes: { depth: 2, value: '"100vw"' },
|
|
389
|
+
widths: { depth: 2, value: "[640, 1280, 1920]" },
|
|
390
|
+
formats: { depth: 3, value: '["webp", "avif"]' },
|
|
391
|
+
className: { depth: 3, value: '"rb-responsive-image"' }
|
|
392
|
+
}
|
|
393
|
+
);
|
|
394
|
+
var lightbox = np(
|
|
395
|
+
"@riebeckite/plugin-lightbox",
|
|
396
|
+
"lightboxPlugin",
|
|
397
|
+
`{ selectorClass: "rr-lightbox-trigger" }`
|
|
398
|
+
);
|
|
399
|
+
var highlight = np("@riebeckite/plugin-highlight", "highlight", {
|
|
400
|
+
tag: { depth: 2, value: '"mark"' },
|
|
401
|
+
className: { depth: 3, value: '"rb-mark"' }
|
|
402
|
+
});
|
|
403
|
+
var codeTabs = np(
|
|
404
|
+
"@riebeckite/plugin-code-tabs",
|
|
405
|
+
"codeTabs",
|
|
406
|
+
`{ syncTabs: true }`
|
|
314
407
|
);
|
|
315
|
-
var lightbox = np("@riebeckite/plugin-lightbox", "lightboxPlugin");
|
|
316
|
-
var highlight = np("@riebeckite/plugin-highlight", "highlight");
|
|
317
|
-
var codeTabs = np("@riebeckite/plugin-code-tabs", "codeTabs");
|
|
318
408
|
var codeAnnotations = np(
|
|
319
409
|
"@riebeckite/plugin-code-annotations",
|
|
320
|
-
"codeAnnotations"
|
|
410
|
+
"codeAnnotations",
|
|
411
|
+
`{ className: "rb-code" }`
|
|
412
|
+
);
|
|
413
|
+
var shortcodes = np(
|
|
414
|
+
"@riebeckite/plugin-shortcodes",
|
|
415
|
+
"shortcodes",
|
|
416
|
+
`{ builtins: true }`
|
|
321
417
|
);
|
|
322
|
-
var
|
|
323
|
-
|
|
418
|
+
var series = np("@riebeckite/plugin-series", "series", {
|
|
419
|
+
key: { depth: 2, value: '"series"' },
|
|
420
|
+
orderKey: { depth: 2, value: '"series_order"' },
|
|
421
|
+
titleKey: { depth: 2, value: '"series_title"' },
|
|
422
|
+
positionLabel: { depth: 2, value: "false" },
|
|
423
|
+
heading: { depth: 3, value: "true" },
|
|
424
|
+
className: { depth: 3, value: '"rb-series"' }
|
|
425
|
+
});
|
|
426
|
+
var taxonomy = np("@riebeckite/plugin-taxonomy", "taxonomy", {
|
|
427
|
+
tags: { depth: 2, value: "true" },
|
|
428
|
+
folders: { depth: 2, value: "true" },
|
|
429
|
+
related: { depth: 2, value: "true" },
|
|
430
|
+
feeds: { depth: 3, value: "{ rss: true, atom: true, json: true }" },
|
|
431
|
+
relatedLimit: { depth: 3, value: "8" }
|
|
432
|
+
});
|
|
324
433
|
var autoCardLink = np(
|
|
325
434
|
"@riebeckite/plugin-autocardlink",
|
|
326
|
-
"autoCardLinkPlugin"
|
|
435
|
+
"autoCardLinkPlugin",
|
|
436
|
+
`{ className: "rb-cardlink" }`
|
|
437
|
+
);
|
|
438
|
+
var richEmbed = np(
|
|
439
|
+
"@riebeckite/plugin-rich-embed",
|
|
440
|
+
"richEmbed",
|
|
441
|
+
`{ providers: ["youtube", "vimeo", "spotify"] }`
|
|
442
|
+
);
|
|
443
|
+
var gallery = np("@riebeckite/plugin-gallery", "gallery", {
|
|
444
|
+
columns: { depth: 2, value: "3" },
|
|
445
|
+
aspect: { depth: 2, value: '"4/3"' },
|
|
446
|
+
language: { depth: 3, value: '"gallery"' }
|
|
447
|
+
});
|
|
448
|
+
var mermaid = np("@riebeckite/plugin-mermaid", "mermaid", {
|
|
449
|
+
render: { depth: 2, value: '"build"' },
|
|
450
|
+
theme: { depth: 2, value: '{ light: "default", dark: "dark" }' },
|
|
451
|
+
caption: { depth: 3, value: "true" },
|
|
452
|
+
fallback: { depth: 3, value: "true" }
|
|
453
|
+
});
|
|
454
|
+
var graphviz = np("@riebeckite/plugin-graphviz", "graphviz", {
|
|
455
|
+
render: { depth: 2, value: '"build"' },
|
|
456
|
+
engine: { depth: 2, value: '"dot"' },
|
|
457
|
+
caption: { depth: 3, value: "true" },
|
|
458
|
+
fallback: { depth: 3, value: "true" }
|
|
459
|
+
});
|
|
460
|
+
var d2 = np("@riebeckite/plugin-d2", "d2", {
|
|
461
|
+
render: { depth: 2, value: '"build"' },
|
|
462
|
+
theme: { depth: 2, value: "{ light: 0, dark: 1 }" },
|
|
463
|
+
layout: { depth: 2, value: '"dagre"' },
|
|
464
|
+
caption: { depth: 3, value: "true" }
|
|
465
|
+
});
|
|
466
|
+
var plantuml = np("@riebeckite/plugin-plantuml", "plantuml", {
|
|
467
|
+
server: { depth: 2, value: '"https://www.plantuml.com/plantuml"' },
|
|
468
|
+
format: { depth: 2, value: '"svg"' },
|
|
469
|
+
caption: { depth: 3, value: "true" },
|
|
470
|
+
fallback: { depth: 3, value: "true" }
|
|
471
|
+
});
|
|
472
|
+
var chartjs = np("@riebeckite/plugin-chartjs", "chartjs", {
|
|
473
|
+
responsive: { depth: 2, value: "true" },
|
|
474
|
+
caption: { depth: 2, value: "true" },
|
|
475
|
+
className: { depth: 3, value: '"rb-chartjs"' }
|
|
476
|
+
});
|
|
477
|
+
var vegaLite = np("@riebeckite/plugin-vega-lite", "vegaLite", {
|
|
478
|
+
caption: { depth: 2, value: "true" },
|
|
479
|
+
theme: { depth: 2, value: '"light"' },
|
|
480
|
+
renderer: { depth: 2, value: '"canvas"' },
|
|
481
|
+
actions: { depth: 3, value: "false" },
|
|
482
|
+
className: { depth: 3, value: '"rb-vega-lite"' }
|
|
483
|
+
});
|
|
484
|
+
var wavedrom = np("@riebeckite/plugin-wavedrom", "wavedrom", {
|
|
485
|
+
skin: { depth: 2, value: '"default"' },
|
|
486
|
+
caption: { depth: 2, value: "true" },
|
|
487
|
+
fallback: { depth: 3, value: "true" },
|
|
488
|
+
className: { depth: 3, value: '"rb-wavedrom"' }
|
|
489
|
+
});
|
|
490
|
+
var markmap = np("@riebeckite/plugin-markmap", "markmap", {
|
|
491
|
+
caption: { depth: 2, value: "true" },
|
|
492
|
+
height: { depth: 2, value: "320" },
|
|
493
|
+
colorFreezeLevel: { depth: 3, value: "2" }
|
|
494
|
+
});
|
|
495
|
+
var map = np("@riebeckite/plugin-map", "map", {
|
|
496
|
+
zoom: { depth: 2, value: "13" },
|
|
497
|
+
height: { depth: 2, value: "320" },
|
|
498
|
+
tileUrl: {
|
|
499
|
+
depth: 3,
|
|
500
|
+
value: JSON.stringify("https://tile.openstreetmap.org/{z}/{x}/{y}.png")
|
|
501
|
+
},
|
|
502
|
+
attribution: {
|
|
503
|
+
depth: 3,
|
|
504
|
+
value: JSON.stringify(
|
|
505
|
+
'© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
|
|
506
|
+
)
|
|
507
|
+
}
|
|
508
|
+
});
|
|
509
|
+
var marp = np("@riebeckite/plugin-marp", "marp", {
|
|
510
|
+
theme: { depth: 2, value: '"default"' },
|
|
511
|
+
allowHtml: { depth: 2, value: "true" },
|
|
512
|
+
math: { depth: 2, value: "true" },
|
|
513
|
+
caption: { depth: 3, value: "true" }
|
|
514
|
+
});
|
|
515
|
+
var qrCode = np("@riebeckite/plugin-qr-code", "qrCode", {
|
|
516
|
+
level: { depth: 2, value: '"M"' },
|
|
517
|
+
margin: { depth: 2, value: "1" },
|
|
518
|
+
width: { depth: 2, value: "160" },
|
|
519
|
+
dark: { depth: 3, value: '"#000000"' },
|
|
520
|
+
light: { depth: 3, value: '"#ffffff"' },
|
|
521
|
+
caption: { depth: 3, value: "true" },
|
|
522
|
+
className: { depth: 3, value: '"rb-qr"' }
|
|
523
|
+
});
|
|
524
|
+
var discordEmbed = np("@riebeckite/plugin-discord-embed", "discordEmbed", {
|
|
525
|
+
themeColor: { depth: 2, value: '"#5865F2"' },
|
|
526
|
+
imageAlt: { depth: 3, value: "true" },
|
|
527
|
+
imageDimensions: { depth: 3, value: "true" }
|
|
528
|
+
});
|
|
529
|
+
var excalidraw = np(
|
|
530
|
+
"@riebeckite/plugin-excalidraw",
|
|
531
|
+
"excalidraw",
|
|
532
|
+
`{ lazy: true }`
|
|
327
533
|
);
|
|
328
|
-
var
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
var
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
var bases = np("@riebeckite/plugin-bases", "bases"
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
534
|
+
var excaliBrain = np("@riebeckite/plugin-excalibrain", "excaliBrain", {
|
|
535
|
+
render: { depth: 2, value: '"build"' },
|
|
536
|
+
auto: { depth: 2, value: "true" },
|
|
537
|
+
heading: { depth: 2, value: "true" },
|
|
538
|
+
infer: { depth: 2, value: "true" },
|
|
539
|
+
siblings: { depth: 2, value: "true" },
|
|
540
|
+
headingText: { depth: 3, value: '"ExcaliBrain"' },
|
|
541
|
+
width: { depth: 3, value: "720" },
|
|
542
|
+
height: { depth: 3, value: "480" }
|
|
543
|
+
});
|
|
544
|
+
var canvas = np("@riebeckite/plugin-canvas", "canvas", {
|
|
545
|
+
language: { depth: 2, value: '"canvas"' },
|
|
546
|
+
render: { depth: 2, value: '"both"' },
|
|
547
|
+
className: { depth: 3, value: '"rb-canvas"' }
|
|
548
|
+
});
|
|
549
|
+
var bases = np("@riebeckite/plugin-bases", "bases", {
|
|
550
|
+
language: { depth: 2, value: '"base"' },
|
|
551
|
+
limit: { depth: 2, value: "100" },
|
|
552
|
+
className: { depth: 3, value: '"rb-bases"' },
|
|
553
|
+
showFallback: { depth: 3, value: "true" }
|
|
554
|
+
});
|
|
555
|
+
var dataview = np("@riebeckite/plugin-dataview", "dataviewPlugin", {
|
|
556
|
+
limit: { depth: 2, value: "50" },
|
|
557
|
+
className: { depth: 3, value: '"rb-dataview"' },
|
|
558
|
+
hideFallback: { depth: 3, value: "false" }
|
|
559
|
+
});
|
|
560
|
+
var flashcards = np("@riebeckite/plugin-flashcards", "flashcardsPlugin", {
|
|
561
|
+
shuffle: { depth: 2, value: "true" },
|
|
562
|
+
fallback: { depth: 2, value: "true" },
|
|
563
|
+
className: { depth: 3, value: '"rb-flashcards"' }
|
|
564
|
+
});
|
|
565
|
+
var kanban = np("@riebeckite/plugin-kanban", "kanban", {
|
|
566
|
+
columnMarker: { depth: 2, value: '"##"' },
|
|
567
|
+
autoDetect: { depth: 2, value: "true" },
|
|
568
|
+
className: { depth: 3, value: '"rb-kanban"' },
|
|
569
|
+
fallback: { depth: 3, value: "true" }
|
|
570
|
+
});
|
|
571
|
+
var query = np("@riebeckite/plugin-query", "queryPlugin", {
|
|
572
|
+
defaultFormat: { depth: 2, value: '"list"' },
|
|
573
|
+
defaultLimit: { depth: 2, value: "50" },
|
|
574
|
+
className: { depth: 3, value: '"rb-query"' },
|
|
575
|
+
excludeSelf: { depth: 3, value: "true" }
|
|
576
|
+
});
|
|
348
577
|
var localGraph = np("@riebeckite/plugin-local-graph", "localGraphPlugin");
|
|
349
578
|
var hoverPreview = np(
|
|
350
579
|
"@riebeckite/plugin-hover-preview",
|
|
351
|
-
"hoverPreviewPlugin"
|
|
580
|
+
"hoverPreviewPlugin",
|
|
581
|
+
{
|
|
582
|
+
delay: { depth: 2, value: "120" },
|
|
583
|
+
excerptLength: { depth: 2, value: "160" },
|
|
584
|
+
selector: { depth: 2, value: 'a[href^="/"]' },
|
|
585
|
+
includeTitles: { depth: 3, value: "true" }
|
|
586
|
+
}
|
|
352
587
|
);
|
|
353
588
|
var gardenExplorer = np(
|
|
354
589
|
"@riebeckite/plugin-garden-explorer",
|
|
355
590
|
"gardenExplorerPlugin"
|
|
356
591
|
);
|
|
357
|
-
var ux = np("@riebeckite/plugin-ux", "uxPlugin"
|
|
358
|
-
|
|
359
|
-
|
|
592
|
+
var ux = np("@riebeckite/plugin-ux", "uxPlugin", {
|
|
593
|
+
progress: { depth: 2, value: "true" },
|
|
594
|
+
backToTop: { depth: 2, value: "true" },
|
|
595
|
+
tocScrollSpy: { depth: 2, value: "true" },
|
|
596
|
+
codeCopy: { depth: 3, value: "true" }
|
|
597
|
+
});
|
|
598
|
+
var dailyNotes = np(
|
|
599
|
+
"@riebeckite/plugin-daily-notes",
|
|
600
|
+
"dailyNotesPlugin",
|
|
601
|
+
`{ source: { directory: "Daily", pathPattern: "Daily/{YYYY}-{MM}-{DD}" }, extract: { frontmatter: "daily-summary", codeBlock: "daily-snippet" }, widget: { limit: 5 } }`
|
|
602
|
+
);
|
|
603
|
+
var rename = np(
|
|
604
|
+
"@riebeckite/plugin-rename",
|
|
605
|
+
"renamePlugin",
|
|
606
|
+
`{ enabled: true, status: 308, onUnexpectedRemoval: "warning" }`
|
|
607
|
+
);
|
|
360
608
|
var textFragment = np(
|
|
361
609
|
"@riebeckite/plugin-text-fragment",
|
|
362
|
-
"textFragmentPlugin"
|
|
610
|
+
"textFragmentPlugin",
|
|
611
|
+
(context) => `{ prefix: ${JSON.stringify(`${context.variables.title}: `)} }`
|
|
612
|
+
);
|
|
613
|
+
var quality = np(
|
|
614
|
+
"@riebeckite/plugin-quality",
|
|
615
|
+
"qualityPlugin",
|
|
616
|
+
`{ a11y: { enabled: true }, ignoreRules: [] }`
|
|
617
|
+
);
|
|
618
|
+
var deploy = np(
|
|
619
|
+
"@riebeckite/plugin-deploy",
|
|
620
|
+
"deployPlugin",
|
|
621
|
+
(context) => `{ provider: "cloudflare-pages", baseUrl: ${JSON.stringify(context.variables.baseUrl)} }`
|
|
622
|
+
);
|
|
623
|
+
var diagnostics = np(
|
|
624
|
+
"@riebeckite/plugin-diagnostics",
|
|
625
|
+
"diagnostics",
|
|
626
|
+
`{ reportUnusedAssets: true, reportOrphans: true, requiredFrontmatter: ["title"] }`
|
|
363
627
|
);
|
|
364
|
-
var quality = np("@riebeckite/plugin-quality", "qualityPlugin");
|
|
365
|
-
var deploy = np("@riebeckite/plugin-deploy", "deployPlugin");
|
|
366
|
-
var diagnostics = np("@riebeckite/plugin-diagnostics", "diagnostics");
|
|
367
628
|
var defaultTheme = {
|
|
368
629
|
package: "@riebeckite/theme-default",
|
|
369
630
|
factory: "defaultTheme"
|
|
370
631
|
};
|
|
632
|
+
var showCaseTheme = {
|
|
633
|
+
package: "@riebeckite/theme-default",
|
|
634
|
+
factory: "defaultTheme",
|
|
635
|
+
options: '{ colorMode: "system", typography: "system", articleLayout: "article", userCss: [] }'
|
|
636
|
+
};
|
|
371
637
|
var minimalTheme = {
|
|
372
638
|
package: "@riebeckite/theme-minimal",
|
|
373
639
|
factory: "minimalTheme"
|
|
@@ -416,7 +682,7 @@ var rich = {
|
|
|
416
682
|
name: "rich",
|
|
417
683
|
description: "A showcasing starter: publishing and reading plugins plus guided ecosystem tour pages in seven languages.",
|
|
418
684
|
languages: [...SCAFFOLD_LANGUAGES],
|
|
419
|
-
theme:
|
|
685
|
+
theme: showCaseTheme,
|
|
420
686
|
plugins: [
|
|
421
687
|
obsidianMarkdown,
|
|
422
688
|
colorMode,
|
|
@@ -435,7 +701,7 @@ var full = {
|
|
|
435
701
|
name: "full",
|
|
436
702
|
description: "A ready blog: discovery, media, and reading plugins plus a build guide.",
|
|
437
703
|
languages: [...SCAFFOLD_LANGUAGES],
|
|
438
|
-
theme:
|
|
704
|
+
theme: showCaseTheme,
|
|
439
705
|
plugins: [
|
|
440
706
|
obsidianMarkdown,
|
|
441
707
|
colorMode,
|
|
@@ -448,8 +714,12 @@ var full = {
|
|
|
448
714
|
search,
|
|
449
715
|
backlinks,
|
|
450
716
|
relatedPosts,
|
|
717
|
+
share,
|
|
718
|
+
changelog,
|
|
719
|
+
webmention,
|
|
451
720
|
recentPosts,
|
|
452
721
|
attachment,
|
|
722
|
+
pdf,
|
|
453
723
|
media,
|
|
454
724
|
responsiveImage,
|
|
455
725
|
lightbox,
|
|
@@ -458,8 +728,10 @@ var full = {
|
|
|
458
728
|
codeAnnotations,
|
|
459
729
|
shortcodes,
|
|
460
730
|
series,
|
|
731
|
+
taxonomy,
|
|
461
732
|
autoCardLink,
|
|
462
|
-
richEmbed
|
|
733
|
+
richEmbed,
|
|
734
|
+
gallery
|
|
463
735
|
],
|
|
464
736
|
contentPages: ["index", "framework/plugins", "framework/themes", "guide"],
|
|
465
737
|
appFiles: [...BASE_APP_FILES, "index", "slug", "header", "article"],
|
|
@@ -469,7 +741,7 @@ var max = {
|
|
|
469
741
|
name: "max",
|
|
470
742
|
description: "Diagram and knowledge plugins on top of full, with showcase example pages.",
|
|
471
743
|
languages: [...SCAFFOLD_LANGUAGES],
|
|
472
|
-
theme:
|
|
744
|
+
theme: showCaseTheme,
|
|
473
745
|
plugins: [
|
|
474
746
|
obsidianMarkdown,
|
|
475
747
|
colorMode,
|
|
@@ -482,8 +754,12 @@ var max = {
|
|
|
482
754
|
search,
|
|
483
755
|
backlinks,
|
|
484
756
|
relatedPosts,
|
|
757
|
+
share,
|
|
758
|
+
changelog,
|
|
759
|
+
webmention,
|
|
485
760
|
recentPosts,
|
|
486
761
|
attachment,
|
|
762
|
+
pdf,
|
|
487
763
|
media,
|
|
488
764
|
responsiveImage,
|
|
489
765
|
lightbox,
|
|
@@ -492,8 +768,10 @@ var max = {
|
|
|
492
768
|
codeAnnotations,
|
|
493
769
|
shortcodes,
|
|
494
770
|
series,
|
|
771
|
+
taxonomy,
|
|
495
772
|
autoCardLink,
|
|
496
773
|
richEmbed,
|
|
774
|
+
gallery,
|
|
497
775
|
mermaid,
|
|
498
776
|
graphviz,
|
|
499
777
|
d2,
|
|
@@ -502,6 +780,7 @@ var max = {
|
|
|
502
780
|
vegaLite,
|
|
503
781
|
wavedrom,
|
|
504
782
|
markmap,
|
|
783
|
+
map,
|
|
505
784
|
marp,
|
|
506
785
|
qrCode,
|
|
507
786
|
discordEmbed,
|
|
@@ -532,7 +811,7 @@ var ultra = {
|
|
|
532
811
|
name: "ultra",
|
|
533
812
|
description: "The full plugin catalog and theme reference pages — everything the ecosystem offers.",
|
|
534
813
|
languages: [...SCAFFOLD_LANGUAGES],
|
|
535
|
-
theme:
|
|
814
|
+
theme: showCaseTheme,
|
|
536
815
|
plugins: [
|
|
537
816
|
obsidianMarkdown,
|
|
538
817
|
colorMode,
|
|
@@ -545,8 +824,12 @@ var ultra = {
|
|
|
545
824
|
search,
|
|
546
825
|
backlinks,
|
|
547
826
|
relatedPosts,
|
|
827
|
+
share,
|
|
828
|
+
changelog,
|
|
829
|
+
webmention,
|
|
548
830
|
recentPosts,
|
|
549
831
|
attachment,
|
|
832
|
+
pdf,
|
|
550
833
|
media,
|
|
551
834
|
responsiveImage,
|
|
552
835
|
lightbox,
|
|
@@ -555,8 +838,10 @@ var ultra = {
|
|
|
555
838
|
codeAnnotations,
|
|
556
839
|
shortcodes,
|
|
557
840
|
series,
|
|
841
|
+
taxonomy,
|
|
558
842
|
autoCardLink,
|
|
559
843
|
richEmbed,
|
|
844
|
+
gallery,
|
|
560
845
|
mermaid,
|
|
561
846
|
graphviz,
|
|
562
847
|
d2,
|
|
@@ -565,6 +850,7 @@ var ultra = {
|
|
|
565
850
|
vegaLite,
|
|
566
851
|
wavedrom,
|
|
567
852
|
markmap,
|
|
853
|
+
map,
|
|
568
854
|
marp,
|
|
569
855
|
qrCode,
|
|
570
856
|
discordEmbed,
|
|
@@ -697,8 +983,8 @@ ${initializers.map((initializer) => ` ${initializer};`).join("\n")}
|
|
|
697
983
|
}
|
|
698
984
|
|
|
699
985
|
// src/ssg_plugin.ts
|
|
700
|
-
import { defaultExtensionMap, toSSG } from "hono/ssg";
|
|
701
986
|
import { relative } from "node:path";
|
|
987
|
+
import { defaultExtensionMap, toSSG } from "hono/ssg";
|
|
702
988
|
import { createServer } from "vite";
|
|
703
989
|
var defaultEntry = "./src/index.tsx";
|
|
704
990
|
function riebeckiteSsg(options = {}) {
|
|
@@ -731,7 +1017,9 @@ function riebeckiteSsg(options = {}) {
|
|
|
731
1017
|
async generateBundle(_outputOptions, bundle) {
|
|
732
1018
|
const config = resolvedConfig;
|
|
733
1019
|
if (!config) {
|
|
734
|
-
throw new Error(
|
|
1020
|
+
throw new Error(
|
|
1021
|
+
"Riebeckite SSG could not resolve the Vite configuration."
|
|
1022
|
+
);
|
|
735
1023
|
}
|
|
736
1024
|
removeVirtualEntryChunk(bundle, resolvedVirtualId);
|
|
737
1025
|
const server2 = await createServer({
|
|
@@ -756,10 +1044,10 @@ function riebeckiteSsg(options = {}) {
|
|
|
756
1044
|
app,
|
|
757
1045
|
{
|
|
758
1046
|
writeFile: async (filePath, data) => {
|
|
759
|
-
const fileName = relative(
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
);
|
|
1047
|
+
const fileName = relative(
|
|
1048
|
+
config.build.outDir,
|
|
1049
|
+
filePath
|
|
1050
|
+
).replaceAll("\\", "/");
|
|
763
1051
|
if (fileName.endsWith(".html") && typeof data === "string") {
|
|
764
1052
|
generatedHtml.push({ path: fileName, html: data });
|
|
765
1053
|
}
|
|
@@ -779,10 +1067,7 @@ function riebeckiteSsg(options = {}) {
|
|
|
779
1067
|
}
|
|
780
1068
|
);
|
|
781
1069
|
if (!result.success) throw result.error;
|
|
782
|
-
await emitGeneratedOutputs(
|
|
783
|
-
module,
|
|
784
|
-
(asset) => this.emitFile(asset)
|
|
785
|
-
);
|
|
1070
|
+
await emitGeneratedOutputs(module, (asset) => this.emitFile(asset));
|
|
786
1071
|
inspectGeneratedHtmlPages(module, generatedHtml, {
|
|
787
1072
|
warn: (message) => this.warn(message),
|
|
788
1073
|
info: (message) => this.info(message)
|
|
@@ -1078,15 +1363,24 @@ function localizedContentFiles(variables, preset) {
|
|
|
1078
1363
|
if (page === "index") {
|
|
1079
1364
|
pushLocalized("index", (language) => indexContent(variables, language));
|
|
1080
1365
|
} else if (page === "framework/plugins") {
|
|
1081
|
-
pushLocalized(
|
|
1366
|
+
pushLocalized(
|
|
1367
|
+
"framework/plugins",
|
|
1368
|
+
(language) => pluginsContent(language)
|
|
1369
|
+
);
|
|
1082
1370
|
} else if (page === "framework/themes") {
|
|
1083
1371
|
pushLocalized("framework/themes", (language) => themesContent(language));
|
|
1084
1372
|
} else if (page === "guide") {
|
|
1085
1373
|
pushEnglishOnly("guide", guideContent);
|
|
1086
1374
|
} else if (page === "examples") {
|
|
1087
|
-
|
|
1375
|
+
pushLocalized(
|
|
1376
|
+
"examples",
|
|
1377
|
+
(language) => examplesContent(preset, language)
|
|
1378
|
+
);
|
|
1088
1379
|
} else if (page === "reference/plugins") {
|
|
1089
|
-
pushEnglishOnly(
|
|
1380
|
+
pushEnglishOnly(
|
|
1381
|
+
"reference/plugins",
|
|
1382
|
+
() => referencePluginsContent(preset, variables)
|
|
1383
|
+
);
|
|
1090
1384
|
} else if (page === "reference/themes") {
|
|
1091
1385
|
pushEnglishOnly("reference/themes", referenceThemesContent);
|
|
1092
1386
|
}
|
|
@@ -1103,7 +1397,10 @@ function heading(level, text) {
|
|
|
1103
1397
|
return `${"#".repeat(level)} ${text}`;
|
|
1104
1398
|
}
|
|
1105
1399
|
function codeBlock(language, code) {
|
|
1106
|
-
return
|
|
1400
|
+
return `\`\`\`${language}
|
|
1401
|
+
${code}
|
|
1402
|
+
\`\`\`
|
|
1403
|
+
`;
|
|
1107
1404
|
}
|
|
1108
1405
|
var INDEX = {
|
|
1109
1406
|
lead: {
|
|
@@ -1395,7 +1692,7 @@ function themesContent(language) {
|
|
|
1395
1692
|
lines.push(heading(2, read(copy.switchHeading, language)), "");
|
|
1396
1693
|
lines.push(read(copy.switchCurrent, language), "");
|
|
1397
1694
|
lines.push(read(copy.switchStep1, language), "");
|
|
1398
|
-
lines.push(codeBlock("sh", "
|
|
1695
|
+
lines.push(codeBlock("sh", "npm install @riebeckite/theme-sakura"));
|
|
1399
1696
|
lines.push(read(copy.switchStep2, language), "");
|
|
1400
1697
|
lines.push(
|
|
1401
1698
|
codeBlock(
|
|
@@ -1636,6 +1933,18 @@ var PLUGIN_CATEGORIES = [
|
|
|
1636
1933
|
fr: "Rend les croquis Excalidraw.",
|
|
1637
1934
|
ko: "Excalidraw 스케치 파일 렌더링."
|
|
1638
1935
|
}
|
|
1936
|
+
},
|
|
1937
|
+
{
|
|
1938
|
+
slug: "gallery",
|
|
1939
|
+
desc: {
|
|
1940
|
+
en: "Card grids for theme or project showcases.",
|
|
1941
|
+
ja: "テーマやプロジェクトの紹介向けカードグリッド。",
|
|
1942
|
+
"zh-CN": "用于主题或项目展示的卡片网格。",
|
|
1943
|
+
es: "Cuadrículas de tarjetas para escaparates de temas o proyectos.",
|
|
1944
|
+
de: "Kartenraster für Theme- oder Projekt-Showcases.",
|
|
1945
|
+
fr: "Grilles de cartes pour vitrines de thèmes ou de projets.",
|
|
1946
|
+
ko: "테마·프로젝트 소개용 카드 그리드."
|
|
1947
|
+
}
|
|
1639
1948
|
}
|
|
1640
1949
|
]
|
|
1641
1950
|
},
|
|
@@ -1928,7 +2237,7 @@ function pluginsContent(language) {
|
|
|
1928
2237
|
lines.push(read(copy.intro, language), "");
|
|
1929
2238
|
lines.push(heading(2, read(copy.installHeading, language)), "");
|
|
1930
2239
|
lines.push(read(copy.installStep1, language), "");
|
|
1931
|
-
lines.push(codeBlock("sh", "
|
|
2240
|
+
lines.push(codeBlock("sh", "npm install @riebeckite/plugin-mermaid"));
|
|
1932
2241
|
lines.push(read(copy.installStep2, language), "");
|
|
1933
2242
|
lines.push(
|
|
1934
2243
|
codeBlock(
|
|
@@ -1947,11 +2256,16 @@ function pluginsContent(language) {
|
|
|
1947
2256
|
)
|
|
1948
2257
|
);
|
|
1949
2258
|
lines.push(read(copy.fullList, language), "");
|
|
1950
|
-
lines.push(
|
|
2259
|
+
lines.push(
|
|
2260
|
+
`[${read(copy.fullListLabel, language)}](${PLUGIN_INDEX_URL})`,
|
|
2261
|
+
""
|
|
2262
|
+
);
|
|
1951
2263
|
for (const category of categories) {
|
|
1952
2264
|
lines.push(heading(2, read(category.title, language)), "");
|
|
1953
2265
|
lines.push(read(category.summary, language), "");
|
|
1954
|
-
lines.push(
|
|
2266
|
+
lines.push(
|
|
2267
|
+
`| ${read(copy.columnPlugin, language)} | ${read(copy.columnDescription, language)} |`
|
|
2268
|
+
);
|
|
1955
2269
|
lines.push("| --- | --- |");
|
|
1956
2270
|
for (const plugin of category.plugins) {
|
|
1957
2271
|
const packageName = `@riebeckite/plugin-${plugin.slug}`;
|
|
@@ -1984,15 +2298,14 @@ function guideContent() {
|
|
|
1984
2298
|
"",
|
|
1985
2299
|
codeBlock(
|
|
1986
2300
|
"md",
|
|
1987
|
-
["---", "publish: true", "---", "", "# Hello", "", "Body text..."].join(
|
|
2301
|
+
["---", "publish: true", "---", "", "# Hello", "", "Body text..."].join(
|
|
2302
|
+
"\n"
|
|
2303
|
+
)
|
|
1988
2304
|
),
|
|
1989
2305
|
"",
|
|
1990
2306
|
heading(2, "Run the site"),
|
|
1991
2307
|
"",
|
|
1992
|
-
codeBlock(
|
|
1993
|
-
"sh",
|
|
1994
|
-
["pnpm install", "pnpm exec riebeckite dev", "pnpm exec riebeckite build"].join("\n")
|
|
1995
|
-
),
|
|
2308
|
+
codeBlock("sh", ["npm install", "npm run dev", "npm run build"].join("\n")),
|
|
1996
2309
|
"",
|
|
1997
2310
|
heading(2, "Localize a page"),
|
|
1998
2311
|
"",
|
|
@@ -2009,64 +2322,53 @@ function guideContent() {
|
|
|
2009
2322
|
""
|
|
2010
2323
|
].join("\n");
|
|
2011
2324
|
}
|
|
2012
|
-
function
|
|
2013
|
-
return
|
|
2325
|
+
function readSummary(text, language) {
|
|
2326
|
+
return language === "ja" ? text.ja ?? text.en : text.en;
|
|
2327
|
+
}
|
|
2328
|
+
var EXAMPLES_COPY = {
|
|
2329
|
+
heading: {
|
|
2330
|
+
en: "Examples",
|
|
2331
|
+
ja: "サンプル集"
|
|
2332
|
+
},
|
|
2333
|
+
intro: {
|
|
2334
|
+
en: "A working demo of every diagram, chart, and code feature this preset ships. Fenced code blocks are turned into rendered output at build time by the diagram plugins; code blocks gain toolbars from the code plugins. Each section below is also copy-pasteable into any Markdown document.",
|
|
2335
|
+
ja: "このプリセットが含む、すべての図表・チャート・コード機能の実例です。フェンス付きコードブロックはビルド時に図表プラグインが描画し、コードブロックにはコードプラグインがツールバーを追加します。以下の各セクションは、任意の Markdown 文書にそのままコピーして使えます。"
|
|
2336
|
+
}
|
|
2337
|
+
};
|
|
2338
|
+
function examplesContent(preset, language) {
|
|
2339
|
+
const lines = [
|
|
2014
2340
|
frontmatter(),
|
|
2015
|
-
heading(1,
|
|
2016
|
-
"",
|
|
2017
|
-
"A tour of what the richer Riebeckite presets enable. Fenced code blocks",
|
|
2018
|
-
"are turned into rendered diagrams and charts at build time by the",
|
|
2019
|
-
"diagram plugins; code blocks gain toolbars from the code plugins.",
|
|
2020
|
-
"",
|
|
2021
|
-
heading(2, "Mermaid"),
|
|
2022
|
-
"",
|
|
2023
|
-
codeBlock("mermaid", "flowchart LR\n A[Note] --> B{Published?}\n B -->|yes| C[Site]\n B -->|no| D[Draft]"),
|
|
2024
|
-
"",
|
|
2025
|
-
heading(2, "D2"),
|
|
2026
|
-
"",
|
|
2027
|
-
codeBlock("d2", "site: Riebeckite\n content -> build -> deploy"),
|
|
2341
|
+
heading(1, readSummary(EXAMPLES_COPY.heading, language)),
|
|
2028
2342
|
"",
|
|
2029
|
-
|
|
2030
|
-
"",
|
|
2031
|
-
codeBlock("dot", "digraph G {\n notes -> pages;\n pages -> html;\n}"),
|
|
2032
|
-
"",
|
|
2033
|
-
heading(2, "A chart"),
|
|
2034
|
-
"",
|
|
2035
|
-
codeBlock("chartjs", "line\nlabels: Jan, Feb, Mar\nvalues: 3, 7, 5"),
|
|
2036
|
-
"",
|
|
2037
|
-
heading(2, "Code with a toolbar"),
|
|
2038
|
-
"",
|
|
2039
|
-
codeBlock(
|
|
2040
|
-
"ts",
|
|
2041
|
-
[
|
|
2042
|
-
"// Syntax highlighting, line numbers, and copy buttons",
|
|
2043
|
-
"export function hello(name: string): string {",
|
|
2044
|
-
' return "Hello, " + name + "!";',
|
|
2045
|
-
"}"
|
|
2046
|
-
].join("\n")
|
|
2047
|
-
),
|
|
2048
|
-
"",
|
|
2049
|
-
heading(2, "Callouts"),
|
|
2050
|
-
"",
|
|
2051
|
-
"> [!tip] Try it",
|
|
2052
|
-
"> Callouts from `@riebeckite/plugin-obsidian-markdown` render as styled",
|
|
2053
|
-
"> blocks. Add one with `> [!info]`, `> [!warning]`, or `> [!question]`.",
|
|
2343
|
+
readSummary(EXAMPLES_COPY.intro, language),
|
|
2054
2344
|
""
|
|
2055
|
-
]
|
|
2345
|
+
];
|
|
2346
|
+
for (const key of README_DEMO_ORDER) {
|
|
2347
|
+
const packageName = demoPackage(key);
|
|
2348
|
+
if (!hasPlugin(preset, packageName)) continue;
|
|
2349
|
+
const demo = README_DEMOS[key];
|
|
2350
|
+
lines.push(heading(2, readSummary(demo.title, language)), "");
|
|
2351
|
+
lines.push(readSummary(demo.intro, language), "");
|
|
2352
|
+
lines.push(demo.markdown, "");
|
|
2353
|
+
}
|
|
2354
|
+
return lines.join("\n");
|
|
2056
2355
|
}
|
|
2057
|
-
function referencePluginsContent(preset) {
|
|
2356
|
+
function referencePluginsContent(preset, variables) {
|
|
2058
2357
|
const lines = [frontmatter()];
|
|
2059
2358
|
lines.push(heading(1, "Plugin reference"), "");
|
|
2060
2359
|
lines.push(
|
|
2061
|
-
"Every plugin registered by this preset, with the factory
|
|
2062
|
-
"`riebeckite.config.ts`. Full documentation lives in each package
|
|
2360
|
+
"Every plugin registered by this preset, with the factory and options",
|
|
2361
|
+
"used in `riebeckite.config.ts`. Full documentation lives in each package",
|
|
2362
|
+
"README.",
|
|
2063
2363
|
""
|
|
2064
2364
|
);
|
|
2065
|
-
lines.push("| Package | Factory |");
|
|
2066
|
-
lines.push("| --- | --- |");
|
|
2365
|
+
lines.push("| Package | Factory | Options |");
|
|
2366
|
+
lines.push("| --- | --- | --- |");
|
|
2067
2367
|
for (const plugin of preset.plugins) {
|
|
2368
|
+
const options = readmePluginOptions(variables, preset, plugin);
|
|
2369
|
+
const cell = options === null ? "—" : `\`${options}\``;
|
|
2068
2370
|
lines.push(
|
|
2069
|
-
`| [\`${plugin.package}\`](${pluginReadmeUrl(plugin.package.replace(/^@riebeckite\/plugin-/, ""))}) | \`${plugin.factory}\` |`
|
|
2371
|
+
`| [\`${plugin.package}\`](${pluginReadmeUrl(plugin.package.replace(/^@riebeckite\/plugin-/, ""))}) | \`${plugin.factory}\` | ${cell} |`
|
|
2070
2372
|
);
|
|
2071
2373
|
}
|
|
2072
2374
|
lines.push("");
|
|
@@ -2096,6 +2398,9 @@ function referenceThemesContent() {
|
|
|
2096
2398
|
return lines.join("\n");
|
|
2097
2399
|
}
|
|
2098
2400
|
|
|
2401
|
+
// src/scaffold/version.ts
|
|
2402
|
+
var RIEBECKITE_VERSION = "^0.0.6";
|
|
2403
|
+
|
|
2099
2404
|
// src/scaffold/templates.ts
|
|
2100
2405
|
function siteTemplateFiles(preset, variables) {
|
|
2101
2406
|
return [
|
|
@@ -2164,7 +2469,6 @@ function appFiles(preset) {
|
|
|
2164
2469
|
...has("article") ? [{ path: "app/components/article.tsx", content: get("article") }] : []
|
|
2165
2470
|
];
|
|
2166
2471
|
}
|
|
2167
|
-
var RIEBECKITE_VERSION = "^0.0.3";
|
|
2168
2472
|
function packageJson(preset, variables) {
|
|
2169
2473
|
const dependencies = {
|
|
2170
2474
|
"@riebeckite/core": RIEBECKITE_VERSION,
|
|
@@ -2242,12 +2546,40 @@ function riebeckiteConfig(preset, variables) {
|
|
|
2242
2546
|
return `${lines.join("\n")}
|
|
2243
2547
|
`;
|
|
2244
2548
|
}
|
|
2549
|
+
var OPTION_DEPTH = {
|
|
2550
|
+
empty: 0,
|
|
2551
|
+
minimal: 0,
|
|
2552
|
+
starter: 0,
|
|
2553
|
+
rich: 1,
|
|
2554
|
+
full: 2,
|
|
2555
|
+
max: 2,
|
|
2556
|
+
ultra: 3
|
|
2557
|
+
};
|
|
2558
|
+
function optionContext(preset, variables) {
|
|
2559
|
+
return {
|
|
2560
|
+
variables,
|
|
2561
|
+
languages: preset.languages,
|
|
2562
|
+
depth: OPTION_DEPTH[preset.name]
|
|
2563
|
+
};
|
|
2564
|
+
}
|
|
2565
|
+
function renderOptionValue(value, context) {
|
|
2566
|
+
return typeof value === "function" ? value(context) : value;
|
|
2567
|
+
}
|
|
2568
|
+
function renderOptions(options, context) {
|
|
2569
|
+
if (options === void 0) return null;
|
|
2570
|
+
if (typeof options === "string") return options;
|
|
2571
|
+
if (typeof options === "function") return options(context);
|
|
2572
|
+
const fields = Object.entries(options).filter(([, field]) => field.depth <= context.depth).map(
|
|
2573
|
+
([key, field]) => `${key}: ${renderOptionValue(field.value, context)}`
|
|
2574
|
+
);
|
|
2575
|
+
return fields.length === 0 ? null : `{ ${fields.join(", ")} }`;
|
|
2576
|
+
}
|
|
2245
2577
|
function pluginExpression(plugin, preset, variables) {
|
|
2246
|
-
|
|
2247
|
-
|
|
2248
|
-
|
|
2249
|
-
|
|
2250
|
-
return
|
|
2578
|
+
const options = renderOptions(
|
|
2579
|
+
plugin.options,
|
|
2580
|
+
optionContext(preset, variables)
|
|
2581
|
+
);
|
|
2582
|
+
return options === null ? `${plugin.factory}()` : `${plugin.factory}(${options})`;
|
|
2251
2583
|
}
|
|
2252
2584
|
function viteConfig() {
|
|
2253
2585
|
const ssrExternals = [...defaultSsrExternals].map((name) => ` "${name}",`).join("\n");
|
|
@@ -2366,7 +2698,16 @@ var README_WORDS = {
|
|
|
2366
2698
|
extendingBody: "Plugins and themes are registered in `riebeckite.config.ts`. Install a package, import its factory, and add it to the `plugins` array — or point `theme` at another theme factory. See the Riebeckite repository for the full plugin and theme index.",
|
|
2367
2699
|
none: "none",
|
|
2368
2700
|
noPlugins: "no plugins",
|
|
2369
|
-
single: "single language"
|
|
2701
|
+
single: "single language",
|
|
2702
|
+
configReference: "Configuration reference",
|
|
2703
|
+
configReferenceBody: "`riebeckite.config.ts` already registers every plugin below with its full option set — the file doubles as the settings reference. Every option is documented in the plugin's package README.",
|
|
2704
|
+
factory: "Factory",
|
|
2705
|
+
options: "Options",
|
|
2706
|
+
emDash: "—",
|
|
2707
|
+
demoPages: "Try the demos",
|
|
2708
|
+
demoPagesBody: "The generated site ships content pages that exercise these features:",
|
|
2709
|
+
copyDemos: "Copy-paste demos",
|
|
2710
|
+
copyDemosBody: "Paste any of these snippets into a Markdown file under `content/` and run `npm run dev`. Each one renders through a plugin this preset registers."
|
|
2370
2711
|
},
|
|
2371
2712
|
ja: {
|
|
2372
2713
|
included: "含まれているもの",
|
|
@@ -2381,7 +2722,16 @@ var README_WORDS = {
|
|
|
2381
2722
|
extendingBody: "プラグインとテーマは `riebeckite.config.ts` で登録します。パッケージをインストールし、ファクトリを import して `plugins` 配列に追加するか、`theme` を別のテーマファクトリに変更します。全プラグイン・テーマの一覧は Riebeckite リポジトリを参照してください。",
|
|
2382
2723
|
none: "なし",
|
|
2383
2724
|
noPlugins: "プラグインなし",
|
|
2384
|
-
single: "単一言語"
|
|
2725
|
+
single: "単一言語",
|
|
2726
|
+
configReference: "設定リファレンス",
|
|
2727
|
+
configReferenceBody: "`riebeckite.config.ts` には、以下の全プラグインがあらかじめ全オプション付きで登録されています。このファイル自体を設定リファレンスとして利用できます。各オプションの詳しい説明はプラグインパッケージの README を参照してください。",
|
|
2728
|
+
factory: "ファクトリ",
|
|
2729
|
+
options: "オプション",
|
|
2730
|
+
emDash: "—",
|
|
2731
|
+
demoPages: "デモを試す",
|
|
2732
|
+
demoPagesBody: "生成されたサイトには、各機能を体験できるコンテンツページが含まれています:",
|
|
2733
|
+
copyDemos: "コピーして使えるデモ",
|
|
2734
|
+
copyDemosBody: "以下のスニペットを `content/` 配下の Markdown ファイルに貼り付けて `npm run dev` を実行してください。それぞれ、このプリセットが登録しているプラグインでレンダリングされます。"
|
|
2385
2735
|
}
|
|
2386
2736
|
};
|
|
2387
2737
|
function readme(preset, variables) {
|
|
@@ -2407,18 +2757,23 @@ function readmeEn(preset, variables) {
|
|
|
2407
2757
|
);
|
|
2408
2758
|
lines.push(`- **${words.pages}**: ${pagesLabel(preset) ?? words.none}`);
|
|
2409
2759
|
lines.push("");
|
|
2760
|
+
if (preset.readme === "rich") {
|
|
2761
|
+
lines.push(...configurationReferenceLines(preset, variables, words));
|
|
2762
|
+
}
|
|
2410
2763
|
}
|
|
2411
2764
|
lines.push(`## ${words.commands}`, "");
|
|
2412
2765
|
lines.push(
|
|
2413
2766
|
"```sh",
|
|
2414
|
-
"
|
|
2415
|
-
"
|
|
2416
|
-
"
|
|
2417
|
-
"
|
|
2767
|
+
"npm install",
|
|
2768
|
+
"npm run check",
|
|
2769
|
+
"npm run dev",
|
|
2770
|
+
"npm run build",
|
|
2418
2771
|
"```",
|
|
2419
2772
|
""
|
|
2420
2773
|
);
|
|
2421
2774
|
if (preset.readme === "rich") {
|
|
2775
|
+
lines.push(...demoPagesLines(preset, variables, words, "en"));
|
|
2776
|
+
lines.push(...copyPasteDemoLines(preset, words, "en"));
|
|
2422
2777
|
lines.push(`## ${words.localization}`, "");
|
|
2423
2778
|
lines.push(words.localizationBody, "");
|
|
2424
2779
|
lines.push(`## ${words.extending}`, "");
|
|
@@ -2450,18 +2805,23 @@ function readmeJa(preset, variables) {
|
|
|
2450
2805
|
);
|
|
2451
2806
|
lines.push(`- **${words.pages}**: ${pagesLabel(preset) ?? words.none}`);
|
|
2452
2807
|
lines.push("");
|
|
2808
|
+
if (preset.readme === "rich") {
|
|
2809
|
+
lines.push(...configurationReferenceLines(preset, variables, words));
|
|
2810
|
+
}
|
|
2453
2811
|
}
|
|
2454
2812
|
lines.push(`## ${words.commands}`, "");
|
|
2455
2813
|
lines.push(
|
|
2456
2814
|
"```sh",
|
|
2457
|
-
"
|
|
2458
|
-
"
|
|
2459
|
-
"
|
|
2460
|
-
"
|
|
2815
|
+
"npm install",
|
|
2816
|
+
"npm run check",
|
|
2817
|
+
"npm run dev",
|
|
2818
|
+
"npm run build",
|
|
2461
2819
|
"```",
|
|
2462
2820
|
""
|
|
2463
2821
|
);
|
|
2464
2822
|
if (preset.readme === "rich") {
|
|
2823
|
+
lines.push(...demoPagesLines(preset, variables, words, "ja"));
|
|
2824
|
+
lines.push(...copyPasteDemoLines(preset, words, "ja"));
|
|
2465
2825
|
lines.push(`## ${words.localization}`, "");
|
|
2466
2826
|
lines.push(words.localizationBody, "");
|
|
2467
2827
|
lines.push(`## ${words.extending}`, "");
|
|
@@ -2484,6 +2844,435 @@ function pagesLabel(preset) {
|
|
|
2484
2844
|
if (preset.contentPages.length === 0) return null;
|
|
2485
2845
|
return preset.contentPages.map((page) => `/${page}`).join(", ");
|
|
2486
2846
|
}
|
|
2847
|
+
var README_DEMOS = {
|
|
2848
|
+
"@riebeckite/plugin-obsidian-markdown/callout": {
|
|
2849
|
+
title: { en: "Callouts", ja: "コールアウト" },
|
|
2850
|
+
intro: {
|
|
2851
|
+
en: "A block quote with a `[!type]` marker becomes a styled callout panel.",
|
|
2852
|
+
ja: "`[!type]` マーカー付きブロック引用をスタイル付きパネルに変換します。"
|
|
2853
|
+
},
|
|
2854
|
+
markdown: [
|
|
2855
|
+
"> [!tip] Try it",
|
|
2856
|
+
"> A callout is a block quote with a `[!type]` marker. `[!info]`,",
|
|
2857
|
+
"> `[!warning]`, and `[!question]` render the same way."
|
|
2858
|
+
].join("\n")
|
|
2859
|
+
},
|
|
2860
|
+
"@riebeckite/plugin-obsidian-markdown/wikilinks": {
|
|
2861
|
+
title: { en: "Wikilinks and embeds", ja: "ウィキリンクと埋め込み" },
|
|
2862
|
+
intro: {
|
|
2863
|
+
en: "`[[...]]` links and `![[...]]` embeds resolve to real permalinks from the content manifest.",
|
|
2864
|
+
ja: "`[[...]]` リンクと `![[...]]` 埋め込みは、コンテンツマニフェストから実際のパーマリンクへ解決されます。"
|
|
2865
|
+
},
|
|
2866
|
+
markdown: "Read the [[guide]] and [[index]] pages. `![[index]]` embeds the note inline."
|
|
2867
|
+
},
|
|
2868
|
+
"@riebeckite/plugin-code-enhance": {
|
|
2869
|
+
title: { en: "Code with a toolbar", ja: "ツールバー付きコード" },
|
|
2870
|
+
intro: {
|
|
2871
|
+
en: "Code fences get line numbers, a filename bar, line highlighting, and a copy button.",
|
|
2872
|
+
ja: "コードフェンスに行番号・ファイル名バー・行ハイライト・コピーボタンが付きます。"
|
|
2873
|
+
},
|
|
2874
|
+
markdown: fence(
|
|
2875
|
+
"ts",
|
|
2876
|
+
[
|
|
2877
|
+
"// Syntax highlighting, line numbers, and a copy button",
|
|
2878
|
+
"export function hello(name: string): string {",
|
|
2879
|
+
' return "Hello, " + name + "!";',
|
|
2880
|
+
"}"
|
|
2881
|
+
].join("\n")
|
|
2882
|
+
)
|
|
2883
|
+
},
|
|
2884
|
+
"@riebeckite/plugin-code-tabs": {
|
|
2885
|
+
title: { en: "Code tabs", ja: "タブ切り替えコード" },
|
|
2886
|
+
intro: {
|
|
2887
|
+
en: 'Adjacent `tab="..."` fences become one tabbed group; `syncTabs: true` keeps the same label in sync across groups.',
|
|
2888
|
+
ja: '隣り合う `tab="..."` フェンスがタブグループになります。`syncTabs: true` でページ内の同じラベルを同期できます。'
|
|
2889
|
+
},
|
|
2890
|
+
markdown: [
|
|
2891
|
+
fence('ts tab="React"', 'const greeting = "Hello from React";'),
|
|
2892
|
+
fence('js tab="Vanilla"', 'console.log("Hello from JavaScript");')
|
|
2893
|
+
].join("\n")
|
|
2894
|
+
},
|
|
2895
|
+
"@riebeckite/plugin-mermaid": {
|
|
2896
|
+
title: { en: "Mermaid", ja: "Mermaid" },
|
|
2897
|
+
intro: {
|
|
2898
|
+
en: "A `mermaid` fence becomes a rendered diagram at build time.",
|
|
2899
|
+
ja: "`mermaid` フェンスはビルド時にレンダリングされた図になります。"
|
|
2900
|
+
},
|
|
2901
|
+
markdown: fence(
|
|
2902
|
+
"mermaid",
|
|
2903
|
+
[
|
|
2904
|
+
"flowchart LR",
|
|
2905
|
+
" A[Note] --> B{Published?}",
|
|
2906
|
+
" B -->|yes| C[Site]",
|
|
2907
|
+
" B -->|no| D[Draft]"
|
|
2908
|
+
].join("\n")
|
|
2909
|
+
)
|
|
2910
|
+
},
|
|
2911
|
+
"@riebeckite/plugin-d2": {
|
|
2912
|
+
title: { en: "D2", ja: "D2" },
|
|
2913
|
+
intro: {
|
|
2914
|
+
en: "A `d2` fence is compiled into an SVG diagram.",
|
|
2915
|
+
ja: "`d2` フェンスが SVG 図にコンパイルされます。"
|
|
2916
|
+
},
|
|
2917
|
+
markdown: fence("d2", "site: Riebeckite\n content -> build -> deploy")
|
|
2918
|
+
},
|
|
2919
|
+
"@riebeckite/plugin-graphviz": {
|
|
2920
|
+
title: { en: "Graphviz / DOT", ja: "Graphviz / DOT" },
|
|
2921
|
+
intro: {
|
|
2922
|
+
en: "A `dot` fence is rendered with a configurable engine (here `dot`).",
|
|
2923
|
+
ja: "`dot` フェンスが指定のエンジン(ここでは `dot`)でレンダリングされます。"
|
|
2924
|
+
},
|
|
2925
|
+
markdown: fence(
|
|
2926
|
+
"dot",
|
|
2927
|
+
"digraph G {\n notes -> pages;\n pages -> html;\n}"
|
|
2928
|
+
)
|
|
2929
|
+
},
|
|
2930
|
+
"@riebeckite/plugin-chartjs": {
|
|
2931
|
+
title: { en: "Chart.js", ja: "Chart.js" },
|
|
2932
|
+
intro: {
|
|
2933
|
+
en: "A `chart` JSON fence renders with Chart.js; a caption comes from the block `title`.",
|
|
2934
|
+
ja: "`chart` JSON フェンスが Chart.js で描画されます。キャプションはブロックの `title` から取られます。"
|
|
2935
|
+
},
|
|
2936
|
+
markdown: fence(
|
|
2937
|
+
"chart",
|
|
2938
|
+
`{
|
|
2939
|
+
"type": "bar",
|
|
2940
|
+
"data": {
|
|
2941
|
+
"labels": ["Mon", "Tue", "Wed"],
|
|
2942
|
+
"datasets": [{ "label": "Visits", "data": [12, 19, 8] }]
|
|
2943
|
+
}
|
|
2944
|
+
}`
|
|
2945
|
+
)
|
|
2946
|
+
},
|
|
2947
|
+
"@riebeckite/plugin-vega-lite": {
|
|
2948
|
+
title: { en: "Vega-Lite", ja: "Vega-Lite" },
|
|
2949
|
+
intro: {
|
|
2950
|
+
en: "A `vega-lite` JSON specification becomes a Vega chart.",
|
|
2951
|
+
ja: "`vega-lite` の JSON 仕様が Vega チャートになります。"
|
|
2952
|
+
},
|
|
2953
|
+
markdown: fence(
|
|
2954
|
+
"vega-lite",
|
|
2955
|
+
`{
|
|
2956
|
+
"title": "Revenue",
|
|
2957
|
+
"data": {
|
|
2958
|
+
"values": [
|
|
2959
|
+
{ "category": "A", "value": 28 },
|
|
2960
|
+
{ "category": "B", "value": 55 }
|
|
2961
|
+
]
|
|
2962
|
+
},
|
|
2963
|
+
"mark": "bar",
|
|
2964
|
+
"encoding": {
|
|
2965
|
+
"x": { "field": "category", "type": "nominal" },
|
|
2966
|
+
"y": { "field": "value", "type": "quantitative" }
|
|
2967
|
+
}
|
|
2968
|
+
}`
|
|
2969
|
+
)
|
|
2970
|
+
},
|
|
2971
|
+
"@riebeckite/plugin-wavedrom": {
|
|
2972
|
+
title: { en: "WaveDrom", ja: "WaveDrom" },
|
|
2973
|
+
intro: {
|
|
2974
|
+
en: "A `wavedrom` JSON fence becomes a digital timing diagram.",
|
|
2975
|
+
ja: "`wavedrom` JSON フェンスがデジタルタイミング図になります。"
|
|
2976
|
+
},
|
|
2977
|
+
markdown: fence(
|
|
2978
|
+
"wavedrom",
|
|
2979
|
+
`{
|
|
2980
|
+
"signal": [
|
|
2981
|
+
{ "name": "clk", "wave": "p......" },
|
|
2982
|
+
{ "name": "bus", "wave": "x.34.5x", "data": "head body tail" }
|
|
2983
|
+
]
|
|
2984
|
+
}`
|
|
2985
|
+
)
|
|
2986
|
+
},
|
|
2987
|
+
"@riebeckite/plugin-markmap": {
|
|
2988
|
+
title: { en: "Markmap", ja: "Markmap" },
|
|
2989
|
+
intro: {
|
|
2990
|
+
en: "A `markmap` fence turns its heading outline into an interactive mind map.",
|
|
2991
|
+
ja: "`markmap` フェンスの見出し構成がインタラクティブなマインドマップになります。"
|
|
2992
|
+
},
|
|
2993
|
+
markdown: fence(
|
|
2994
|
+
"markmap",
|
|
2995
|
+
[
|
|
2996
|
+
"# Project",
|
|
2997
|
+
"",
|
|
2998
|
+
"## Design",
|
|
2999
|
+
"",
|
|
3000
|
+
"### Notation",
|
|
3001
|
+
"### Rendering",
|
|
3002
|
+
"",
|
|
3003
|
+
"## Delivery"
|
|
3004
|
+
].join("\n")
|
|
3005
|
+
)
|
|
3006
|
+
},
|
|
3007
|
+
"@riebeckite/plugin-map": {
|
|
3008
|
+
title: { en: "Maps", ja: "地図" },
|
|
3009
|
+
intro: {
|
|
3010
|
+
en: "A `map` fence embeds an OpenStreetMap: a static fallback (coordinates and links) first, upgraded to an interactive map when JavaScript is available.",
|
|
3011
|
+
ja: "`map` フェンスが OpenStreetMap を埋め込みます。まず静的なフォールバック(座標とリンク)を表示し、JavaScript がある場合はインタラクティブな地図に拡張します。"
|
|
3012
|
+
},
|
|
3013
|
+
markdown: fence(
|
|
3014
|
+
"map",
|
|
3015
|
+
[
|
|
3016
|
+
"center: 35.6812, 139.7671",
|
|
3017
|
+
"zoom: 13",
|
|
3018
|
+
"label: Tokyo Station",
|
|
3019
|
+
"markers:",
|
|
3020
|
+
" - 35.6812, 139.7671 | Tokyo Station",
|
|
3021
|
+
" - 35.6586, 139.7454 | Tokyo Tower"
|
|
3022
|
+
].join("\n")
|
|
3023
|
+
)
|
|
3024
|
+
},
|
|
3025
|
+
"@riebeckite/plugin-marp": {
|
|
3026
|
+
title: { en: "Marp slides", ja: "Marp スライド" },
|
|
3027
|
+
intro: {
|
|
3028
|
+
en: "A `marp` fence renders slides, separated by `---`.",
|
|
3029
|
+
ja: "`marp` フェンスがスライドとして描画されます。スライドは `---` で区切ります。"
|
|
3030
|
+
},
|
|
3031
|
+
markdown: fence(
|
|
3032
|
+
'marp title="Intro deck"',
|
|
3033
|
+
["# First slide", "", "- a bullet", "", "---", "", "# Second slide"].join(
|
|
3034
|
+
"\n"
|
|
3035
|
+
)
|
|
3036
|
+
)
|
|
3037
|
+
},
|
|
3038
|
+
"@riebeckite/plugin-qr-code": {
|
|
3039
|
+
title: { en: "QR codes", ja: "QR コード" },
|
|
3040
|
+
intro: {
|
|
3041
|
+
en: "A `qr` fence becomes an inline SVG QR code, encoded entirely at build time.",
|
|
3042
|
+
ja: "`qr` フェンスがインライン SVG の QR コードになります(ビルド時に全てエンコードされます)。"
|
|
3043
|
+
},
|
|
3044
|
+
markdown: fence("qr", "# caption: Project page\nhttps://example.com/")
|
|
3045
|
+
},
|
|
3046
|
+
"@riebeckite/plugin-rich-embed": {
|
|
3047
|
+
title: { en: "Rich embeds", ja: "リッチ埋め込み" },
|
|
3048
|
+
intro: {
|
|
3049
|
+
en: "An `embed` fence turns a URL into a YouTube, Vimeo, Spotify, CodePen, or Gist embed.",
|
|
3050
|
+
ja: "`embed` フェンスの URL が YouTube・Vimeo・Spotify・CodePen・Gist の埋め込みになります。"
|
|
3051
|
+
},
|
|
3052
|
+
markdown: fence(
|
|
3053
|
+
"embed",
|
|
3054
|
+
[
|
|
3055
|
+
"https://www.youtube.com/watch?v=dQw4w9WgXcQ",
|
|
3056
|
+
"title: Demo video",
|
|
3057
|
+
"caption: A short caption",
|
|
3058
|
+
"aspect: 16/9"
|
|
3059
|
+
].join("\n")
|
|
3060
|
+
)
|
|
3061
|
+
},
|
|
3062
|
+
"@riebeckite/plugin-gallery": {
|
|
3063
|
+
title: { en: "Gallery cards", ja: "ギャラリーカード" },
|
|
3064
|
+
intro: {
|
|
3065
|
+
en: "A `gallery` YAML fence renders a responsive grid of cards — handy for theme or project showcases.",
|
|
3066
|
+
ja: "`gallery` の YAML フェンスがレスポンシブなカードグリッドを描画します。テーマやプロジェクトの紹介に便利です。"
|
|
3067
|
+
},
|
|
3068
|
+
markdown: fence(
|
|
3069
|
+
"gallery",
|
|
3070
|
+
[
|
|
3071
|
+
"columns: 3",
|
|
3072
|
+
"items:",
|
|
3073
|
+
" - title: Default",
|
|
3074
|
+
" description: A clean, typographic theme.",
|
|
3075
|
+
" meta: v0.0.5",
|
|
3076
|
+
" href: https://example.com/themes/default/",
|
|
3077
|
+
" - title: Minimal",
|
|
3078
|
+
" description: Stripped back to the essentials.",
|
|
3079
|
+
" meta: v0.0.5",
|
|
3080
|
+
" href: https://example.com/themes/minimal/",
|
|
3081
|
+
" - title: Gruvbox",
|
|
3082
|
+
" description: A warm, high-contrast palette.",
|
|
3083
|
+
" meta: v0.0.5",
|
|
3084
|
+
" href: https://example.com/themes/gruvbox/"
|
|
3085
|
+
].join("\n")
|
|
3086
|
+
)
|
|
3087
|
+
},
|
|
3088
|
+
"@riebeckite/plugin-dataview": {
|
|
3089
|
+
title: { en: "Dataview", ja: "Dataview" },
|
|
3090
|
+
intro: {
|
|
3091
|
+
en: "A `dataview` query renders a table of notes from the manifest.",
|
|
3092
|
+
ja: "`dataview` クエリがマニフェストからノート一覧を描画します。"
|
|
3093
|
+
},
|
|
3094
|
+
markdown: fence(
|
|
3095
|
+
"dataview",
|
|
3096
|
+
[
|
|
3097
|
+
'TABLE file.name AS "Name", status',
|
|
3098
|
+
"FROM #project",
|
|
3099
|
+
'WHERE status = "active"',
|
|
3100
|
+
"SORT file.name asc",
|
|
3101
|
+
"LIMIT 10"
|
|
3102
|
+
].join("\n")
|
|
3103
|
+
)
|
|
3104
|
+
},
|
|
3105
|
+
"@riebeckite/plugin-query": {
|
|
3106
|
+
title: { en: "Query", ja: "Query" },
|
|
3107
|
+
intro: {
|
|
3108
|
+
en: "A `query` fence is YAML that filters and sorts entries from the manifest.",
|
|
3109
|
+
ja: "`query` フェンスの YAML でマニフェストのエントリを絞り込み・並べ替えできます。"
|
|
3110
|
+
},
|
|
3111
|
+
markdown: fence(
|
|
3112
|
+
"query",
|
|
3113
|
+
[
|
|
3114
|
+
"filter:",
|
|
3115
|
+
" tags:",
|
|
3116
|
+
" any: [diary]",
|
|
3117
|
+
"sort:",
|
|
3118
|
+
" field: date",
|
|
3119
|
+
" order: desc",
|
|
3120
|
+
"limit: 5"
|
|
3121
|
+
].join("\n")
|
|
3122
|
+
)
|
|
3123
|
+
},
|
|
3124
|
+
"@riebeckite/plugin-bases": {
|
|
3125
|
+
title: { en: "Base views", ja: "Base ビュー" },
|
|
3126
|
+
intro: {
|
|
3127
|
+
en: "A `base` YAML fence renders a Base table view.",
|
|
3128
|
+
ja: "`base` YAML フェンスが Base のテーブルビューを描画します。"
|
|
3129
|
+
},
|
|
3130
|
+
markdown: fence(
|
|
3131
|
+
"base",
|
|
3132
|
+
[
|
|
3133
|
+
"filters:",
|
|
3134
|
+
" and:",
|
|
3135
|
+
' - file.hasTag("featured")',
|
|
3136
|
+
"properties:",
|
|
3137
|
+
" file.name:",
|
|
3138
|
+
" displayName: Title",
|
|
3139
|
+
"views:",
|
|
3140
|
+
" - type: table",
|
|
3141
|
+
" name: Featured",
|
|
3142
|
+
" limit: 10"
|
|
3143
|
+
].join("\n")
|
|
3144
|
+
)
|
|
3145
|
+
},
|
|
3146
|
+
"@riebeckite/plugin-kanban": {
|
|
3147
|
+
title: { en: "Kanban boards", ja: "カンバンボード" },
|
|
3148
|
+
intro: {
|
|
3149
|
+
en: "A note whose body is `##` columns of task lists becomes a board; `#tags` and `[[wikilinks]]` work inside cards.",
|
|
3150
|
+
ja: "本文が `##` 列とタスクリストでできたノートはボードになります。カード内では `#タグ` や `[[ウィキリンク]]` も使えます。"
|
|
3151
|
+
},
|
|
3152
|
+
markdown: fence(
|
|
3153
|
+
"md",
|
|
3154
|
+
[
|
|
3155
|
+
"## Backlog",
|
|
3156
|
+
"",
|
|
3157
|
+
"- [ ] Draft the release notes",
|
|
3158
|
+
"- [ ] Link to [[index]]",
|
|
3159
|
+
"",
|
|
3160
|
+
"## Done",
|
|
3161
|
+
"",
|
|
3162
|
+
"- [x] Publish the fixture"
|
|
3163
|
+
].join("\n")
|
|
3164
|
+
)
|
|
3165
|
+
}
|
|
3166
|
+
};
|
|
3167
|
+
var README_PAGE_LINKS = {
|
|
3168
|
+
"framework/plugins": { en: "Plugin tour", ja: "プラグインツアー" },
|
|
3169
|
+
"framework/themes": { en: "Theme tour", ja: "テーマツアー" },
|
|
3170
|
+
guide: { en: "Getting-started guide", ja: "はじめにガイド" },
|
|
3171
|
+
examples: { en: "Examples", ja: "サンプル集" },
|
|
3172
|
+
"reference/plugins": { en: "Plugin reference", ja: "プラグインリファレンス" },
|
|
3173
|
+
"reference/themes": { en: "Theme reference", ja: "テーマリファレンス" }
|
|
3174
|
+
};
|
|
3175
|
+
var ENGLISH_ONLY_PAGES = /* @__PURE__ */ new Set([
|
|
3176
|
+
"guide",
|
|
3177
|
+
"reference/plugins",
|
|
3178
|
+
"reference/themes"
|
|
3179
|
+
]);
|
|
3180
|
+
function fence(language, body) {
|
|
3181
|
+
const tick = "```";
|
|
3182
|
+
return `${tick}${language}
|
|
3183
|
+
${body}
|
|
3184
|
+
${tick}`;
|
|
3185
|
+
}
|
|
3186
|
+
function hasPlugin(preset, packageName) {
|
|
3187
|
+
return preset.plugins.some((plugin) => plugin.package === packageName);
|
|
3188
|
+
}
|
|
3189
|
+
function demoPackage(key) {
|
|
3190
|
+
return key.split("/", 2).join("/");
|
|
3191
|
+
}
|
|
3192
|
+
function readmePluginOptions(variables, preset, plugin) {
|
|
3193
|
+
return renderOptions(plugin.options, optionContext(preset, variables));
|
|
3194
|
+
}
|
|
3195
|
+
function configurationReferenceLines(preset, variables, words) {
|
|
3196
|
+
const lines = [
|
|
3197
|
+
`## ${words.configReference}`,
|
|
3198
|
+
"",
|
|
3199
|
+
words.configReferenceBody,
|
|
3200
|
+
""
|
|
3201
|
+
];
|
|
3202
|
+
if (preset.theme) {
|
|
3203
|
+
const themeCall = preset.theme.options ? `${preset.theme.factory}(${preset.theme.options})` : `${preset.theme.factory}()`;
|
|
3204
|
+
lines.push(`- **${words.theme}**: \`${themeCall}\``, "");
|
|
3205
|
+
}
|
|
3206
|
+
lines.push(
|
|
3207
|
+
`| Package | ${words.factory} | ${words.options} |`,
|
|
3208
|
+
"| --- | --- | --- |"
|
|
3209
|
+
);
|
|
3210
|
+
for (const plugin of preset.plugins) {
|
|
3211
|
+
const options = readmePluginOptions(variables, preset, plugin);
|
|
3212
|
+
const cell = options === null ? words.emDash : `\`${options}\``;
|
|
3213
|
+
lines.push(`| \`${plugin.package}\` | \`${plugin.factory}\` | ${cell} |`);
|
|
3214
|
+
}
|
|
3215
|
+
lines.push("");
|
|
3216
|
+
return lines;
|
|
3217
|
+
}
|
|
3218
|
+
function demoPagesLines(preset, variables, words, language) {
|
|
3219
|
+
const lines = [
|
|
3220
|
+
`## ${words.demoPages}`,
|
|
3221
|
+
"",
|
|
3222
|
+
words.demoPagesBody,
|
|
3223
|
+
""
|
|
3224
|
+
];
|
|
3225
|
+
const defaultLang = defaultLanguageForLocale(variables.locale);
|
|
3226
|
+
const pages = preset.contentPages.filter((page) => page !== "index");
|
|
3227
|
+
for (const page of pages) {
|
|
3228
|
+
const label = README_PAGE_LINKS[page]?.[language] ?? `/${page}/`;
|
|
3229
|
+
const suffix = ENGLISH_ONLY_PAGES.has(page) && defaultLang !== "en" ? ".en" : "";
|
|
3230
|
+
const source = `content/${page}${suffix}.md`;
|
|
3231
|
+
const url = `/${page}/`;
|
|
3232
|
+
lines.push(`- [**${label}**](${source}) — live at [\`${url}\`](${url})`);
|
|
3233
|
+
}
|
|
3234
|
+
lines.push("");
|
|
3235
|
+
return lines;
|
|
3236
|
+
}
|
|
3237
|
+
var README_DEMO_ORDER = [
|
|
3238
|
+
"@riebeckite/plugin-obsidian-markdown/callout",
|
|
3239
|
+
"@riebeckite/plugin-obsidian-markdown/wikilinks",
|
|
3240
|
+
"@riebeckite/plugin-code-enhance",
|
|
3241
|
+
"@riebeckite/plugin-code-tabs",
|
|
3242
|
+
"@riebeckite/plugin-mermaid",
|
|
3243
|
+
"@riebeckite/plugin-d2",
|
|
3244
|
+
"@riebeckite/plugin-graphviz",
|
|
3245
|
+
"@riebeckite/plugin-chartjs",
|
|
3246
|
+
"@riebeckite/plugin-vega-lite",
|
|
3247
|
+
"@riebeckite/plugin-wavedrom",
|
|
3248
|
+
"@riebeckite/plugin-markmap",
|
|
3249
|
+
"@riebeckite/plugin-map",
|
|
3250
|
+
"@riebeckite/plugin-marp",
|
|
3251
|
+
"@riebeckite/plugin-qr-code",
|
|
3252
|
+
"@riebeckite/plugin-rich-embed",
|
|
3253
|
+
"@riebeckite/plugin-gallery",
|
|
3254
|
+
"@riebeckite/plugin-dataview",
|
|
3255
|
+
"@riebeckite/plugin-query",
|
|
3256
|
+
"@riebeckite/plugin-bases",
|
|
3257
|
+
"@riebeckite/plugin-kanban"
|
|
3258
|
+
];
|
|
3259
|
+
function copyPasteDemoLines(preset, words, language) {
|
|
3260
|
+
const lines = [
|
|
3261
|
+
`## ${words.copyDemos}`,
|
|
3262
|
+
"",
|
|
3263
|
+
words.copyDemosBody,
|
|
3264
|
+
""
|
|
3265
|
+
];
|
|
3266
|
+
for (const key of README_DEMO_ORDER) {
|
|
3267
|
+
const packageName = demoPackage(key);
|
|
3268
|
+
if (!hasPlugin(preset, packageName)) continue;
|
|
3269
|
+
const demo = README_DEMOS[key];
|
|
3270
|
+
lines.push(`### ${demo.title[language]}`, "");
|
|
3271
|
+
lines.push(demo.intro[language], "");
|
|
3272
|
+
lines.push(demo.markdown, "");
|
|
3273
|
+
}
|
|
3274
|
+
return lines;
|
|
3275
|
+
}
|
|
2487
3276
|
function server() {
|
|
2488
3277
|
return `import { mountRiebeckiteEndpoints } from "@riebeckite/honox/server";
|
|
2489
3278
|
import { createApp } from "honox/server";
|
|
@@ -2497,6 +3286,7 @@ const app = createApp({
|
|
|
2497
3286
|
});
|
|
2498
3287
|
|
|
2499
3288
|
export default app;
|
|
3289
|
+
export { config, content };
|
|
2500
3290
|
`;
|
|
2501
3291
|
}
|
|
2502
3292
|
function client() {
|
|
@@ -2931,6 +3721,19 @@ function normalizePackageName(value) {
|
|
|
2931
3721
|
function isNotFoundError(error) {
|
|
2932
3722
|
return typeof error === "object" && error !== null && "code" in error && error.code === "ENOENT";
|
|
2933
3723
|
}
|
|
3724
|
+
|
|
3725
|
+
// src/scaffold/next-steps.ts
|
|
3726
|
+
function formatScaffoldNextSteps(relativeDirectory) {
|
|
3727
|
+
const lines = ["Next steps:"];
|
|
3728
|
+
if (relativeDirectory !== ".") {
|
|
3729
|
+
lines.push(` cd ${relativeDirectory}`);
|
|
3730
|
+
}
|
|
3731
|
+
lines.push(" npm install");
|
|
3732
|
+
lines.push(" npm run check");
|
|
3733
|
+
lines.push(" npm run dev");
|
|
3734
|
+
lines.push(" npm run build");
|
|
3735
|
+
return lines.join("\n");
|
|
3736
|
+
}
|
|
2934
3737
|
export {
|
|
2935
3738
|
SCAFFOLD_DEFAULT_PRESET,
|
|
2936
3739
|
SCAFFOLD_PRESET_NAMES,
|
|
@@ -2939,6 +3742,7 @@ export {
|
|
|
2939
3742
|
createRiebeckiteSsg,
|
|
2940
3743
|
defaultSsgEntry,
|
|
2941
3744
|
defaultSsrExternals,
|
|
3745
|
+
formatScaffoldNextSteps,
|
|
2942
3746
|
isScaffoldPresetName,
|
|
2943
3747
|
loadRiebeckiteConfig,
|
|
2944
3748
|
replaceHonoxIslandDependencyPlugin,
|