create-specment 0.2.9 → 0.3.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.
Files changed (133) hide show
  1. package/bin/commands/create.d.ts +0 -1
  2. package/bin/constants/languages.d.ts +0 -1
  3. package/bin/core/interactive-setup.d.ts +0 -1
  4. package/bin/core/interactive-setup.js +17 -10
  5. package/bin/core/interactive-setup.js.map +1 -1
  6. package/bin/core/interactive-setup.test.d.ts +0 -1
  7. package/bin/core/interactive-setup.test.js +7 -7
  8. package/bin/core/interactive-setup.test.js.map +1 -1
  9. package/bin/core/project-generator.d.ts +0 -1
  10. package/bin/core/project-generator.js +5 -8
  11. package/bin/core/project-generator.js.map +1 -1
  12. package/bin/features/index.d.ts +0 -1
  13. package/bin/features/index.js +15 -13
  14. package/bin/features/index.js.map +1 -1
  15. package/bin/generators/docusaurus-config.d.ts +0 -1
  16. package/bin/generators/docusaurus-config.js +211 -264
  17. package/bin/generators/docusaurus-config.js.map +1 -1
  18. package/bin/generators/package-json.d.ts +0 -1
  19. package/bin/generators/package-json.js +45 -91
  20. package/bin/generators/package-json.js.map +1 -1
  21. package/bin/generators/template-files.d.ts +0 -1
  22. package/bin/generators/template-files.js +563 -168
  23. package/bin/generators/template-files.js.map +1 -1
  24. package/bin/index.d.ts +0 -1
  25. package/bin/index.js.map +1 -1
  26. package/bin/templates/index.d.ts +0 -1
  27. package/bin/templates/index.js +36 -24
  28. package/bin/templates/index.js.map +1 -1
  29. package/bin/tests/integration.test.d.ts +0 -1
  30. package/bin/tests/integration.test.js +34 -34
  31. package/bin/tests/integration.test.js.map +1 -1
  32. package/bin/types/index.d.ts +1 -21
  33. package/bin/utils/config-merger.d.ts +0 -1
  34. package/bin/utils/config-merger.js +0 -1
  35. package/bin/utils/config-merger.js.map +1 -1
  36. package/bin/utils/errors.d.ts +0 -1
  37. package/bin/utils/install.d.ts +0 -1
  38. package/bin/utils/install.js +3 -3
  39. package/bin/utils/install.js.map +1 -1
  40. package/bin/utils/message-formatter.d.ts +0 -1
  41. package/bin/utils/template-processor.d.ts +0 -1
  42. package/bin/utils/template-processor.js +2 -3
  43. package/bin/utils/template-processor.js.map +1 -1
  44. package/bin/utils/template-processor.test.d.ts +0 -1
  45. package/bin/utils/template-processor.test.js +22 -22
  46. package/bin/utils/template-processor.test.js.map +1 -1
  47. package/bin/utils/version.d.ts +0 -1
  48. package/bin/utils/version.js +3 -3
  49. package/bin/utils/version.js.map +1 -1
  50. package/package.json +2 -7
  51. package/templates/docs/01-overview/_requirements-specification.mdx +1 -5
  52. package/templates/docs/01-overview/as-is.mdx +1 -1
  53. package/templates/docs/01-overview/glossary.mdx +6 -6
  54. package/templates/docs/01-overview/odsc.mdx +1 -1
  55. package/templates/docs/01-overview/to-be.mdx +6 -6
  56. package/templates/docs/02-requirements/functional/_req-template.mdx +0 -3
  57. package/templates/docs/02-requirements/functional/req-001.mdx +0 -4
  58. package/templates/docs/02-requirements/non-functional/_nfr-template.mdx +0 -3
  59. package/templates/docs/02-requirements/non-functional/nfr-001.mdx +0 -3
  60. package/templates/docs/02-requirements/non-functional/nfr-002.mdx +0 -3
  61. package/templates/docs/03-external/business-model.mdx +1 -1
  62. package/templates/docs/03-external/index.mdx +1 -1
  63. package/templates/docs/04-internal/batches/import-products.mdx +2 -6
  64. package/templates/docs/04-internal/policies/github.mdx +1 -1
  65. package/templates/docs/04-internal/rules/database.mdx +1 -1
  66. package/templates/docs/04-internal/screens/dashboard.mdx +1 -1
  67. package/templates/docs/04-internal/screens/index.mdx +1 -1
  68. package/templates/docs/04-internal/screens/login.mdx +1 -1
  69. package/templates/docs/04-internal/screens/menu.mdx +1 -1
  70. package/templates/docs/index.module.css +96 -0
  71. package/templates/docs/index.tsx +48 -0
  72. package/templates/docs/introduction/index.mdx +1 -1
  73. package/templates/docs/introduction/operational-policies/sharepoint.mdx +1 -1
  74. package/templates/package.json.template +46 -0
  75. package/templates/src/components/Highlight/index.tsx +68 -0
  76. package/templates/src/components/PriorityMatrix/index.tsx +97 -0
  77. package/templates/src/components/TBD/index.tsx +16 -0
  78. package/templates/src/css/custom.css +81 -0
  79. package/templates/src/types/requirements.ts +19 -0
  80. package/templates/static/img/business-model.drawio.svg +4 -0
  81. package/templates/static/img/gantt.drawio.svg +1152 -0
  82. package/templates/static/img/logo.svg +21 -0
  83. package/bin/commands/create.d.ts.map +0 -1
  84. package/bin/constants/languages.d.ts.map +0 -1
  85. package/bin/core/interactive-setup.d.ts.map +0 -1
  86. package/bin/core/interactive-setup.test.d.ts.map +0 -1
  87. package/bin/core/project-generator.d.ts.map +0 -1
  88. package/bin/features/index.d.ts.map +0 -1
  89. package/bin/generators/docusaurus-config.d.ts.map +0 -1
  90. package/bin/generators/package-json.d.ts.map +0 -1
  91. package/bin/generators/template-files.d.ts.map +0 -1
  92. package/bin/index.d.ts.map +0 -1
  93. package/bin/plugins/i18n-integration.d.ts +0 -25
  94. package/bin/plugins/i18n-integration.d.ts.map +0 -1
  95. package/bin/plugins/i18n-integration.js +0 -310
  96. package/bin/plugins/i18n-integration.js.map +0 -1
  97. package/bin/plugins/plantuml-integration.d.ts +0 -17
  98. package/bin/plugins/plantuml-integration.d.ts.map +0 -1
  99. package/bin/plugins/plantuml-integration.js +0 -112
  100. package/bin/plugins/plantuml-integration.js.map +0 -1
  101. package/bin/plugins/redoc-integration.d.ts +0 -25
  102. package/bin/plugins/redoc-integration.d.ts.map +0 -1
  103. package/bin/plugins/redoc-integration.js +0 -373
  104. package/bin/plugins/redoc-integration.js.map +0 -1
  105. package/bin/plugins/search-integration.d.ts +0 -20
  106. package/bin/plugins/search-integration.d.ts.map +0 -1
  107. package/bin/plugins/search-integration.js +0 -169
  108. package/bin/plugins/search-integration.js.map +0 -1
  109. package/bin/templates/index.d.ts.map +0 -1
  110. package/bin/templates/template-definitions.d.ts +0 -10
  111. package/bin/templates/template-definitions.d.ts.map +0 -1
  112. package/bin/templates/template-definitions.js +0 -517
  113. package/bin/templates/template-definitions.js.map +0 -1
  114. package/bin/tests/integration.test.d.ts.map +0 -1
  115. package/bin/types/index.d.ts.map +0 -1
  116. package/bin/utils/config-merger.d.ts.map +0 -1
  117. package/bin/utils/errors.d.ts.map +0 -1
  118. package/bin/utils/install.d.ts.map +0 -1
  119. package/bin/utils/message-formatter.d.ts.map +0 -1
  120. package/bin/utils/template-processor.d.ts.map +0 -1
  121. package/bin/utils/template-processor.test.d.ts.map +0 -1
  122. package/bin/utils/version.d.ts.map +0 -1
  123. package/templates/classic-spec/docusaurus.config.js.template +0 -106
  124. package/templates/classic-spec/package.json.template +0 -36
  125. package/templates/docs/example.drawio.svg +0 -57
  126. package/templates/external-design/docusaurus.config.js.template +0 -123
  127. package/templates/external-design/package.json.template +0 -36
  128. package/templates/internal-design/docusaurus.config.js.template +0 -123
  129. package/templates/internal-design/package.json.template +0 -36
  130. package/templates/project-analysis/docusaurus.config.js.template +0 -113
  131. package/templates/project-analysis/package.json.template +0 -36
  132. package/templates/requirements/docusaurus.config.js.template +0 -119
  133. package/templates/requirements/package.json.template +0 -36
