create-riebeckite 0.0.30 → 0.0.31

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/src/index.js CHANGED
@@ -298,7 +298,10 @@ var seo = np("@riebeckite/plugin-seo", "seo", {
298
298
  var toc = np("@riebeckite/plugin-toc", "tocPlugin");
299
299
  var properties = np("@riebeckite/plugin-properties", "properties", {
300
300
  include: { depth: 2, value: '["created", "modified", "tags", "status"]' },
301
- order: { depth: 2, value: '["created", "modified", "tags", "status"]' }
301
+ fields: {
302
+ depth: 2,
303
+ value: '{ created: { type: "date", format: "yyyy-MM-dd" }, modified: { type: "date", format: "yyyy-MM-dd" }, tags: { type: "tags", variant: "chips" }, status: { type: "badge", variants: { active: "success", draft: "warning", archived: "danger" } } }'
304
+ }
302
305
  });
303
306
  var alias = np("@riebeckite/plugin-alias", "aliasPlugin", `{ status: 308 }`);
304
307
  var codeEnhance = np("@riebeckite/plugin-code-enhance", "codeEnhance", {
@@ -431,12 +434,7 @@ var gallery = np("@riebeckite/plugin-gallery", "gallery", {
431
434
  aspect: { depth: 2, value: '"4/3"' },
432
435
  language: { depth: 3, value: '"gallery"' }
433
436
  });
434
- var mermaid = np("@riebeckite/plugin-mermaid", "mermaid", {
435
- render: { depth: 2, value: '"build"' },
436
- theme: { depth: 2, value: '{ light: "default", dark: "dark" }' },
437
- caption: { depth: 3, value: "true" },
438
- fallback: { depth: 3, value: "true" }
439
- });
437
+ var mermaidPele = np("@riebeckite/plugin-mermaid-pele", "mermaidPele");
440
438
  var graphviz = np("@riebeckite/plugin-graphviz", "graphviz", {
441
439
  render: { depth: 2, value: '"build"' },
442
440
  engine: { depth: 2, value: '"dot"' },
@@ -708,7 +706,7 @@ var showcase = {
708
706
  autoCardLink,
709
707
  richEmbed,
710
708
  gallery,
711
- mermaid,
709
+ mermaidPele,
712
710
  graphviz,
713
711
  d2,
714
712
  plantuml,
@@ -866,6 +864,7 @@ function parseArguments(arguments_) {
866
864
  let utilities;
867
865
  let listPresets = false;
868
866
  let githubActions = false;
867
+ let cloudflareWorkers = false;
869
868
  let contentRepository;
870
869
  let siteRepository;
871
870
  for (let index = 0; index < arguments_.length; index += 1) {
@@ -882,6 +881,10 @@ function parseArguments(arguments_) {
882
881
  githubActions = true;
883
882
  continue;
884
883
  }
884
+ if (argument === "--cloudflare-workers") {
885
+ cloudflareWorkers = true;
886
+ continue;
887
+ }
885
888
  if (argument === "--content-repository" || argument === "--site-repository") {
886
889
  const value = arguments_[index + 1];
887
890
  if (value === void 0 || value.startsWith("-")) {
@@ -919,7 +922,7 @@ function parseArguments(arguments_) {
919
922
  }
920
923
  if (directory !== void 0) {
921
924
  throw new Error(
922
- "Usage: create-riebeckite [directory] [--preset <name>] [--utilities <names>] [--github-actions] [--content-repository <owner/repository>] [--site-repository <owner/repository>] [--force]"
925
+ "Usage: create-riebeckite [directory] [--preset <name>] [--utilities <names>] [--github-actions | --cloudflare-workers] [--content-repository <owner/repository>] [--site-repository <owner/repository>] [--force]"
923
926
  );
924
927
  }
925
928
  directory = argument;
@@ -932,6 +935,7 @@ function parseArguments(arguments_) {
932
935
  listPresets,
933
936
  deployment: scaffoldDeploymentFromFlags({
934
937
  githubActions,
938
+ cloudflareWorkers,
935
939
  contentRepository,
936
940
  siteRepository
937
941
  })
@@ -946,7 +950,14 @@ function printPresets() {
946
950
  }
947
951
 
948
952
  // src/interactive.ts
949
- import { isCancel, log, multiselect, select, text } from "@clack/prompts";
953
+ import {
954
+ confirm,
955
+ isCancel,
956
+ log,
957
+ multiselect,
958
+ select,
959
+ text
960
+ } from "@clack/prompts";
950
961
  var DEFAULT_DIRECTORY = "my-riebeckite-site";
951
962
  var DEFAULT_INTERACTIVE_DEPLOYMENT = "none";
952
963
  function interactiveAnswersToOptions(answers) {
@@ -996,7 +1007,12 @@ async function promptInteractiveAnswers() {
996
1007
  }))
997
1008
  });
998
1009
  if (isCancel(preset)) return null;
999
- const utilities = await multiselect({
1010
+ const customize = await confirm({
1011
+ message: "Customize extra project files?",
1012
+ initialValue: false
1013
+ });
1014
+ if (isCancel(customize)) return null;
1015
+ const utilities = customize ? await multiselect({
1000
1016
  message: "Extra project files",
1001
1017
  options: SCAFFOLD_UTILITIES.map(({ name, label, description }) => ({
1002
1018
  value: name,
@@ -1005,7 +1021,7 @@ async function promptInteractiveAnswers() {
1005
1021
  })),
1006
1022
  initialValues: [...SCAFFOLD_DEFAULT_UTILITIES],
1007
1023
  required: false
1008
- });
1024
+ }) : SCAFFOLD_DEFAULT_UTILITIES;
1009
1025
  if (isCancel(utilities)) return null;
1010
1026
  const contentSource = await select({
1011
1027
  message: "Where will you write content?",
@@ -1061,7 +1077,12 @@ async function promptInteractiveAnswers() {
1061
1077
  answers = { directory, preset, utilities, contentSource, deployment };
1062
1078
  }
1063
1079
  log.step("Creating Riebeckite site...");
1064
- return answers;
1080
+ const installDependencies2 = await confirm({
1081
+ message: "Install dependencies now?",
1082
+ initialValue: true
1083
+ });
1084
+ if (isCancel(installDependencies2)) return null;
1085
+ return { answers, installDependencies: installDependencies2 };
1065
1086
  }
1066
1087
  async function promptDeployNow() {
1067
1088
  const answer = await select({
@@ -1237,11 +1258,11 @@ var README_DEMOS = {
1237
1258
  fence('js tab="Vanilla"', 'console.log("Hello from JavaScript");')
1238
1259
  ].join("\n")
1239
1260
  },
1240
- "@riebeckite/plugin-mermaid": {
1241
- title: { en: "Mermaid", ja: "Mermaid" },
1261
+ "@riebeckite/plugin-mermaid-pele": {
1262
+ title: { en: "Mermaid (Pele)", ja: "Mermaid (Pele)" },
1242
1263
  intro: {
1243
- en: "A `mermaid` fence becomes a rendered diagram at build time.",
1244
- ja: "`mermaid` フェンスはビルド時にレンダリングされた図になります。"
1264
+ en: "A `mermaid` fence becomes a static diagram at build time without Chromium.",
1265
+ ja: "`mermaid` フェンスは Chromium を使わずビルド時に静的な図になります。"
1245
1266
  },
1246
1267
  markdown: fence(
1247
1268
  "mermaid",
@@ -1531,7 +1552,7 @@ var README_DEMO_ORDER = [
1531
1552
  "@riebeckite/plugin-obsidian-markdown/wikilinks",
1532
1553
  "@riebeckite/plugin-code-enhance",
1533
1554
  "@riebeckite/plugin-code-tabs",
1534
- "@riebeckite/plugin-mermaid",
1555
+ "@riebeckite/plugin-mermaid-pele",
1535
1556
  "@riebeckite/plugin-d2",
1536
1557
  "@riebeckite/plugin-graphviz",
1537
1558
  "@riebeckite/plugin-chartjs",
@@ -1637,7 +1658,7 @@ var PLUGIN_MARKDOWN_GUIDES = {
1637
1658
  ].join("\n")
1638
1659
  },
1639
1660
  "@riebeckite/plugin-properties": {
1640
- summary: "Renders selected frontmatter properties in the article metadata slot.",
1661
+ summary: "Renders selected frontmatter properties in article metadata.",
1641
1662
  markdown: [
1642
1663
  "---",
1643
1664
  "created: 2026-09-30",
@@ -2734,7 +2755,7 @@ function pluginsContent(language) {
2734
2755
  lines.push(read(copy.intro, language), "");
2735
2756
  lines.push(heading(2, read(copy.installHeading, language)), "");
2736
2757
  lines.push(read(copy.installStep1, language), "");
2737
- lines.push(codeBlock("sh", "npm install @riebeckite/plugin-mermaid"));
2758
+ lines.push(codeBlock("sh", "npm install @riebeckite/plugin-mermaid-pele"));
2738
2759
  lines.push(read(copy.installStep2, language), "");
2739
2760
  lines.push(
2740
2761
  codeBlock(
@@ -2742,12 +2763,12 @@ function pluginsContent(language) {
2742
2763
  [
2743
2764
  'import { defineConfig } from "@riebeckite/core";',
2744
2765
  'import { l10n } from "@riebeckite/plugin-l10n";',
2745
- 'import { mermaid } from "@riebeckite/plugin-mermaid";',
2766
+ 'import { mermaidPele } from "@riebeckite/plugin-mermaid-pele";',
2746
2767
  'import { obsidianMarkdown } from "@riebeckite/plugin-obsidian-markdown";',
2747
2768
  "",
2748
2769
  "export default defineConfig({",
2749
2770
  " // ...",
2750
- " plugins: [obsidianMarkdown(), l10n({ ... }), mermaid()],",
2771
+ " plugins: [obsidianMarkdown(), l10n({ ... }), mermaidPele()],",
2751
2772
  "});"
2752
2773
  ].join("\n")
2753
2774
  )
@@ -3297,7 +3318,7 @@ function copyPasteDemoLines(preset, words, language) {
3297
3318
  }
3298
3319
 
3299
3320
  // src/scaffold/version.ts
3300
- var RIEBECKITE_VERSION = "^0.0.30";
3321
+ var RIEBECKITE_VERSION = "^0.0.31";
3301
3322
 
3302
3323
  // src/scaffold/templates.ts
3303
3324
  function siteTemplateFiles(preset, variables, options = {}) {
@@ -3591,7 +3612,7 @@ function isNotFoundError(error) {
3591
3612
  async function runCreateRiebeckite(arguments_) {
3592
3613
  const resolved = await resolveOptions(arguments_);
3593
3614
  if (resolved === null) return;
3594
- const { options, interactive } = resolved;
3615
+ const { options, installDependencies: shouldInstallDependencies } = resolved;
3595
3616
  if (options.listPresets) {
3596
3617
  printPresets();
3597
3618
  return;
@@ -3617,8 +3638,8 @@ async function runCreateRiebeckite(arguments_) {
3617
3638
  const relative = path4.relative(process.cwd(), result.targetDirectory) || ".";
3618
3639
  console.log(`Created a ${options.preset} Riebeckite site in ${relative}`);
3619
3640
  console.log("");
3620
- if (interactive && options.deployment.type === "cloudflare-workers") {
3621
- await publishCloudflareSite(targetDirectory, relative);
3641
+ if (shouldInstallDependencies) {
3642
+ await prepareInteractiveSite(targetDirectory, relative, options, result);
3622
3643
  return;
3623
3644
  }
3624
3645
  printScaffoldNextSteps(options, result, relative);
@@ -3630,16 +3651,35 @@ async function resolveOptions(arguments_) {
3630
3651
  console.log("Operation cancelled.");
3631
3652
  return null;
3632
3653
  }
3633
- return { options: interactiveAnswersToOptions(answers), interactive: true };
3654
+ return {
3655
+ options: interactiveAnswersToOptions(answers.answers),
3656
+ installDependencies: answers.installDependencies
3657
+ };
3634
3658
  }
3635
3659
  try {
3636
- return { options: parseArguments(arguments_), interactive: false };
3660
+ return { options: parseArguments(arguments_), installDependencies: false };
3637
3661
  } catch (error) {
3638
3662
  console.error(error instanceof Error ? error.message : String(error));
3639
3663
  process.exitCode = 1;
3640
3664
  return null;
3641
3665
  }
3642
3666
  }
3667
+ async function prepareInteractiveSite(targetDirectory, relative, options, result) {
3668
+ const commands = packageManagerCommands();
3669
+ console.log(`Installing dependencies with ${commands.name}...`);
3670
+ try {
3671
+ await installDependencies(targetDirectory, commands, spawnCommand);
3672
+ } catch (error) {
3673
+ if (!(error instanceof DeploymentFailure)) throw error;
3674
+ reportInstallationFailure(error, relative, options);
3675
+ return;
3676
+ }
3677
+ if (options.deployment.type === "cloudflare-workers") {
3678
+ await publishCloudflareSite(targetDirectory, relative, false);
3679
+ return;
3680
+ }
3681
+ printScaffoldNextSteps(options, result, relative);
3682
+ }
3643
3683
  function printScaffoldNextSteps(options, result, relative) {
3644
3684
  const externalContent = isExternalContent(options.deployment);
3645
3685
  const editFile = !externalContent && result.files.includes("content/index.md") ? "content/index.md" : void 0;
@@ -3648,15 +3688,17 @@ function printScaffoldNextSteps(options, result, relative) {
3648
3688
  function isExternalContent(deployment) {
3649
3689
  return deployment.type === "github-actions" && deployment.content.type === "external";
3650
3690
  }
3651
- async function publishCloudflareSite(targetDirectory, relative) {
3691
+ async function publishCloudflareSite(targetDirectory, relative, install = true) {
3652
3692
  const commands = packageManagerCommands();
3653
- console.log(`Installing dependencies with ${commands.name}...`);
3654
- try {
3655
- await installDependencies(targetDirectory, commands, spawnCommand);
3656
- } catch (error) {
3657
- if (!(error instanceof DeploymentFailure)) throw error;
3658
- reportDeploymentFailure(error, relative);
3659
- return;
3693
+ if (install) {
3694
+ console.log(`Installing dependencies with ${commands.name}...`);
3695
+ try {
3696
+ await installDependencies(targetDirectory, commands, spawnCommand);
3697
+ } catch (error) {
3698
+ if (!(error instanceof DeploymentFailure)) throw error;
3699
+ reportDeploymentFailure(error, relative);
3700
+ return;
3701
+ }
3660
3702
  }
3661
3703
  const deployNow = await promptDeployNow();
3662
3704
  if (!deployNow) {
@@ -3674,6 +3716,20 @@ async function publishCloudflareSite(targetDirectory, relative) {
3674
3716
  console.log("");
3675
3717
  console.log("Deployment complete.");
3676
3718
  }
3719
+ function reportInstallationFailure(error, relative, options) {
3720
+ const commands = packageManagerCommands();
3721
+ console.error("");
3722
+ console.error("Project created successfully.");
3723
+ console.error(error.message);
3724
+ console.error("You can continue with:");
3725
+ if (relative !== ".") console.error(` cd ${relative}`);
3726
+ console.error(` ${commands.install.label}`);
3727
+ if (options.deployment.type === "cloudflare-workers") {
3728
+ console.error(` ${commands.build.label}`);
3729
+ console.error(` ${commands.deploy.label}`);
3730
+ }
3731
+ process.exitCode = 1;
3732
+ }
3677
3733
  function reportDeploymentFailure(error, relative) {
3678
3734
  const commands = packageManagerCommands();
3679
3735
  console.error("");
@@ -18,11 +18,15 @@ export type InteractiveAnswers = {
18
18
  readonly contentRepository: string;
19
19
  readonly siteRepository: string;
20
20
  };
21
+ export type InteractiveSetupAnswers = {
22
+ readonly answers: InteractiveAnswers;
23
+ readonly installDependencies: boolean;
24
+ };
21
25
  export declare function interactiveAnswersToOptions(answers: InteractiveAnswers): CreateRiebeckiteOptions;
22
26
  /**
23
27
  * Run the prompt flow. Returns `null` when the user cancels, so the caller can
24
28
  * exit without a stack trace. Repository values are only trimmed here; their
25
29
  * `owner/repository` shape is validated by the existing scaffold.
26
30
  */
27
- export declare function promptInteractiveAnswers(): Promise<InteractiveAnswers | null>;
31
+ export declare function promptInteractiveAnswers(): Promise<InteractiveSetupAnswers | null>;
28
32
  export declare function promptDeployNow(): Promise<boolean>;
@@ -298,7 +298,10 @@ var seo = np("@riebeckite/plugin-seo", "seo", {
298
298
  var toc = np("@riebeckite/plugin-toc", "tocPlugin");
299
299
  var properties = np("@riebeckite/plugin-properties", "properties", {
300
300
  include: { depth: 2, value: '["created", "modified", "tags", "status"]' },
301
- order: { depth: 2, value: '["created", "modified", "tags", "status"]' }
301
+ fields: {
302
+ depth: 2,
303
+ value: '{ created: { type: "date", format: "yyyy-MM-dd" }, modified: { type: "date", format: "yyyy-MM-dd" }, tags: { type: "tags", variant: "chips" }, status: { type: "badge", variants: { active: "success", draft: "warning", archived: "danger" } } }'
304
+ }
302
305
  });
303
306
  var alias = np("@riebeckite/plugin-alias", "aliasPlugin", `{ status: 308 }`);
304
307
  var codeEnhance = np("@riebeckite/plugin-code-enhance", "codeEnhance", {
@@ -431,12 +434,7 @@ var gallery = np("@riebeckite/plugin-gallery", "gallery", {
431
434
  aspect: { depth: 2, value: '"4/3"' },
432
435
  language: { depth: 3, value: '"gallery"' }
433
436
  });
434
- var mermaid = np("@riebeckite/plugin-mermaid", "mermaid", {
435
- render: { depth: 2, value: '"build"' },
436
- theme: { depth: 2, value: '{ light: "default", dark: "dark" }' },
437
- caption: { depth: 3, value: "true" },
438
- fallback: { depth: 3, value: "true" }
439
- });
437
+ var mermaidPele = np("@riebeckite/plugin-mermaid-pele", "mermaidPele");
440
438
  var graphviz = np("@riebeckite/plugin-graphviz", "graphviz", {
441
439
  render: { depth: 2, value: '"build"' },
442
440
  engine: { depth: 2, value: '"dot"' },
@@ -708,7 +706,7 @@ var showcase = {
708
706
  autoCardLink,
709
707
  richEmbed,
710
708
  gallery,
711
- mermaid,
709
+ mermaidPele,
712
710
  graphviz,
713
711
  d2,
714
712
  plantuml,
@@ -816,11 +814,11 @@ var README_DEMOS = {
816
814
  fence('js tab="Vanilla"', 'console.log("Hello from JavaScript");')
817
815
  ].join("\n")
818
816
  },
819
- "@riebeckite/plugin-mermaid": {
820
- title: { en: "Mermaid", ja: "Mermaid" },
817
+ "@riebeckite/plugin-mermaid-pele": {
818
+ title: { en: "Mermaid (Pele)", ja: "Mermaid (Pele)" },
821
819
  intro: {
822
- en: "A `mermaid` fence becomes a rendered diagram at build time.",
823
- ja: "`mermaid` フェンスはビルド時にレンダリングされた図になります。"
820
+ en: "A `mermaid` fence becomes a static diagram at build time without Chromium.",
821
+ ja: "`mermaid` フェンスは Chromium を使わずビルド時に静的な図になります。"
824
822
  },
825
823
  markdown: fence(
826
824
  "mermaid",
@@ -1110,7 +1108,7 @@ var README_DEMO_ORDER = [
1110
1108
  "@riebeckite/plugin-obsidian-markdown/wikilinks",
1111
1109
  "@riebeckite/plugin-code-enhance",
1112
1110
  "@riebeckite/plugin-code-tabs",
1113
- "@riebeckite/plugin-mermaid",
1111
+ "@riebeckite/plugin-mermaid-pele",
1114
1112
  "@riebeckite/plugin-d2",
1115
1113
  "@riebeckite/plugin-graphviz",
1116
1114
  "@riebeckite/plugin-chartjs",
@@ -1216,7 +1214,7 @@ var PLUGIN_MARKDOWN_GUIDES = {
1216
1214
  ].join("\n")
1217
1215
  },
1218
1216
  "@riebeckite/plugin-properties": {
1219
- summary: "Renders selected frontmatter properties in the article metadata slot.",
1217
+ summary: "Renders selected frontmatter properties in article metadata.",
1220
1218
  markdown: [
1221
1219
  "---",
1222
1220
  "created: 2026-09-30",
@@ -2313,7 +2311,7 @@ function pluginsContent(language) {
2313
2311
  lines.push(read(copy.intro, language), "");
2314
2312
  lines.push(heading(2, read(copy.installHeading, language)), "");
2315
2313
  lines.push(read(copy.installStep1, language), "");
2316
- lines.push(codeBlock("sh", "npm install @riebeckite/plugin-mermaid"));
2314
+ lines.push(codeBlock("sh", "npm install @riebeckite/plugin-mermaid-pele"));
2317
2315
  lines.push(read(copy.installStep2, language), "");
2318
2316
  lines.push(
2319
2317
  codeBlock(
@@ -2321,12 +2319,12 @@ function pluginsContent(language) {
2321
2319
  [
2322
2320
  'import { defineConfig } from "@riebeckite/core";',
2323
2321
  'import { l10n } from "@riebeckite/plugin-l10n";',
2324
- 'import { mermaid } from "@riebeckite/plugin-mermaid";',
2322
+ 'import { mermaidPele } from "@riebeckite/plugin-mermaid-pele";',
2325
2323
  'import { obsidianMarkdown } from "@riebeckite/plugin-obsidian-markdown";',
2326
2324
  "",
2327
2325
  "export default defineConfig({",
2328
2326
  " // ...",
2329
- " plugins: [obsidianMarkdown(), l10n({ ... }), mermaid()],",
2327
+ " plugins: [obsidianMarkdown(), l10n({ ... }), mermaidPele()],",
2330
2328
  "});"
2331
2329
  ].join("\n")
2332
2330
  )
@@ -2967,7 +2965,7 @@ function utilityTemplateFiles(utilities) {
2967
2965
  }
2968
2966
 
2969
2967
  // src/scaffold/version.ts
2970
- var RIEBECKITE_VERSION = "^0.0.30";
2968
+ var RIEBECKITE_VERSION = "^0.0.31";
2971
2969
 
2972
2970
  // src/scaffold/templates.ts
2973
2971
  function siteTemplateFiles(preset, variables, options = {}) {
@@ -1 +1 @@
1
- export declare const RIEBECKITE_VERSION = "^0.0.30";
1
+ export declare const RIEBECKITE_VERSION = "^0.0.31";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-riebeckite",
3
- "version": "0.0.30",
3
+ "version": "0.0.31",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "main": "./dist/src/index.js",
@@ -39,7 +39,7 @@
39
39
  },
40
40
  "devDependencies": {
41
41
  "esbuild": "^0.28.2",
42
- "@riebeckite/test": "0.0.30"
42
+ "@riebeckite/test": "0.0.31"
43
43
  },
44
44
  "repository": {
45
45
  "type": "git",