@42ws/cli 0.1.13 → 0.1.15
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 +9 -225
- package/cli.js +39 -0
- package/package.json +5 -21
- package/bin/cli.js +0 -10
- package/dist/commands/chatlog.d.ts +0 -10
- package/dist/commands/chatlog.d.ts.map +0 -1
- package/dist/commands/chatlog.js +0 -103
- package/dist/commands/chatlog.js.map +0 -1
- package/dist/commands/collections.d.ts +0 -39
- package/dist/commands/collections.d.ts.map +0 -1
- package/dist/commands/collections.js +0 -1186
- package/dist/commands/collections.js.map +0 -1
- package/dist/commands/context.d.ts +0 -12
- package/dist/commands/context.d.ts.map +0 -1
- package/dist/commands/context.js +0 -271
- package/dist/commands/context.js.map +0 -1
- package/dist/commands/dev.d.ts +0 -13
- package/dist/commands/dev.d.ts.map +0 -1
- package/dist/commands/dev.js +0 -363
- package/dist/commands/dev.js.map +0 -1
- package/dist/commands/domains.d.ts +0 -10
- package/dist/commands/domains.d.ts.map +0 -1
- package/dist/commands/domains.js +0 -179
- package/dist/commands/domains.js.map +0 -1
- package/dist/commands/editlog.d.ts +0 -12
- package/dist/commands/editlog.d.ts.map +0 -1
- package/dist/commands/editlog.js +0 -188
- package/dist/commands/editlog.js.map +0 -1
- package/dist/commands/forms.d.ts +0 -23
- package/dist/commands/forms.d.ts.map +0 -1
- package/dist/commands/forms.js +0 -558
- package/dist/commands/forms.js.map +0 -1
- package/dist/commands/init.d.ts +0 -18
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js +0 -197
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/login.d.ts +0 -7
- package/dist/commands/login.d.ts.map +0 -1
- package/dist/commands/login.js +0 -110
- package/dist/commands/login.js.map +0 -1
- package/dist/commands/logout.d.ts +0 -2
- package/dist/commands/logout.d.ts.map +0 -1
- package/dist/commands/logout.js +0 -31
- package/dist/commands/logout.js.map +0 -1
- package/dist/commands/open.d.ts +0 -6
- package/dist/commands/open.d.ts.map +0 -1
- package/dist/commands/open.js +0 -54
- package/dist/commands/open.js.map +0 -1
- package/dist/commands/prompts.d.ts +0 -7
- package/dist/commands/prompts.d.ts.map +0 -1
- package/dist/commands/prompts.js +0 -55
- package/dist/commands/prompts.js.map +0 -1
- package/dist/commands/publish.d.ts +0 -19
- package/dist/commands/publish.d.ts.map +0 -1
- package/dist/commands/publish.js +0 -437
- package/dist/commands/publish.js.map +0 -1
- package/dist/commands/pull.d.ts +0 -7
- package/dist/commands/pull.d.ts.map +0 -1
- package/dist/commands/pull.js +0 -157
- package/dist/commands/pull.js.map +0 -1
- package/dist/commands/sites.d.ts +0 -13
- package/dist/commands/sites.d.ts.map +0 -1
- package/dist/commands/sites.js +0 -316
- package/dist/commands/sites.js.map +0 -1
- package/dist/commands/upgrade.d.ts +0 -2
- package/dist/commands/upgrade.d.ts.map +0 -1
- package/dist/commands/upgrade.js +0 -15
- package/dist/commands/upgrade.js.map +0 -1
- package/dist/commands/whoami.d.ts +0 -4
- package/dist/commands/whoami.d.ts.map +0 -1
- package/dist/commands/whoami.js +0 -98
- package/dist/commands/whoami.js.map +0 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -428
- package/dist/index.js.map +0 -1
- package/dist/lib/api.d.ts +0 -12
- package/dist/lib/api.d.ts.map +0 -1
- package/dist/lib/api.js +0 -121
- package/dist/lib/api.js.map +0 -1
- package/dist/lib/config.d.ts +0 -27
- package/dist/lib/config.d.ts.map +0 -1
- package/dist/lib/config.js +0 -65
- package/dist/lib/config.js.map +0 -1
- package/dist/lib/detect.d.ts +0 -9
- package/dist/lib/detect.d.ts.map +0 -1
- package/dist/lib/detect.js +0 -112
- package/dist/lib/detect.js.map +0 -1
- package/dist/lib/files.d.ts +0 -16
- package/dist/lib/files.d.ts.map +0 -1
- package/dist/lib/files.js +0 -200
- package/dist/lib/files.js.map +0 -1
- package/dist/lib/html.d.ts +0 -8
- package/dist/lib/html.d.ts.map +0 -1
- package/dist/lib/html.js +0 -63
- package/dist/lib/html.js.map +0 -1
- package/dist/lib/i18n.d.ts +0 -6
- package/dist/lib/i18n.d.ts.map +0 -1
- package/dist/lib/i18n.js +0 -256
- package/dist/lib/i18n.js.map +0 -1
- package/dist/lib/import-prompts.d.ts +0 -46
- package/dist/lib/import-prompts.d.ts.map +0 -1
- package/dist/lib/import-prompts.js +0 -279
- package/dist/lib/import-prompts.js.map +0 -1
- package/dist/lib/inspector-client.d.ts +0 -3
- package/dist/lib/inspector-client.d.ts.map +0 -1
- package/dist/lib/inspector-client.js +0 -253
- package/dist/lib/inspector-client.js.map +0 -1
- package/dist/lib/output.d.ts +0 -11
- package/dist/lib/output.d.ts.map +0 -1
- package/dist/lib/output.js +0 -49
- package/dist/lib/output.js.map +0 -1
- package/dist/lib/project.d.ts +0 -25
- package/dist/lib/project.d.ts.map +0 -1
- package/dist/lib/project.js +0 -62
- package/dist/lib/project.js.map +0 -1
- package/dist/lib/suggest.d.ts +0 -12
- package/dist/lib/suggest.d.ts.map +0 -1
- package/dist/lib/suggest.js +0 -36
- package/dist/lib/suggest.js.map +0 -1
- package/dist/lib/update-check.d.ts +0 -22
- package/dist/lib/update-check.d.ts.map +0 -1
- package/dist/lib/update-check.js +0 -182
- package/dist/lib/update-check.js.map +0 -1
- package/dist/run.d.ts +0 -2
- package/dist/run.d.ts.map +0 -1
- package/dist/run.js +0 -17
- package/dist/run.js.map +0 -1
- package/dist/version.d.ts +0 -2
- package/dist/version.d.ts.map +0 -1
- package/dist/version.js +0 -3
- package/dist/version.js.map +0 -1
package/dist/lib/i18n.js
DELETED
|
@@ -1,256 +0,0 @@
|
|
|
1
|
-
let activeLocale = detectInitialLocale();
|
|
2
|
-
function detectInitialLocale() {
|
|
3
|
-
const envLang = process.env['LANG'] || process.env['LC_ALL'] || process.env['LC_MESSAGES'] || '';
|
|
4
|
-
if (/^ja(_|-)/i.test(envLang) || envLang === 'ja')
|
|
5
|
-
return 'ja';
|
|
6
|
-
try {
|
|
7
|
-
const intlLocale = Intl.DateTimeFormat().resolvedOptions().locale;
|
|
8
|
-
if (intlLocale.toLowerCase().startsWith('ja'))
|
|
9
|
-
return 'ja';
|
|
10
|
-
}
|
|
11
|
-
catch {
|
|
12
|
-
// ignore
|
|
13
|
-
}
|
|
14
|
-
return 'en';
|
|
15
|
-
}
|
|
16
|
-
export function setLocale(loc) {
|
|
17
|
-
if (!loc)
|
|
18
|
-
return;
|
|
19
|
-
const normalized = loc.toLowerCase();
|
|
20
|
-
if (normalized === 'ja' || normalized.startsWith('ja_') || normalized.startsWith('ja-')) {
|
|
21
|
-
activeLocale = 'ja';
|
|
22
|
-
}
|
|
23
|
-
else if (normalized === 'en' || normalized.startsWith('en_') || normalized.startsWith('en-')) {
|
|
24
|
-
activeLocale = 'en';
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
export function getLocale() {
|
|
28
|
-
return activeLocale;
|
|
29
|
-
}
|
|
30
|
-
const messages = {
|
|
31
|
-
en: {
|
|
32
|
-
// generic
|
|
33
|
-
'cancelled': 'Cancelled.',
|
|
34
|
-
'cancelled.byUser': 'Publish cancelled by user.',
|
|
35
|
-
'cancelled.nameMismatch': 'Cancelled (name did not match).',
|
|
36
|
-
'notLoggedIn': 'You are not logged in.',
|
|
37
|
-
'notLoggedIn.fix': 'Run `42ws login` to authenticate.',
|
|
38
|
-
'networkError.fix': 'Check your internet connection.',
|
|
39
|
-
'tryAgain': 'Try again.',
|
|
40
|
-
// publish: detection / build
|
|
41
|
-
'publish.detected': 'Detected {framework} project.',
|
|
42
|
-
'publish.buildCommand': ' Build command: {cmd}',
|
|
43
|
-
'publish.outputDir': ' Output directory: {dir}',
|
|
44
|
-
'publish.collecting': 'Collecting files...',
|
|
45
|
-
'publish.collected': 'Collecting files... ({count} files, {size})',
|
|
46
|
-
'publish.uploading': 'Uploading...',
|
|
47
|
-
'publish.publishing': 'Publishing...',
|
|
48
|
-
'publish.continue': 'Continue? [Y/n]: ',
|
|
49
|
-
'publish.siteNamePrompt': 'Site name [{candidate}]: ',
|
|
50
|
-
'publish.invalidSiteName': 'Site name is required.',
|
|
51
|
-
'publish.invalidSiteName.fix': 'Use --site <name>, add "site" to 42ws.json, or run with --yes to use the directory name.',
|
|
52
|
-
// publish: embed detach warning
|
|
53
|
-
'publish.detach.warningHeader': '⚠️ WARNING: This publish will remove embedded form(s):',
|
|
54
|
-
'publish.detach.formLine': ' - "{name}" on {page}',
|
|
55
|
-
'publish.detach.explain': ' These forms are tracked as embedded in this site. Publishing will overwrite the embed.',
|
|
56
|
-
'publish.detach.recommend': ' Recommended: pull the live site first to keep the embed snippet:',
|
|
57
|
-
'publish.detach.pullCmd': ' 42ws pull --site {site} --dir <local-dir>',
|
|
58
|
-
'publish.detach.merge': ' Then merge the changes you want and re-publish.',
|
|
59
|
-
'publish.detach.alt1': ' Alternative: recover from the form detail page in the dashboard,',
|
|
60
|
-
'publish.detach.alt2': ' or paste the embed snippet into your local source manually.',
|
|
61
|
-
'publish.detach.allowDetachSet': ' --allow-detach is set. Continuing anyway.',
|
|
62
|
-
'publish.detach.confirmPrompt': 'Continue and overwrite? [y/N]: ',
|
|
63
|
-
'publish.detach.blocked': 'Refusing to publish: this would remove embedded form(s) from the site.',
|
|
64
|
-
'publish.detach.blocked.fix': 'Re-run with --allow-detach to overwrite, or update your local source to keep the embed snippet.',
|
|
65
|
-
// sites delete
|
|
66
|
-
'sitesDelete.usage': 'Usage: 42ws sites delete <name>',
|
|
67
|
-
'sitesDelete.invalidFlags': 'Cannot specify both --delete-forms and --keep-forms.',
|
|
68
|
-
'sitesDelete.invalidFlags.collections': 'Cannot specify both --delete-collections and --keep-collections.',
|
|
69
|
-
'sitesDelete.invalidFlags.fix': 'Pick one.',
|
|
70
|
-
'sitesDelete.targetHeader': 'Site to delete: {name}',
|
|
71
|
-
'sitesDelete.linkedFormsHeader': 'Linked forms ({count}):',
|
|
72
|
-
'sitesDelete.linkedCollectionsHeader': 'Linked collections ({count}):',
|
|
73
|
-
'sitesDelete.linkedFormItem': ' - "{name}" on {page}',
|
|
74
|
-
'sitesDelete.alsoDeleteForms': 'Also delete the {count} linked form(s)? [y/N]: ',
|
|
75
|
-
'sitesDelete.alsoDeleteCollections': 'Also delete the {count} linked collection(s)? [y/N]: ',
|
|
76
|
-
'sitesDelete.keepFormsNote': 'Note: {count} linked form(s) will be kept (default). Use --delete-forms to remove them too.',
|
|
77
|
-
'sitesDelete.keepCollectionsNote': 'Note: {count} linked collection(s) will be kept (default). Use --delete-collections to remove them too.',
|
|
78
|
-
'sitesDelete.confirmRequired': 'Refusing to delete site without confirmation.',
|
|
79
|
-
'sitesDelete.confirmRequired.fix': 'Add --force to delete in non-interactive mode. (--yes is not accepted for destructive operations.)',
|
|
80
|
-
'sitesDelete.confirmPrompt.both': 'Delete site "{name}" and {count} linked resource(s)? Type the site name to confirm: ',
|
|
81
|
-
'sitesDelete.confirmPrompt.siteOnly': 'Delete site "{name}"? Type the site name to confirm: ',
|
|
82
|
-
'sitesDelete.formDeleteFailed': 'Failed to delete form "{name}" ({id}): {message}',
|
|
83
|
-
'sitesDelete.collectionDeleteFailed': 'Failed to delete collection "{name}" ({id}): {message}',
|
|
84
|
-
'sitesDelete.deleted': 'Deleted: {name}',
|
|
85
|
-
'sitesDelete.summary.formsDeleted': 'forms deleted: {ok}, failed: {failed}',
|
|
86
|
-
'sitesDelete.summary.formsKept': 'forms kept: {count}',
|
|
87
|
-
'sitesDelete.summary.collectionsDeleted': 'collections deleted: {ok}, failed: {failed}',
|
|
88
|
-
'sitesDelete.summary.collectionsKept': 'collections kept: {count}',
|
|
89
|
-
// generic delete (forms / collections / entries)
|
|
90
|
-
'delete.idRequired.usage': 'Usage: 42ws {usage}',
|
|
91
|
-
'delete.idRequired.fix': 'Run `42ws {listCmd}` to find the id.',
|
|
92
|
-
'delete.confirmRequired': 'Refusing to delete without confirmation.',
|
|
93
|
-
'delete.confirmRequired.fix': 'Add --force to delete in non-interactive mode. (--yes is not accepted for destructive operations.)',
|
|
94
|
-
'delete.confirmPrompt.form': 'Delete form "{id}"? Type the id to confirm: ',
|
|
95
|
-
'delete.confirmPrompt.collection': 'Delete collection "{id}" (entries will also be removed)? Type the id to confirm: ',
|
|
96
|
-
'delete.confirmPrompt.entry': 'Delete entry "{id}"? Type the id to confirm: ',
|
|
97
|
-
'delete.cancelled.idMismatch': 'Cancelled (id did not match).',
|
|
98
|
-
'delete.deleted': 'Deleted: {id}',
|
|
99
|
-
// list (empty / orphan label)
|
|
100
|
-
'forms.list.empty': 'No forms yet. Create one with `42ws forms import`.',
|
|
101
|
-
'collections.list.empty': 'No collections yet. Create one with `42ws collections import`.',
|
|
102
|
-
'entries.list.empty': 'No entries yet. Add one with `42ws collections entries add`.',
|
|
103
|
-
'linked.orphan': '(orphan)',
|
|
104
|
-
// entries add
|
|
105
|
-
'entries.add.collIdRequired': 'Usage: 42ws collections entries add <coll-id> --title ...',
|
|
106
|
-
'entries.add.titleRequired': '--title <text> is required.',
|
|
107
|
-
'entries.add.titleRequired.fix': 'Example: --title "New post"',
|
|
108
|
-
'entries.add.fileNotFound': 'Image not found: {path}',
|
|
109
|
-
'entries.add.uploading.main': 'Uploading mainImage: {path}',
|
|
110
|
-
'entries.add.uploading.sub': 'Uploading subImage: {path}',
|
|
111
|
-
'entries.add.uploaded': ' -> uploaded ({size}, {ms}ms)',
|
|
112
|
-
'entries.add.created': 'Added: {id} ({status})',
|
|
113
|
-
'delete.embedLeftover.warn': 'Note: the embed snippet may still remain on {site}/{page}. Re-import may fail until you remove it manually (or re-publish without it).',
|
|
114
|
-
'collections.republish.starting': 'Re-rendering collection {id}...',
|
|
115
|
-
'collections.republish.done': 'Re-rendered {count} entries + index for {id}.',
|
|
116
|
-
'collections.republish.brokenImages': 'Warning: {count} image reference(s) are missing on the published site (will appear broken on rendered pages):',
|
|
117
|
-
'collections.republish.brokenImages.fix': 'Fix: re-upload via `42ws collections entries set <entry-id> --main-image <path>` (or --sub-images).',
|
|
118
|
-
// suggestions ("next steps" hints returned by API as { key, cmd?, url? })
|
|
119
|
-
'suggest.header': '\n💡 Next steps:',
|
|
120
|
-
'suggest.publish-now.label': 'Publish your site now',
|
|
121
|
-
'suggest.publish-now.hint': 'Publishes the current directory (or its build output) as-is.',
|
|
122
|
-
'suggest.open-editor.label': 'Edit interactively in the web editor',
|
|
123
|
-
'suggest.open-editor-first.label': 'Make your first edit in the web editor',
|
|
124
|
-
'suggest.open-editor-first.hint': 'Saving creates the first entry in your edit history.',
|
|
125
|
-
'suggest.forms-import.label': 'Import your contact form into 42ws',
|
|
126
|
-
'suggest.forms-import.hint': 'If your site has a <form>, one command auto-replaces and re-publishes.',
|
|
127
|
-
'suggest.collections-import.label': 'Make news/portfolio entries grow-able later',
|
|
128
|
-
'suggest.collections-import.hint': 'AI builds the templates from your existing list page.',
|
|
129
|
-
'suggest.activate-hosting-license.label': 'Enable Hosting',
|
|
130
|
-
'suggest.activate-hosting-license.hint': 'Switch on at the plan / license page.',
|
|
131
|
-
'suggest.activate-collection-license.label': 'Enable the Collection (CMS) feature',
|
|
132
|
-
'suggest.activate-contact-license.label': 'Enable the Contact form feature',
|
|
133
|
-
'suggest.list-sites.label': 'Check your sites',
|
|
134
|
-
'suggest.create-site.label': 'Create a new site',
|
|
135
|
-
'suggest.create-site.hint': 'Names allow lower-case letters, digits, and hyphens.',
|
|
136
|
-
'suggest.view-site.label': 'Open the published site to verify',
|
|
137
|
-
'suggest.editlog-show.label': 'See the edit history for this change',
|
|
138
|
-
'suggest.login-again.label': 'Log in again',
|
|
139
|
-
'suggest.sitecard-refresh-summary.label': 'Refresh the site card summary',
|
|
140
|
-
'suggest.sitecard-refresh-summary.hint': 'Pulls recent edit / chat logs and asks the AI to regenerate the 2000-char summary.',
|
|
141
|
-
},
|
|
142
|
-
ja: {
|
|
143
|
-
'cancelled': 'キャンセルしました。',
|
|
144
|
-
'cancelled.byUser': 'ユーザーによってキャンセルされました。',
|
|
145
|
-
'cancelled.nameMismatch': 'キャンセルしました(名前が一致しませんでした)。',
|
|
146
|
-
'notLoggedIn': 'ログインしていません。',
|
|
147
|
-
'notLoggedIn.fix': '`42ws login` でログインしてください。',
|
|
148
|
-
'networkError.fix': 'ネットワーク接続を確認してください。',
|
|
149
|
-
'tryAgain': 'もう一度お試しください。',
|
|
150
|
-
'publish.detected': '{framework} プロジェクトを検出しました。',
|
|
151
|
-
'publish.buildCommand': ' ビルドコマンド: {cmd}',
|
|
152
|
-
'publish.outputDir': ' 出力ディレクトリ: {dir}',
|
|
153
|
-
'publish.collecting': 'ファイルを収集中...',
|
|
154
|
-
'publish.collected': 'ファイルを収集しました ({count} ファイル, {size})',
|
|
155
|
-
'publish.uploading': 'アップロード中...',
|
|
156
|
-
'publish.publishing': 'パブリッシュ中...',
|
|
157
|
-
'publish.continue': '続行しますか? [Y/n]: ',
|
|
158
|
-
'publish.siteNamePrompt': 'サイト名 [{candidate}]: ',
|
|
159
|
-
'publish.invalidSiteName': 'サイト名が必要です。',
|
|
160
|
-
'publish.invalidSiteName.fix': '--site <名前> を指定するか、42ws.json に "site" を追加するか、--yes でディレクトリ名を使用してください。',
|
|
161
|
-
'publish.detach.warningHeader': '⚠️ 警告: このパブリッシュにより、以下の埋め込みフォームが消えます:',
|
|
162
|
-
'publish.detach.formLine': ' - 「{name}」 ({page})',
|
|
163
|
-
'publish.detach.explain': ' これらのフォームはこのサイトに埋め込まれているものとして登録されています。パブリッシュすると埋め込みが上書きされます。',
|
|
164
|
-
'publish.detach.recommend': ' 推奨: まずライブサイトを取り込んで埋め込みコードを保持してください:',
|
|
165
|
-
'publish.detach.pullCmd': ' 42ws pull --site {site} --dir <ローカルディレクトリ>',
|
|
166
|
-
'publish.detach.merge': ' 変更をマージしてから再パブリッシュしてください。',
|
|
167
|
-
'publish.detach.alt1': ' または: 管理画面のフォーム詳細画面から復旧、',
|
|
168
|
-
'publish.detach.alt2': ' もしくはローカルソースに埋め込みコードを手動で貼り付けてください。',
|
|
169
|
-
'publish.detach.allowDetachSet': ' --allow-detach が指定されているため、続行します。',
|
|
170
|
-
'publish.detach.confirmPrompt': '上書きして続行しますか? [y/N]: ',
|
|
171
|
-
'publish.detach.blocked': 'パブリッシュを中止しました: 埋め込みフォームが消えてしまいます。',
|
|
172
|
-
'publish.detach.blocked.fix': '--allow-detach を付けて再実行するか、ローカルソースに埋め込みコードを残してください。',
|
|
173
|
-
'sitesDelete.usage': '使い方: 42ws sites delete <名前>',
|
|
174
|
-
'sitesDelete.invalidFlags': '--delete-forms と --keep-forms は同時に指定できません。',
|
|
175
|
-
'sitesDelete.invalidFlags.collections': '--delete-collections と --keep-collections は同時に指定できません。',
|
|
176
|
-
'sitesDelete.invalidFlags.fix': 'どちらか一方を選んでください。',
|
|
177
|
-
'sitesDelete.targetHeader': '削除対象サイト: {name}',
|
|
178
|
-
'sitesDelete.linkedFormsHeader': '紐付くフォーム ({count}件):',
|
|
179
|
-
'sitesDelete.linkedCollectionsHeader': '紐付くコレクション ({count}件):',
|
|
180
|
-
'sitesDelete.linkedFormItem': ' - 「{name}」 ({page})',
|
|
181
|
-
'sitesDelete.alsoDeleteForms': '紐付く {count} 件のフォームも削除しますか? [y/N]: ',
|
|
182
|
-
'sitesDelete.alsoDeleteCollections': '紐付く {count} 件のコレクションも削除しますか? [y/N]: ',
|
|
183
|
-
'sitesDelete.keepFormsNote': '注意: {count} 件のフォームは保持されます (デフォルト)。一緒に削除する場合は --delete-forms を指定してください。',
|
|
184
|
-
'sitesDelete.keepCollectionsNote': '注意: {count} 件のコレクションは保持されます (デフォルト)。一緒に削除する場合は --delete-collections を指定してください。',
|
|
185
|
-
'sitesDelete.confirmRequired': '確認なしでサイトを削除することはできません。',
|
|
186
|
-
'sitesDelete.confirmRequired.fix': '非対話モードで削除する場合は --force を指定してください。(破壊的操作には --yes は受け付けません)',
|
|
187
|
-
'sitesDelete.confirmPrompt.both': 'サイト「{name}」と紐付く {count} 件のリソースを削除します。確認のためサイト名を入力してください: ',
|
|
188
|
-
'sitesDelete.confirmPrompt.siteOnly': 'サイト「{name}」を削除します。確認のためサイト名を入力してください: ',
|
|
189
|
-
'sitesDelete.formDeleteFailed': 'フォーム「{name}」({id}) の削除に失敗しました: {message}',
|
|
190
|
-
'sitesDelete.collectionDeleteFailed': 'コレクション「{name}」({id}) の削除に失敗しました: {message}',
|
|
191
|
-
'sitesDelete.deleted': '削除しました: {name}',
|
|
192
|
-
'sitesDelete.summary.formsDeleted': 'フォーム削除: {ok} / 失敗: {failed}',
|
|
193
|
-
'sitesDelete.summary.formsKept': 'フォーム保持: {count}',
|
|
194
|
-
'sitesDelete.summary.collectionsDeleted': 'コレクション削除: {ok} / 失敗: {failed}',
|
|
195
|
-
'sitesDelete.summary.collectionsKept': 'コレクション保持: {count}',
|
|
196
|
-
'delete.idRequired.usage': '使い方: 42ws {usage}',
|
|
197
|
-
'delete.idRequired.fix': '`42ws {listCmd}` で id を確認してください。',
|
|
198
|
-
'delete.confirmRequired': '確認なしで削除することはできません。',
|
|
199
|
-
'delete.confirmRequired.fix': '非対話モードで削除する場合は --force を指定してください。(破壊的操作には --yes は受け付けません)',
|
|
200
|
-
'delete.confirmPrompt.form': 'フォーム「{id}」を削除します。確認のため id を入力してください: ',
|
|
201
|
-
'delete.confirmPrompt.collection': 'コレクション「{id}」を削除します(エントリも全件削除)。確認のため id を入力してください: ',
|
|
202
|
-
'delete.confirmPrompt.entry': 'エントリ「{id}」を削除します。確認のため id を入力してください: ',
|
|
203
|
-
'delete.cancelled.idMismatch': 'キャンセルしました(id が一致しませんでした)。',
|
|
204
|
-
'delete.deleted': '削除しました: {id}',
|
|
205
|
-
'forms.list.empty': 'フォームはありません。`42ws forms import` で作成できます。',
|
|
206
|
-
'collections.list.empty': 'コレクションはありません。`42ws collections import` で作成できます。',
|
|
207
|
-
'entries.list.empty': 'エントリはありません。`42ws collections entries add` で追加できます。',
|
|
208
|
-
'linked.orphan': '(孤立)',
|
|
209
|
-
'entries.add.collIdRequired': '使い方: 42ws collections entries add <coll-id> --title ...',
|
|
210
|
-
'entries.add.titleRequired': '--title <text> を指定してください。',
|
|
211
|
-
'entries.add.titleRequired.fix': '例: --title "新着のお知らせ"',
|
|
212
|
-
'entries.add.fileNotFound': '画像が見つかりません: {path}',
|
|
213
|
-
'entries.add.uploading.main': 'mainImage をアップロード中: {path}',
|
|
214
|
-
'entries.add.uploading.sub': 'subImage をアップロード中: {path}',
|
|
215
|
-
'entries.add.uploaded': ' -> アップロード完了 ({size}, {ms}ms)',
|
|
216
|
-
'entries.add.created': '追加しました: {id} ({status})',
|
|
217
|
-
'delete.embedLeftover.warn': '注意: {site}/{page} に埋め込みコードが残っている可能性があります。再 import が失敗する場合は手動で除去してください(または埋め込みなしで再 publish)。',
|
|
218
|
-
'collections.republish.starting': 'コレクション {id} を再 render 中...',
|
|
219
|
-
'collections.republish.done': 'コレクション {id} の {count} エントリ + index を再 render しました。',
|
|
220
|
-
'collections.republish.brokenImages': '警告: {count} 件の画像が公開先に存在しません(ページ上で画像が壊れて表示されます):',
|
|
221
|
-
'collections.republish.brokenImages.fix': '対処: `42ws collections entries set <entry-id> --main-image <path>` (または --sub-images) で再アップロードしてください。',
|
|
222
|
-
// サジェスト(API が { key, cmd?, url? } で返す「次の手」)
|
|
223
|
-
'suggest.header': '\n💡 次の手:',
|
|
224
|
-
'suggest.publish-now.label': 'いますぐ公開してみる',
|
|
225
|
-
'suggest.publish-now.hint': '今のディレクトリ(ビルド後の出力)をそのまま公開できます。',
|
|
226
|
-
'suggest.open-editor.label': '管理画面のエディタで AI と対話しながら手直しする',
|
|
227
|
-
'suggest.open-editor-first.label': 'エディタで最初の編集を始める',
|
|
228
|
-
'suggest.open-editor-first.hint': '保存すると編集履歴の起点になります。',
|
|
229
|
-
'suggest.forms-import.label': 'お問い合わせフォームを 42ws に取り込む',
|
|
230
|
-
'suggest.forms-import.hint': 'サイトに <form> があれば 1 コマンドで自動置換 + 再公開できます。',
|
|
231
|
-
'suggest.collections-import.label': 'お知らせ・実績などを後から増やせるようにする',
|
|
232
|
-
'suggest.collections-import.hint': '一覧ページから AI がテンプレートを自動生成します。',
|
|
233
|
-
'suggest.activate-hosting-license.label': 'ホスティングを有効化する',
|
|
234
|
-
'suggest.activate-hosting-license.hint': '料金プラン / ライセンス管理ページから切り替え。',
|
|
235
|
-
'suggest.activate-collection-license.label': 'コレクション (CMS) 機能を有効化する',
|
|
236
|
-
'suggest.activate-contact-license.label': '問い合わせフォーム機能を有効化する',
|
|
237
|
-
'suggest.list-sites.label': '自分のサイト一覧を確認する',
|
|
238
|
-
'suggest.create-site.label': 'サイトを新しく作る',
|
|
239
|
-
'suggest.create-site.hint': '名前は小文字英数とハイフンのみ。',
|
|
240
|
-
'suggest.view-site.label': '反映されたサイトを開いて確認する',
|
|
241
|
-
'suggest.editlog-show.label': 'この編集の履歴を確認する',
|
|
242
|
-
'suggest.login-again.label': '再ログインする',
|
|
243
|
-
'suggest.sitecard-refresh-summary.label': 'サイトカルテの summary を更新する',
|
|
244
|
-
'suggest.sitecard-refresh-summary.hint': '直近の編集・チャットログを取り出して AI に summary (2000 字) を作り直させる。',
|
|
245
|
-
},
|
|
246
|
-
};
|
|
247
|
-
export function t(key, params) {
|
|
248
|
-
const template = messages[activeLocale]?.[key] ?? messages.en[key] ?? key;
|
|
249
|
-
if (!params)
|
|
250
|
-
return template;
|
|
251
|
-
return template.replace(/\{(\w+)\}/g, (_, k) => {
|
|
252
|
-
const v = params[k];
|
|
253
|
-
return v === undefined || v === null ? `{${k}}` : String(v);
|
|
254
|
-
});
|
|
255
|
-
}
|
|
256
|
-
//# sourceMappingURL=i18n.js.map
|
package/dist/lib/i18n.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/lib/i18n.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
interface FormsPromptInput {
|
|
2
|
-
html: string;
|
|
3
|
-
source: {
|
|
4
|
-
kind: 'site';
|
|
5
|
-
site: string;
|
|
6
|
-
page: string;
|
|
7
|
-
} | {
|
|
8
|
-
kind: 'url';
|
|
9
|
-
url: string;
|
|
10
|
-
} | {
|
|
11
|
-
kind: 'file';
|
|
12
|
-
path: string;
|
|
13
|
-
};
|
|
14
|
-
baseUrl?: string;
|
|
15
|
-
notify: string;
|
|
16
|
-
name?: string;
|
|
17
|
-
inject: boolean;
|
|
18
|
-
/**
|
|
19
|
-
* AI に提案する一時 JSON 出力ファイルのパス。CLI 側で生成 (例: /tmp/42ws-form-abc123.json)。
|
|
20
|
-
* 提示する `forms create --from-json <path>` の path を埋めることで、AI のコピペ精度を上げる。
|
|
21
|
-
*/
|
|
22
|
-
suggestedJsonPath: string;
|
|
23
|
-
}
|
|
24
|
-
interface CollectionsPromptInput {
|
|
25
|
-
html: string;
|
|
26
|
-
source: {
|
|
27
|
-
kind: 'site';
|
|
28
|
-
site: string;
|
|
29
|
-
page: string;
|
|
30
|
-
} | {
|
|
31
|
-
kind: 'url';
|
|
32
|
-
url: string;
|
|
33
|
-
} | {
|
|
34
|
-
kind: 'file';
|
|
35
|
-
path: string;
|
|
36
|
-
};
|
|
37
|
-
baseUrl?: string;
|
|
38
|
-
name?: string;
|
|
39
|
-
slug?: string;
|
|
40
|
-
inject: boolean;
|
|
41
|
-
suggestedJsonPath: string;
|
|
42
|
-
}
|
|
43
|
-
export declare function buildFormsImportPrompt(input: FormsPromptInput): string;
|
|
44
|
-
export declare function buildCollectionsImportPrompt(input: CollectionsPromptInput): string;
|
|
45
|
-
export {};
|
|
46
|
-
//# sourceMappingURL=import-prompts.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"import-prompts.d.ts","sourceRoot":"","sources":["../../src/lib/import-prompts.ts"],"names":[],"mappings":"AAKA,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,KAAK,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACrH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,UAAU,sBAAsB;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,KAAK,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACrH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AA0BD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAsGtE;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM,CAmJlF"}
|
|
@@ -1,279 +0,0 @@
|
|
|
1
|
-
// AI に渡す「素材+抽出指示」プロンプトを生成する。
|
|
2
|
-
// `forms import` / `collections import` はサーバ側 AI を使わず、ここで作った
|
|
3
|
-
// プロンプトを stdout に出して、呼び出し元の AI(Claude Code / Codex 等)に
|
|
4
|
-
// JSON を生成させ、`forms create` / `collections create` で書き戻す。
|
|
5
|
-
// フィールド型ボキャブラリの単一ソース(AI プロンプト統一 / Phase 2)。
|
|
6
|
-
// プロース表現(" / " 区切り)と出力 JSON スキーマの type union("|" 区切り)を
|
|
7
|
-
// ここから導出し、forms / collections それぞれで 2 箇所に散っていた型リストが
|
|
8
|
-
// ドリフトしないようにする。値は CommonFieldType の部分集合に対応:
|
|
9
|
-
// - form: FormField の FieldType(9 型)
|
|
10
|
-
// - collection: Collection.fields の型のうち AI に生成させる 10 型(image/url 含む)
|
|
11
|
-
const FORM_FIELD_TYPES = ['text', 'email', 'tel', 'date', 'textarea', 'select', 'radio', 'checkbox', 'address'];
|
|
12
|
-
const COLLECTION_FIELD_TYPES = ['text', 'textarea', 'number', 'date', 'boolean', 'url', 'image', 'select', 'radio', 'checkbox'];
|
|
13
|
-
function quoteShell(s) {
|
|
14
|
-
if (/^[a-zA-Z0-9_\-./@#:%]+$/.test(s))
|
|
15
|
-
return s;
|
|
16
|
-
return `'${s.replace(/'/g, `'\\''`)}'`;
|
|
17
|
-
}
|
|
18
|
-
function buildCreateCmd(parts) {
|
|
19
|
-
const args = [];
|
|
20
|
-
for (const [k, v] of Object.entries(parts)) {
|
|
21
|
-
if (v === undefined || v === false || v === '')
|
|
22
|
-
continue;
|
|
23
|
-
if (v === true)
|
|
24
|
-
args.push(`--${k}`);
|
|
25
|
-
else
|
|
26
|
-
args.push(`--${k} ${quoteShell(String(v))}`);
|
|
27
|
-
}
|
|
28
|
-
return args.join(' ');
|
|
29
|
-
}
|
|
30
|
-
export function buildFormsImportPrompt(input) {
|
|
31
|
-
const { html, source, notify, name, inject, suggestedJsonPath } = input;
|
|
32
|
-
const baseUrl = input.baseUrl ?? (source.kind === 'url' ? source.url : '');
|
|
33
|
-
const linkArgs = source.kind === 'site'
|
|
34
|
-
? { site: source.site, page: source.page }
|
|
35
|
-
: source.kind === 'file'
|
|
36
|
-
? { file: source.path }
|
|
37
|
-
: {};
|
|
38
|
-
const createCmdTail = buildCreateCmd({
|
|
39
|
-
'from-json': suggestedJsonPath,
|
|
40
|
-
notify,
|
|
41
|
-
name,
|
|
42
|
-
...linkArgs,
|
|
43
|
-
inject,
|
|
44
|
-
});
|
|
45
|
-
return `# フォーム取り込みタスク (2 段の **1 段目** / 抽出フェーズ)
|
|
46
|
-
|
|
47
|
-
> このコマンドは **AI に渡す素材とプロンプトを出すだけ** で、42ws には何も保存されていません。
|
|
48
|
-
> 抽出 JSON を作って **\`forms create\` を実行する 2 段目** が必要です。
|
|
49
|
-
|
|
50
|
-
以下の HTML を読み取り、フォーム定義 JSON を \`${suggestedJsonPath}\` に保存し、最後に \`forms create\` で書き戻してください。
|
|
51
|
-
|
|
52
|
-
## 取り込み元
|
|
53
|
-
|
|
54
|
-
- 種別: ${source.kind}${source.kind === 'site' ? ` (${source.site}/${source.page})` : source.kind === 'url' ? ` (${source.url})` : ` (${source.path})`}
|
|
55
|
-
${baseUrl ? `- baseUrl: ${baseUrl}` : ''}
|
|
56
|
-
|
|
57
|
-
## 抽出ルール
|
|
58
|
-
|
|
59
|
-
- input / select / textarea を抽出。submit / button / hidden / honeypot (display:none 等) は除外
|
|
60
|
-
- ラベルは <label> / 前後の見出し / placeholder から推定。日本語ページなら日本語で
|
|
61
|
-
- type は ${FORM_FIELD_TYPES.join(' / ')} のいずれか
|
|
62
|
-
- 「プライバシーポリシーに同意」等の同意必須チェックは type=checkbox + required=true。label を短い項目名、placeholder にチェックボックス横の文言全文
|
|
63
|
-
- 住所(郵便番号・都道府県・市区町村が並ぶ塊)は必ず単一の address フィールドにまとめる(郵便番号 → 住所の自動補完を持つため 3 つに割らない)
|
|
64
|
-
- select / radio / checkbox の options に選択肢の表示テキストを配列で
|
|
65
|
-
- required は required 属性 / aria-required / 「必須」表記から判定
|
|
66
|
-
- フォームのタイトル (h1/h2/legend 等) を name として返す
|
|
67
|
-
- 抽出箇所の note / 複数フォーム / ハニーポット除外などは warnings に短く記載
|
|
68
|
-
- 自信のない判断は confidence: "low"、明確なら "high"
|
|
69
|
-
|
|
70
|
-
## 見た目の継承(重要)
|
|
71
|
-
|
|
72
|
-
- themeColor (#RRGGBB): 送信ボタン / CTA / ヘッダ / リンクなどページの主要アクセント色を 1 つ。CSS 変数や button/cta 系の background から推定。手がかりが無い場合のみ空文字
|
|
73
|
-
- css: 以下のクラス名にだけセレクタを当てて書く(<style> タグは不要、@import 禁止、8KB 以内)
|
|
74
|
-
|
|
75
|
-
入力フォーム画面:
|
|
76
|
-
.contakun-form / .contakun-label / .contakun-input / .contakun-textarea
|
|
77
|
-
.contakun-select / .contakun-button-primary / .contakun-button-secondary
|
|
78
|
-
確認・完了画面(忘れずに書く。雰囲気の一貫性のため):
|
|
79
|
-
.contakun-confirm / .contakun-confirm-title / .contakun-confirm-description
|
|
80
|
-
.contakun-confirm-content / .contakun-confirm-item / .contakun-confirm-label / .contakun-confirm-value
|
|
81
|
-
.contakun-complete / .contakun-complete-title / .contakun-complete-message
|
|
82
|
-
|
|
83
|
-
- 元ページの border-radius / padding / font / shadow をミミックする
|
|
84
|
-
- font-family は body や :root の指定をそのまま流用してよい(Web font の新規追加はしない)
|
|
85
|
-
- 役割ごとに差を付ける。同じ宣言を全クラスに当てない
|
|
86
|
-
- 完全に手がかりが無いときのみ css は空文字
|
|
87
|
-
|
|
88
|
-
## 出力 JSON スキーマ
|
|
89
|
-
|
|
90
|
-
\`\`\`json
|
|
91
|
-
{
|
|
92
|
-
"name": "string",
|
|
93
|
-
"themeColor": "#RRGGBB | \\"\\"",
|
|
94
|
-
"css": "string | \\"\\"",
|
|
95
|
-
"warnings": ["string", ...],
|
|
96
|
-
"fields": [
|
|
97
|
-
{
|
|
98
|
-
"type": "${FORM_FIELD_TYPES.join('|')}",
|
|
99
|
-
"name": "英数字の name 属性",
|
|
100
|
-
"label": "画面表示ラベル",
|
|
101
|
-
"placeholder": "string?",
|
|
102
|
-
"required": true,
|
|
103
|
-
"options": ["string", ...]?,
|
|
104
|
-
"confidence": "high|low",
|
|
105
|
-
"note": "low の場合のみ推定根拠"
|
|
106
|
-
}
|
|
107
|
-
]
|
|
108
|
-
}
|
|
109
|
-
\`\`\`
|
|
110
|
-
|
|
111
|
-
抽出できない(フォームが見当たらない / 解釈不能)なら、その旨を簡潔に説明してユーザーに HTML 範囲の指定を促してください(JSON は出力しない)。
|
|
112
|
-
|
|
113
|
-
## 完了したら(2 段目)
|
|
114
|
-
|
|
115
|
-
1. 上記 JSON を \`${suggestedJsonPath}\` に書き出す(パスは固定で OK / 既定で生成済み)
|
|
116
|
-
2. 次のコマンドで 42ws に登録:
|
|
117
|
-
|
|
118
|
-
\`\`\`
|
|
119
|
-
42ws forms create ${createCmdTail}
|
|
120
|
-
\`\`\`
|
|
121
|
-
|
|
122
|
-
${inject ? '`--inject` 付きなので、`forms create` がローカル該当ページ (42ws.json の output や dist/ 等を自動探索) の最初の <form> を embed スニペットに置き換えます → そのあと `42ws publish` で反映。ローカルが見つからない場合のみリモートを直接更新します。\n' : ''}
|
|
123
|
-
---
|
|
124
|
-
|
|
125
|
-
## HTML
|
|
126
|
-
|
|
127
|
-
\`\`\`html
|
|
128
|
-
${html}
|
|
129
|
-
\`\`\`
|
|
130
|
-
`;
|
|
131
|
-
}
|
|
132
|
-
export function buildCollectionsImportPrompt(input) {
|
|
133
|
-
const { html, source, name, slug, inject, suggestedJsonPath } = input;
|
|
134
|
-
const baseUrl = input.baseUrl ?? (source.kind === 'url' ? source.url : '');
|
|
135
|
-
const linkArgs = source.kind === 'site'
|
|
136
|
-
? { site: source.site, page: source.page }
|
|
137
|
-
: source.kind === 'file'
|
|
138
|
-
? { file: source.path }
|
|
139
|
-
: {};
|
|
140
|
-
const createCmdTail = buildCreateCmd({
|
|
141
|
-
'from-json': suggestedJsonPath,
|
|
142
|
-
name,
|
|
143
|
-
slug,
|
|
144
|
-
...linkArgs,
|
|
145
|
-
inject,
|
|
146
|
-
});
|
|
147
|
-
return `# コレクション取り込みタスク (2 段の **1 段目** / 生成フェーズ)
|
|
148
|
-
|
|
149
|
-
> このコマンドは **AI に渡す素材とプロンプトを出すだけ** で、42ws には何も保存されていません。
|
|
150
|
-
> 生成 JSON を作って **\`collections create\` を実行する 2 段目** が必要です。
|
|
151
|
-
|
|
152
|
-
以下の HTML を読み取り、コレクション定義 JSON を \`${suggestedJsonPath}\` に保存し、最後に \`collections create\` で書き戻してください。
|
|
153
|
-
|
|
154
|
-
## 取り込み元
|
|
155
|
-
|
|
156
|
-
- 種別: ${source.kind}${source.kind === 'site' ? ` (${source.site}/${source.page})` : source.kind === 'url' ? ` (${source.url})` : ` (${source.path})`}
|
|
157
|
-
${baseUrl ? `- baseUrl: ${baseUrl}` : ''}
|
|
158
|
-
|
|
159
|
-
## やること
|
|
160
|
-
|
|
161
|
-
- HTML からそのサイトの「雰囲気」(配色・余白・フォント・角丸・ボタン形・カード形・リンク色)を読み取り、CMS の **索引テンプレート (indexTemplate)** と **詳細テンプレート (detailTemplate)** を Mustache で生成する
|
|
162
|
-
- 索引は既存ページの \`<main>\` 等に埋め込まれる前提。**ヘッダー・フッター・グローバルナビは含めない**
|
|
163
|
-
- 元ページに記事一覧がある場合はその構造を尊重。なければ一般的なカード/ボタン/見出しスタイルから推定
|
|
164
|
-
- それぞれ \`<style>...</style>\` + HTML のフラグメントとして返す
|
|
165
|
-
- **ドメイン固有の構造化データを見抜いて \`fields\` を起こす**(下記「カスタムフィールド (fields)」参照)
|
|
166
|
-
|
|
167
|
-
## themeColor (#RRGGBB)
|
|
168
|
-
|
|
169
|
-
- ページの主要アクセント色を 1 つ。CSS 変数や button/link の色から推定。完全に手がかりが無いときのみ空文字
|
|
170
|
-
|
|
171
|
-
## カスタムフィールド (fields)
|
|
172
|
-
|
|
173
|
-
タイトル・本文・画像・タグ以外に、その業種ならではの**構造化された項目**があれば \`fields\` として定義する。判断はあなた(AI)に委ねる。
|
|
174
|
-
|
|
175
|
-
- 例: 不動産物件なら \`price(number)\` / \`location(text)\` / \`madori(select)\` / \`area(number)\` / \`station(text)\`、飲食メニューなら \`price(number)\` / \`allergy(text, repeat)\`、求人なら \`salary(text)\` / \`employmentType(select)\`
|
|
176
|
-
- 各 field: \`{ "key": "price", "type": "number", "label": "価格", "required": false, "repeat": false, "options": [] }\`
|
|
177
|
-
- \`key\`: 英字始まりの英数字・アンダースコアのみ(\`^[a-zA-Z][a-zA-Z0-9_]*$\`)。テンプレで \`{{data.key}}\` として参照する
|
|
178
|
-
- \`type\`: ${COLLECTION_FIELD_TYPES.map((t) => `\`${t}\``).join(' / ')}。\`select/radio/checkbox\` は \`options\` 必須
|
|
179
|
-
- \`repeat: true\` で配列フィールド(複数値。フラットのみ、ネスト不可)
|
|
180
|
-
- **構造化データが見当たらない一般的なブログ/お知らせなら \`fields\` は空配列 \`[]\` でよい**(無理に作らない)
|
|
181
|
-
- テンプレでの使い方:
|
|
182
|
-
- \`{{data.price}}\` … 生値(エスケープ済みスカラ)
|
|
183
|
-
- \`{{dataFormatted.price}}\` … 型整形済み(number は桁区切り「1,234,567」/ date は「YYYY年M月D日」/ 配列は「、」結合)
|
|
184
|
-
- \`{{{dataHtml.photo}}}\` … image→\`<img>\`, url→\`<a>\` の安全な HTML(三重波括弧)
|
|
185
|
-
- \`{{#data.tags2}}…{{.}}…{{/data.tags2}}\` … repeat フィールドの反復
|
|
186
|
-
|
|
187
|
-
## Mustache 変数(固定変数 + fields で定義した \`{{data.key}}\` のみ)
|
|
188
|
-
|
|
189
|
-
> 固定変数(下記)に加え、\`fields\` で定義したキーは \`{{data.key}}\` / \`{{dataFormatted.key}}\` / \`{{{dataHtml.key}}}\` / \`{{#data.key}}…{{/data.key}}\` で使える。
|
|
190
|
-
> **\`fields\` に無いキーは発明しない**(未定義変数は空文字で描画され、バグの温床になる)。
|
|
191
|
-
|
|
192
|
-
索引 (indexTemplate)
|
|
193
|
-
- 全体は \`{{#entries}}...{{/entries}}\` で繰り返す
|
|
194
|
-
- 各エントリ内:
|
|
195
|
-
- \`{{title}}\` / \`{{#mainImage}}<img src="{{.}}" alt="">{{/mainImage}}\`
|
|
196
|
-
- \`{{publishedAt}}\`(「YYYY年M月D日」形式。\`{{publishedDate}}\` は YYYY-MM-DD、\`{{publishedYear}}\` / \`{{publishedMonth}}\` / \`{{publishedDay}}\` も可)
|
|
197
|
-
- \`{{#tags}}<span class="tag">{{.}}</span>{{/tags}}\`(分類ラベル)
|
|
198
|
-
- \`{{detailUrl}}\` を \`<a href="{{detailUrl}}">\` で使う
|
|
199
|
-
- 必要なら \`{{themeColor}}\` を CSS 内で使ってよい
|
|
200
|
-
|
|
201
|
-
詳細 (detailTemplate)
|
|
202
|
-
- \`<h1>{{title}}</h1>\`
|
|
203
|
-
- \`{{#publishedAt}}<time>{{.}}</time>{{/publishedAt}}\`
|
|
204
|
-
- \`{{#tags}}<span class="tag">{{.}}</span>{{/tags}}\`
|
|
205
|
-
- \`{{#mainImage}}<img src="{{.}}" alt="">{{/mainImage}}\`
|
|
206
|
-
- \`<div class="cms-body">{{{bodyHtml}}}</div>\`(三重波括弧で生 HTML)
|
|
207
|
-
- \`{{#subImages}}<img src="{{.}}" alt="">{{/subImages}}\`
|
|
208
|
-
- 本文内の見出し / リンク / 引用 / コード / テーブル等にスタイルを当てる
|
|
209
|
-
|
|
210
|
-
## CSS の整合性ルール(必ず守る)
|
|
211
|
-
|
|
212
|
-
- セレクタは独自クラス(\`.cms-index\`, \`.cms-card\` 等)を使い、グローバル要素 (body, h1, * など) を直接書かない
|
|
213
|
-
- 索引のルート class は \`.cms-index\`、詳細のルート class は \`.cms-detail\` を必ず付ける(CSS スコープ統一)
|
|
214
|
-
- 書いた CSS で参照する class は必ず同じテンプレ内の HTML に出現させる(死にセレクタ禁止)
|
|
215
|
-
- \`grid-template-columns\` の列数と、その中で出力するセル数を一致させる
|
|
216
|
-
- \`@import\` / 外部フォントの url() は新規追加しない
|
|
217
|
-
|
|
218
|
-
## Mustache 制約(混入しがちなバグを避ける)
|
|
219
|
-
|
|
220
|
-
- **同名 section の二重ネスト**(\`{{#tags}}...{{#tags}}...{{/tags}}...{{/tags}}\`)は禁止 — 全項目が重複表示される
|
|
221
|
-
- **非標準 helper は無し** — \`{{#@last}}\` / \`{{#@first}}\` / \`{{#@index}}\` などの Handlebars / lodash 由来 helper はサポートしていない。区切りが要るなら CSS の \`:not(:last-child)\` で表現
|
|
222
|
-
- **未定義変数は空文字** になる。固定変数でも \`fields\` でもないキー(\`{{#match}}\` 等)を発明しても render は通って何も出ない(バグの温床)
|
|
223
|
-
- 使えるのは固定変数 + \`fields\` で定義した \`{{data.key}}\` のみ。それ以外のキーは作らない
|
|
224
|
-
- サーバ側で create 時に sample data で dry-run render される(構文エラーや、\`fields\` に無い \`{{data.xxx}}\` の参照は warnings で検出される)。422 が返ってきたら出力を直して再 create
|
|
225
|
-
|
|
226
|
-
## 装飾の二重付与に注意(過去に実際に踏んだ罠)
|
|
227
|
-
|
|
228
|
-
- \`{{publishedAt}}\` は CLI 側で「YYYY年M月D日」に整形済み。テンプレで \`{{publishedAt}}年\` と書くと「2026年1月1日年」になる
|
|
229
|
-
- \`{{{bodyHtml}}}\` に既に \`<p>...</p>\` が入っていることを想定。さらにテンプレ側で \`<p>{{{bodyHtml}}}</p>\` と囲むと \`<p><p>...</p></p>\` に二重化する。本文 wrapper は \`<div class="cms-body">{{{bodyHtml}}}</div>\` のような非 p 要素で囲むこと
|
|
230
|
-
- \`{{#tags}}<span>{{.}}</span>{{/tags}}\` を入れ子で書くと配列が二重展開され全項目が n^2 倍表示される(サーバ create 時に warnings で検出されます)
|
|
231
|
-
- 「○○ 様」「お客様の声」のような敬称・接頭辞をデータとテンプレの両方に入れない
|
|
232
|
-
- \`{{dataFormatted.price}}\` は既に桁区切り済み。テンプレで \`{{dataFormatted.price}}\` と \`{{data.price}}\` の両方を並べて二重表示しない。整形が要るなら \`dataFormatted\`、生値が要るなら \`data\` のどちらか一方
|
|
233
|
-
- 原則: **装飾はテンプレ側に集約 / データはプレーンに保つ**
|
|
234
|
-
|
|
235
|
-
## replaceTargetSelector
|
|
236
|
-
|
|
237
|
-
元ページに既に記事一覧があれば、その**ラッパー要素を一意に指す CSS セレクタ** を返す(例: \`section.news-list\`, \`#articles\`)。ID 優先 → class → 階層指定。ページ内で 1 つだけマッチする形に。なければ空文字。
|
|
238
|
-
|
|
239
|
-
## detailRemoveSelectors
|
|
240
|
-
|
|
241
|
-
詳細ページ(\`/<slug>/<entry-slug>.html\`)はこのページのシェルを再利用して表示されます。**この一覧ページ専用の装飾**(ページヒーロー、リスト導入文、リスト用ヘッダー画像など)は詳細ページに残るとおかしいので、シェルから除外する CSS セレクタを最大 5 個返してください。サイト共通ヘッダー/フッター/ロゴは含めない。
|
|
242
|
-
|
|
243
|
-
## 出力 JSON スキーマ
|
|
244
|
-
|
|
245
|
-
\`\`\`json
|
|
246
|
-
{
|
|
247
|
-
"name": "string(コレクション名の提案。例: お知らせ / 実績 / ブログ)",
|
|
248
|
-
"themeColor": "#RRGGBB | \\"\\"",
|
|
249
|
-
"fields": [{ "key": "price", "type": "number", "label": "価格", "required": false, "repeat": false, "options": [] }],
|
|
250
|
-
"indexTemplate": "string(<style> + HTML)",
|
|
251
|
-
"detailTemplate": "string(<style> + HTML)",
|
|
252
|
-
"replaceTargetSelector": "string | \\"\\"",
|
|
253
|
-
"detailRemoveSelectors": ["string", ...],
|
|
254
|
-
"warnings": ["string", ...]
|
|
255
|
-
}
|
|
256
|
-
\`\`\`
|
|
257
|
-
|
|
258
|
-
抽出不能なら理由を説明(JSON は出力しない)。
|
|
259
|
-
|
|
260
|
-
## 完了したら(2 段目)
|
|
261
|
-
|
|
262
|
-
1. 上記 JSON を \`${suggestedJsonPath}\` に書き出す
|
|
263
|
-
2. 次のコマンドで 42ws に登録:
|
|
264
|
-
|
|
265
|
-
\`\`\`
|
|
266
|
-
42ws collections create ${createCmdTail}
|
|
267
|
-
\`\`\`
|
|
268
|
-
|
|
269
|
-
${inject ? '`--inject` 付きなので、`collections create` がローカル該当ページ (42ws.json の output や dist/ 等を自動探索) の `replaceTargetSelector` 部分を embed スニペットに置き換えます → そのあと `42ws publish` で反映。ローカルが無い場合のみリモートを直接更新します。\n' : ''}
|
|
270
|
-
---
|
|
271
|
-
|
|
272
|
-
## HTML
|
|
273
|
-
|
|
274
|
-
\`\`\`html
|
|
275
|
-
${html}
|
|
276
|
-
\`\`\`
|
|
277
|
-
`;
|
|
278
|
-
}
|
|
279
|
-
//# sourceMappingURL=import-prompts.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"import-prompts.js","sourceRoot":"","sources":["../../src/lib/import-prompts.ts"],"names":[],"mappings":"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"}
|