@@ -0,0 +1,21 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="200" height="200" viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg">
3
+ <!-- 背景円 -->
4
+ <circle cx="100" cy="100" r="90" fill="#2e8555" stroke="#1e5e3f" stroke-width="4"/>
5
+
6
+ <!-- 文書アイコン -->
7
+ <rect x="60" y="50" width="80" height="100" rx="8" fill="white" stroke="#2e8555" stroke-width="2"/>
8
+
9
+ <!-- 文書の線 -->
10
+ <line x1="70" y1="70" x2="130" y2="70" stroke="#2e8555" stroke-width="2"/>
11
+ <line x1="70" y1="85" x2="130" y2="85" stroke="#2e8555" stroke-width="2"/>
12
+ <line x1="70" y1="100" x2="130" y2="100" stroke="#2e8555" stroke-width="2"/>
13
+ <line x1="70" y1="115" x2="110" y2="115" stroke="#2e8555" stroke-width="2"/>
14
+
15
+ <!-- ペンアイコン -->
16
+ <path d="M120 120 L135 105 L140 110 L125 125 Z" fill="#ff6b35" stroke="#d4541f" stroke-width="1"/>
17
+ <circle cx="137" cy="107" r="3" fill="#ff6b35"/>
18
+
19
+ <!-- 影 -->
20
+ <ellipse cx="100" cy="185" rx="70" ry="10" fill="rgba(0,0,0,0.2)"/>
21
+ </svg>
@@ -1 +0,0 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAM/D,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,IAAI,CAAC,CA2Bf"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"languages.d.ts","sourceRoot":"","sources":["../../src/constants/languages.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,IAAI;;;;;;;;;CASP,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"interactive-setup.d.ts","sourceRoot":"","sources":["../../src/core/interactive-setup.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,qBAAqB,EACrB,cAAc,EAGf,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAQ,KAAK,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAGhE,qBAAa,gBAAgB;IAGf,OAAO,CAAC,OAAO;IAF3B,OAAO,CAAC,gBAAgB,CAA0B;gBAE9B,OAAO,EAAE,qBAAqB;IAElD,IAAI,QAAQ,IAAI,QAAQ,CAEvB;IAEK,GAAG,CAAC,kBAAkB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;YAmBjD,cAAc;IAgB5B,OAAO,CAAC,WAAW;YAYL,cAAc;YA4Cd,oBAAoB;YA0DpB,oBAAoB;CA4CnC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"interactive-setup.test.d.ts","sourceRoot":"","sources":["../../src/core/interactive-setup.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"project-generator.d.ts","sourceRoot":"","sources":["../../src/core/project-generator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAM/E,qBAAa,gBAAgB;IAIzB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,OAAO;IAJjB,OAAO,CAAC,WAAW,CAAS;gBAGlB,UAAU,EAAE,cAAc,EAC1B,OAAO,EAAE,qBAAqB;IAKlC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;YA6CjB,sBAAsB;YAatB,mBAAmB;YAUnB,mBAAmB;CAGlC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/features/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG1D,wBAAgB,oBAAoB,IAAI,gBAAgB,EAAE,CA4CzD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"docusaurus-config.d.ts","sourceRoot":"","sources":["../../src/generators/docusaurus-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAOxD,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,cAAc,GAAG,MAAM,CAe3E"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"package-json.d.ts","sourceRoot":"","sources":["../../src/generators/package-json.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAMxD,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,cAAc,GAAG,GAAG,CAsGnE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"template-files.d.ts","sourceRoot":"","sources":["../../src/generators/template-files.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AASxD,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,cAAc,EAC1B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAyDf"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,QAAA,MAAM,OAAO,SAAgB,CAAC;AAwC9B,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -1,25 +0,0 @@
1
- import type { FeatureSelection } from '../types/index.js';
2
- export interface I18nConfig {
3
- defaultLocale: string;
4
- locales: string[];
5
- localeConfigs?: Record<string, LocaleConfig>;
6
- }
7
- export interface LocaleConfig {
8
- label: string;
9
- direction: 'ltr' | 'rtl';
10
- htmlLang: string;
11
- calendar?: string;
12
- path?: string;
13
- }
14
- export declare class I18nIntegration {
15
- static getDefaultConfig(): I18nConfig;
16
- static generateDocusaurusConfig(feature: FeatureSelection): any;
17
- static getDependencies(): Record<string, string>;
18
- static generateI18nDocumentation(): string;
19
- static generateLocaleFiles(): Record<string, string>;
20
- static validateConfig(config: I18nConfig): {
21
- valid: boolean;
22
- message?: string;
23
- };
24
- }
25
- //# sourceMappingURL=i18n-integration.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"i18n-integration.d.ts","sourceRoot":"","sources":["../../src/plugins/i18n-integration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG1D,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CAC9C;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,KAAK,GAAG,KAAK,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAGD,qBAAa,eAAe;IAC1B,MAAM,CAAC,gBAAgB,IAAI,UAAU;IAmBrC,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,gBAAgB,GAAG,GAAG;IAsB/D,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAKhD,MAAM,CAAC,yBAAyB,IAAI,MAAM;IAoK1C,MAAM,CAAC,mBAAmB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAiFpD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;CAsChF"}
@@ -1,310 +0,0 @@
1
- import { LANG } from '../constants/languages.js';
2
- // biome-ignore lint/complexity/noStaticOnlyClass: 統合クラスは静的メソッドを持つユーティリティ名前空間として設計されており、より良い組織化のため
3
- export class I18nIntegration {
4
- static getDefaultConfig() {
5
- return {
6
- defaultLocale: LANG.EN.code,
7
- locales: [LANG.EN.code, 'ja'],
8
- localeConfigs: {
9
- [LANG.EN.code]: {
10
- label: 'English',
11
- direction: 'ltr',
12
- htmlLang: 'en-US',
13
- },
14
- ja: {
15
- label: '日本語',
16
- direction: 'ltr',
17
- htmlLang: 'ja-JP',
18
- },
19
- },
20
- };
21
- }
22
- static generateDocusaurusConfig(feature) {
23
- const config = feature.config?.i18n || I18nIntegration.getDefaultConfig();
24
- return {
25
- i18n: {
26
- defaultLocale: config.defaultLocale,
27
- locales: config.locales,
28
- localeConfigs: config.localeConfigs || I18nIntegration.getDefaultConfig().localeConfigs,
29
- },
30
- themeConfig: {
31
- navbar: {
32
- items: [
33
- {
34
- type: 'localeDropdown',
35
- position: 'right',
36
- },
37
- ],
38
- },
39
- },
40
- };
41
- }
42
- static getDependencies() {
43
- // i18n is built into Docusaurus, no additional dependencies needed
44
- return {};
45
- }
46
- static generateI18nDocumentation() {
47
- return `# 多言語対応 (Internationalization)
48
-
49
- このドキュメントサイトは多言語対応(i18n)機能を提供しています。
50
-
51
- ## サポート言語
52
-
53
- 現在、以下の言語をサポートしています:
54
-
55
- - **English** (en) - デフォルト言語
56
- - **日本語** (ja) - Japanese
57
-
58
- ## 言語の切り替え
59
-
60
- ### ナビゲーションバーから切り替え
61
-
62
- 1. ナビゲーションバー右上の言語ドロップダウンをクリック
63
- 2. 希望する言語を選択
64
-
65
- ### URLから直接アクセス
66
-
67
- - 英語: \`/\` または \`/en/\`
68
- - 日本語: \`/ja/\`
69
-
70
- ## 翻訳の仕組み
71
-
72
- ### ファイル構造
73
-
74
- \`\`\`
75
- docs/
76
- ├── intro.md # 英語版(デフォルト)
77
- └── ...
78
-
79
- i18n/
80
- └── ja/ # 日本語翻訳
81
- ├── docusaurus-plugin-content-docs/
82
- │ └── current/
83
- │ ├── intro.md # 日本語版
84
- │ └── ...
85
- └── docusaurus-theme-classic/
86
- └── navbar.json # ナビゲーション翻訳
87
- \`\`\`
88
-
89
- ### 翻訳ファイルの生成
90
-
91
- 新しい翻訳を追加する場合:
92
-
93
- \`\`\`bash
94
- # 翻訳ファイルのテンプレートを生成
95
- nr write-translations -- --locale ja
96
-
97
- # 翻訳IDを生成
98
- nr write-heading-ids
99
- \`\`\`
100
-
101
- ## 翻訳ガイドライン
102
-
103
- ### 文書翻訳
104
-
105
- 1. **一貫性の維持**
106
- - 専門用語は統一した翻訳を使用
107
- - 文体を統一(です・ます調)
108
-
109
- 2. **文化的配慮**
110
- - 日本の文化や慣習に合わせた表現
111
- - 適切な敬語の使用
112
-
113
- 3. **技術用語**
114
- - 一般的な英語の技術用語はそのまま使用
115
- - 必要に応じて日本語訳を併記
116
-
117
- ### UI要素の翻訳
118
-
119
- \`\`\`json
120
- {
121
- "theme.common.editThisPage": "このページを編集",
122
- "theme.common.headingLinkTitle": "見出しへの直接リンク",
123
- "theme.docs.breadcrumbs.home": "ホーム",
124
- "theme.docs.breadcrumbs.navAriaLabel": "パンくずリスト",
125
- "theme.docs.paginator.navAriaLabel": "ドキュメントページネーション",
126
- "theme.docs.paginator.previous": "前へ",
127
- "theme.docs.paginator.next": "次へ"
128
- }
129
- \`\`\`
130
-
131
- ## SEO対応
132
-
133
- ### 言語別メタデータ
134
-
135
- 各言語版で適切なメタデータを設定:
136
-
137
- - \`htmlLang\` 属性の設定
138
- - 言語固有のタイトルと説明
139
- - hreflang タグの自動生成
140
-
141
- ### URL構造
142
-
143
- - 英語(デフォルト): \`/docs/intro\`
144
- - 日本語: \`/ja/docs/intro\`
145
-
146
- ## 翻訳の貢献
147
-
148
- ### 新しい翻訳の追加
149
-
150
- 1. **言語の追加**
151
- \`\`\`javascript
152
- // docusaurus.config.js
153
- i18n: {
154
- defaultLocale: 'en',
155
- locales: ['en', 'ja', 'ko'], // 韓国語を追加
156
- }
157
- \`\`\`
158
-
159
- 2. **翻訳ファイルの作成**
160
- \`\`\`bash
161
- nr write-translations -- --locale ko
162
- \`\`\`
163
-
164
- 3. **翻訳作業**
165
- - \`i18n/ko/\` ディレクトリ内のファイルを翻訳
166
- - マークダウンファイルとJSONファイルの両方を翻訳
167
-
168
- ### 翻訳の改善
169
-
170
- 既存の翻訳を改善する場合:
171
-
172
- 1. 該当する翻訳ファイルを編集
173
- 2. プルリクエストを作成
174
- 3. レビューを受けてマージ
175
-
176
- ## トラブルシューティング
177
-
178
- ### 翻訳が表示されない
179
-
180
- 1. **ファイルパスの確認**
181
- - 翻訳ファイルが正しい場所にあるか確認
182
- - ファイル名が元のファイルと一致するか確認
183
-
184
- 2. **設定の確認**
185
- - \`docusaurus.config.js\` の i18n 設定を確認
186
- - 言語コードが正しいか確認
187
-
188
- 3. **ビルドの確認**
189
- - 開発サーバーを再起動
190
- - \`nr clear\` でキャッシュをクリア
191
-
192
- ### 文字化けが発生する
193
-
194
- 1. **エンコーディングの確認**
195
- - ファイルがUTF-8で保存されているか確認
196
- - BOMなしのUTF-8を使用
197
-
198
- 2. **フォントの確認**
199
- - 日本語フォントが正しく読み込まれているか確認
200
- - CSSでフォントファミリーを指定
201
-
202
- ## 参考資料
203
-
204
- - [Docusaurus i18n ガイド](https://docusaurus.io/docs/i18n/introduction)
205
- - [React Intl ドキュメント](https://formatjs.io/docs/react-intl/)
206
- - [Unicode CLDR](https://cldr.unicode.org/)
207
- `;
208
- }
209
- static generateLocaleFiles() {
210
- return {
211
- 'i18n/ja/docusaurus-theme-classic/navbar.json': JSON.stringify({
212
- title: {
213
- message: 'ホーム',
214
- description: 'The title in the navbar',
215
- },
216
- 'item.label.Documentation': {
217
- message: 'ドキュメント',
218
- description: 'Navbar item with label Documentation',
219
- },
220
- 'item.label.GitHub': {
221
- message: 'GitHub',
222
- description: 'Navbar item with label GitHub',
223
- },
224
- }, null, 2),
225
- 'i18n/ja/docusaurus-theme-classic/footer.json': JSON.stringify({
226
- 'link.title.Documentation': {
227
- message: 'ドキュメント',
228
- description: 'The title of the footer links column with title=Documentation',
229
- },
230
- 'link.title.Community': {
231
- message: 'コミュニティ',
232
- description: 'The title of the footer links column with title=Community',
233
- },
234
- 'link.item.label.Getting Started': {
235
- message: 'はじめに',
236
- description: 'The label of footer link with label=Getting Started',
237
- },
238
- copyright: {
239
- message: 'Copyright © {year} {projectName}. Docusaurus でビルドされています。',
240
- description: 'The footer copyright',
241
- },
242
- }, null, 2),
243
- 'i18n/ja/code.json': JSON.stringify({
244
- 'theme.common.editThisPage': {
245
- message: 'このページを編集',
246
- description: 'The link label to edit the current page',
247
- },
248
- 'theme.common.headingLinkTitle': {
249
- message: '見出しへの直接リンク',
250
- description: 'Title for link to heading',
251
- },
252
- 'theme.docs.breadcrumbs.home': {
253
- message: 'ホーム',
254
- description: 'The ARIA label for the home page in the breadcrumbs',
255
- },
256
- 'theme.docs.breadcrumbs.navAriaLabel': {
257
- message: 'パンくずリスト',
258
- description: 'The ARIA label for the breadcrumbs',
259
- },
260
- 'theme.docs.paginator.navAriaLabel': {
261
- message: 'ドキュメントページネーション',
262
- description: 'The ARIA label for the docs pagination',
263
- },
264
- 'theme.docs.paginator.previous': {
265
- message: '前へ',
266
- description: 'The label used to navigate to the previous doc',
267
- },
268
- 'theme.docs.paginator.next': {
269
- message: '次へ',
270
- description: 'The label used to navigate to the next doc',
271
- },
272
- }, null, 2),
273
- };
274
- }
275
- static validateConfig(config) {
276
- if (!config.defaultLocale) {
277
- return {
278
- valid: false,
279
- message: 'Default locale is required',
280
- };
281
- }
282
- if (!Array.isArray(config.locales) || config.locales.length === 0) {
283
- return {
284
- valid: false,
285
- message: 'At least one locale must be specified',
286
- };
287
- }
288
- if (!config.locales.includes(config.defaultLocale)) {
289
- return {
290
- valid: false,
291
- message: 'Default locale must be included in locales array',
292
- };
293
- }
294
- if (config.localeConfigs) {
295
- for (const locale of config.locales) {
296
- if (config.localeConfigs[locale]) {
297
- const localeConfig = config.localeConfigs[locale];
298
- if (!localeConfig.label || !localeConfig.direction || !localeConfig.htmlLang) {
299
- return {
300
- valid: false,
301
- message: `Locale config for "${locale}" must include label, direction, and htmlLang`,
302
- };
303
- }
304
- }
305
- }
306
- }
307
- return { valid: true };
308
- }
309
- }
310
- //# sourceMappingURL=i18n-integration.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"i18n-integration.js","sourceRoot":"","sources":["../../src/plugins/i18n-integration.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- import type { FeatureSelection } from '../types/index.js';
2
- export interface PlantUMLConfig {
3
- server?: string;
4
- theme?: 'default' | 'dark';
5
- format?: 'svg' | 'png';
6
- }
7
- export declare class PlantUMLIntegration {
8
- static getDefaultConfig(): PlantUMLConfig;
9
- static generateDocusaurusConfig(feature: FeatureSelection): any;
10
- static getDependencies(): Record<string, string>;
11
- static generateSampleContent(): string;
12
- static validateConfig(config: PlantUMLConfig): {
13
- valid: boolean;
14
- message?: string;
15
- };
16
- }
17
- //# sourceMappingURL=plantuml-integration.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plantuml-integration.d.ts","sourceRoot":"","sources":["../../src/plugins/plantuml-integration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC3B,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;CACxB;AAGD,qBAAa,mBAAmB;IAC9B,MAAM,CAAC,gBAAgB,IAAI,cAAc;IAQzC,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,gBAAgB,GAAG,GAAG;IAsB/D,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAMhD,MAAM,CAAC,qBAAqB,IAAI,MAAM;IAwDtC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;CAwBpF"}
@@ -1,112 +0,0 @@
1
- // biome-ignore lint/complexity/noStaticOnlyClass: 統合クラスは静的メソッドを持つユーティリティ名前空間として設計されており、より良い組織化のため
2
- export class PlantUMLIntegration {
3
- static getDefaultConfig() {
4
- return {
5
- server: 'https://www.plantuml.com/plantuml',
6
- theme: 'default',
7
- format: 'svg',
8
- };
9
- }
10
- static generateDocusaurusConfig(feature) {
11
- const config = feature.config?.plantuml || PlantUMLIntegration.getDefaultConfig();
12
- return {
13
- themeConfig: {
14
- plantuml: {
15
- server: config.server || 'https://www.plantuml.com/plantuml',
16
- },
17
- },
18
- plugins: [
19
- [
20
- 'docusaurus-theme-plantuml',
21
- {
22
- // PlantUMLテーマの設定
23
- theme: config.theme || 'default',
24
- format: config.format || 'svg',
25
- },
26
- ],
27
- ],
28
- };
29
- }
30
- static getDependencies() {
31
- return {
32
- 'docusaurus-theme-plantuml': '^1.0.0',
33
- };
34
- }
35
- static generateSampleContent() {
36
- return `# PlantUML Examples
37
-
38
- このページではPlantUMLを使用した図表の例を紹介します。
39
-
40
- ## シーケンス図
41
-
42
- \`\`\`plantuml
43
- @startuml
44
- Alice -> Bob: Authentication Request
45
- Bob --> Alice: Authentication Response
46
-
47
- Alice -> Bob: Another authentication Request
48
- Alice <-- Bob: another authentication Response
49
- @enduml
50
- \`\`\`
51
-
52
- ## クラス図
53
-
54
- \`\`\`plantuml
55
- @startuml
56
- class User {
57
- +String name
58
- +String email
59
- +login()
60
- +logout()
61
- }
62
-
63
- class Admin {
64
- +manageUsers()
65
- }
66
-
67
- User <|-- Admin
68
- @enduml
69
- \`\`\`
70
-
71
- ## フローチャート
72
-
73
- \`\`\`plantuml
74
- @startuml
75
- start
76
- :ユーザー入力;
77
- if (入力が有効?) then (yes)
78
- :処理実行;
79
- :結果表示;
80
- else (no)
81
- :エラーメッセージ表示;
82
- endif
83
- stop
84
- @enduml
85
- \`\`\`
86
-
87
- 詳細な使用方法については[PlantUML公式ドキュメント](https://plantuml.com/)を参照してください。
88
- `;
89
- }
90
- static validateConfig(config) {
91
- if (config.server && !config.server.startsWith('http')) {
92
- return {
93
- valid: false,
94
- message: 'PlantUML server URL must start with http or https',
95
- };
96
- }
97
- if (config.theme && !['default', 'dark'].includes(config.theme)) {
98
- return {
99
- valid: false,
100
- message: 'PlantUML theme must be "default" or "dark"',
101
- };
102
- }
103
- if (config.format && !['svg', 'png'].includes(config.format)) {
104
- return {
105
- valid: false,
106
- message: 'PlantUML format must be "svg" or "png"',
107
- };
108
- }
109
- return { valid: true };
110
- }
111
- }
112
- //# sourceMappingURL=plantuml-integration.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plantuml-integration.js","sourceRoot":"","sources":["../../src/plugins/plantuml-integration.ts"],"names":[],"mappings":"AAQA,kGAAkG;AAClG,MAAM,OAAO,mBAAmB;IAC9B,MAAM,CAAC,gBAAgB;QACrB,OAAO;YACL,MAAM,EAAE,mCAAmC;YAC3C,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,KAAK;SACd,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,wBAAwB,CAAC,OAAyB;QACvD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,QAAQ,IAAI,mBAAmB,CAAC,gBAAgB,EAAE,CAAC;QAElF,OAAO;YACL,WAAW,EAAE;gBACX,QAAQ,EAAE;oBACR,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,mCAAmC;iBAC7D;aACF;YACD,OAAO,EAAE;gBACP;oBACE,2BAA2B;oBAC3B;wBACE,iBAAiB;wBACjB,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,SAAS;wBAChC,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,KAAK;qBAC/B;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,eAAe;QACpB,OAAO;YACL,2BAA2B,EAAE,QAAQ;SACtC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,qBAAqB;QAC1B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoDV,CAAC;IACA,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,MAAsB;QAC1C,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACvD,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,mDAAmD;aAC7D,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAChE,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,4CAA4C;aACtD,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7D,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,wCAAwC;aAClD,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;CACF"}
@@ -1,25 +0,0 @@
1
- import type { FeatureSelection } from '../types/index.js';
2
- export interface RedocConfig {
3
- specs: RedocSpec[];
4
- theme?: {
5
- primaryColor?: string;
6
- primaryColorDark?: string;
7
- };
8
- }
9
- export interface RedocSpec {
10
- spec: string;
11
- route: string;
12
- id?: string;
13
- }
14
- export declare class RedocIntegration {
15
- static getDefaultConfig(): RedocConfig;
16
- static generateDocusaurusConfig(feature: FeatureSelection): any;
17
- static getDependencies(): Record<string, string>;
18
- static generateSampleOpenAPISpec(): string;
19
- static generateSampleDocumentation(): string;
20
- static validateConfig(config: RedocConfig): {
21
- valid: boolean;
22
- message?: string;
23
- };
24
- }
25
- //# sourceMappingURL=redoc-integration.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"redoc-integration.d.ts","sourceRoot":"","sources":["../../src/plugins/redoc-integration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE;QACN,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;CACH;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAGD,qBAAa,gBAAgB;IAC3B,MAAM,CAAC,gBAAgB,IAAI,WAAW;IAgBtC,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,gBAAgB,GAAG,GAAG;IAgB/D,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAMhD,MAAM,CAAC,yBAAyB,IAAI,MAAM;IA4P1C,MAAM,CAAC,2BAA2B,IAAI,MAAM;IA8D5C,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;CA0BjF"}