@d-zero/scaffold 5.0.0-alpha.9 → 5.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.clineignore +6 -0
- package/.clinerules +17 -0
- package/.gitignore +12 -2
- package/.husky/pre-commit +1 -0
- package/.stylelintrc +26 -1
- package/.textlintignore +1 -0
- package/.textlintrc.js +9 -1
- package/.vscode/settings.json +3 -8
- package/.yarnrc.yml +3 -0
- package/CHANGELOG.md +251 -0
- package/__assets/_libs/.markuplintrc +1 -1
- package/__assets/_libs/component/bge-contents.css +7 -0
- package/__assets/_libs/component/{_c-card-list.scss → c-card-list.css} +2 -4
- package/__assets/_libs/component/c-card.css +104 -0
- package/__assets/_libs/component/c-content-index.css +8 -0
- package/__assets/_libs/component/{_c-content-main.scss → c-content-main.css} +55 -57
- package/__assets/_libs/component/c-footer.css +41 -0
- package/__assets/_libs/component/c-header.css +94 -0
- package/__assets/_libs/component/{_c-media-list.scss → c-media-list.css} +1 -3
- package/__assets/_libs/component/c-media.css +113 -0
- package/__assets/_libs/component/{_c-nav-breadcrumb.scss → c-nav-breadcrumb.css} +9 -11
- package/__assets/_libs/component/c-nav-global.css +115 -0
- package/__assets/_libs/component/{_c-nav-sitemap.scss → c-nav-sitemap.css} +27 -34
- package/__assets/_libs/component/c-page-home.css +43 -0
- package/__assets/_libs/component/c-page-sub.css +63 -0
- package/__assets/_libs/component/c-pagination.css +98 -0
- package/__assets/_libs/component/{_c-title-page.scss → c-title-page.css} +0 -2
- package/__assets/_libs/data/bge-blocks.html +2101 -0
- package/__assets/_libs/data/blocks.html +1 -31
- package/__assets/_libs/data/blocks.js +6 -0
- package/__assets/_libs/mixin/meta.pug +2 -2
- package/__assets/_libs/script/index.ts +3 -0
- package/__assets/_libs/style/base/root.css +83 -0
- package/__assets/_libs/style/general/{_all.scss → all.css} +0 -6
- package/__assets/_libs/style/general/{_body.scss → body.css} +1 -3
- package/__assets/_libs/style/general/{_button.scss → button.css} +0 -2
- package/__assets/_libs/style/general/{_img.scss → img.css} +0 -2
- package/__assets/htdocs/__tmpl/.markuplintrc +1 -1
- package/__assets/htdocs/__tmpl/000_home.pug +5 -5
- package/__assets/htdocs/__tmpl/100_sub.pug +7 -7
- package/__assets/htdocs/__tmpl/200_blog_index.pug +9 -9
- package/__assets/htdocs/__tmpl/210_blog_index.pug +9 -9
- package/__assets/htdocs/__tmpl/300_form_input.pug +8 -8
- package/__assets/htdocs/__tmpl/301_form_confirm.pug +21 -19
- package/__assets/htdocs/__tmpl/302_form_complete.pug +7 -7
- package/__assets/htdocs/__tmpl/index.pug +0 -6
- package/__assets/htdocs/css/bge_style.css +9 -0
- package/__assets/htdocs/css/style.css +23 -0
- package/__assets/htdocs/js/script.ts +3 -0
- package/__assets/htdocs/sub-folder.test/build.test.pug +9 -0
- package/__assets/htdocs/sub-folder.test/css/style.css +5 -0
- package/__assets/htdocs/sub-folder.test/index.pug +1 -1
- package/__assets/htdocs/sub-folder.test/js/script.ts +2 -0
- package/__info/print.txt +6 -0
- package/ai-tasks/create-component.md +127 -0
- package/ai-tasks/create-page.md +110 -0
- package/ai-tasks/page-to-burger.md +68 -0
- package/cspell.json +7 -1
- package/eleventy.config.mjs +65 -0
- package/eslint.config.js +19 -0
- package/lint-staged.config.mjs +10 -2
- package/markuplint.config.js +36 -0
- package/package.json +33 -24
- package/prh.yaml +3 -0
- package/tsconfig.json +1 -0
- package/.eslintrc.cjs +0 -3
- package/.markuplintrc +0 -3
- package/__assets/_libs/component/_c-card.scss +0 -106
- package/__assets/_libs/component/_c-content-index.scss +0 -8
- package/__assets/_libs/component/_c-footer.scss +0 -43
- package/__assets/_libs/component/_c-header.scss +0 -96
- package/__assets/_libs/component/_c-media.scss +0 -115
- package/__assets/_libs/component/_c-nav-global.scss +0 -117
- package/__assets/_libs/component/_c-page-home.scss +0 -45
- package/__assets/_libs/component/_c-page-sub.scss +0 -65
- package/__assets/_libs/component/_c-pagination.scss +0 -100
- package/__assets/_libs/data/blocks-burger.html +0 -4161
- package/__assets/_libs/data/blocks.cjs +0 -6
- package/__assets/_libs/style/base/_root.scss +0 -30
- package/__assets/_libs/style/theme/_color.scss +0 -4
- package/__assets/_libs/style/theme/_dimension.scss +0 -53
- package/__assets/_libs/style/theme/_font.scss +0 -2
- package/__assets/_libs/style/theme/_index.scss +0 -3
- package/__assets/htdocs/.eslintrc +0 -10
- package/__assets/htdocs/@static/empty +0 -0
- package/__assets/htdocs/@static/img/empty +0 -0
- package/__assets/htdocs/css/style.scss +0 -32
- package/__assets/htdocs/sub-folder.test/css/style.scss +0 -7
- package/__assets/htdocs/sub-folder.test/js/script.js +0 -9
- package/eleventy.config.cjs +0 -25
- /package/__assets/_libs/component/{_c-card.pug → c-card.pug} +0 -0
- /package/__assets/_libs/component/{_c-footer.pug → c-footer.pug} +0 -0
- /package/__assets/_libs/component/{_c-header.pug → c-header.pug} +0 -0
- /package/__assets/_libs/component/{_c-media.pug → c-media.pug} +0 -0
- /package/__assets/_libs/component/{_c-nav-breadcrumb.pug → c-nav-breadcrumb.pug} +0 -0
- /package/__assets/_libs/component/{_c-nav-global.pug → c-nav-global.pug} +0 -0
- /package/__assets/_libs/component/{_c-nav-sitemap.pug → c-nav-sitemap.pug} +0 -0
- /package/__assets/_libs/component/{_c-pagination.pug → c-pagination.pug} +0 -0
- /package/__assets/_libs/component/{_c-title-page.pug → c-title-page.pug} +0 -0
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# 1
|
|
2
|
+
|
|
3
|
+
`use_mcp_tool:burger_editor`関連の実行を禁止する。
|
|
4
|
+
FigmaデータのURLをユーザーに要求せよ。
|
|
5
|
+
ユーザーから受け取ったURLで`use_mcp_tool:frontend_env:get_figma_data`せよ。
|
|
6
|
+
得られたファイルパスを`execute_command:mv`で`.cache/figma-data.yaml`に保存し、ステップ2を実行せよ。
|
|
7
|
+
ユーザーがURLを入力しなかったら、ステップ4を実行せよ。
|
|
8
|
+
|
|
9
|
+
# 2
|
|
10
|
+
|
|
11
|
+
ステップ1で得られたFigmaデータを`read_file`で読み込め。
|
|
12
|
+
ここでどんなコンポーネントを作るのか記憶せよ。
|
|
13
|
+
Figmaデータのトップレイヤーのフレーム名をコンポーネント名にせよ。
|
|
14
|
+
カスタム要素が含まれていてもそれはコンポーネントの一部であり、別々で生成する必要はない。
|
|
15
|
+
コンポーネントが不明瞭な場合、Figmaのレイヤー名を変更するようにユーザーに警告、ステップは継続せず全タスクを終了せよ。
|
|
16
|
+
コンポーネントが名が判明したらステップ3を実行せよ。
|
|
17
|
+
|
|
18
|
+
# 3
|
|
19
|
+
|
|
20
|
+
FigmaのFileデータから全体のnodeIdで`use_mcp_tool:frontend_env:get_figma_image`から全体の画像を取得せよ。
|
|
21
|
+
MCPサーバから返却されたURLを`execute_command:curl`して、`.cache/コンポーネント名.png`として保存。
|
|
22
|
+
URLをブラウザで開いてはいけない。
|
|
23
|
+
これらのタスクが完了したら、ステップ4を実行せよ。
|
|
24
|
+
|
|
25
|
+
# 4
|
|
26
|
+
|
|
27
|
+
`.cache/コンポーネント名.png`を解析し全体デザインを確認し、構造やスタイルを分析せよ。
|
|
28
|
+
Figmaデータに`boundVariables`ノードをもつ場合、ユーザーにVariablesの詳細情報を要求せよ。
|
|
29
|
+
`__assets/_libs/style/base/root.scss`を`read_file`し、既にCSSカスタムプロパティが存在してたらスキップしてステップ6へ。
|
|
30
|
+
ユーザーからVariablesの詳細情報を得られたら、ステップ5を実行せよ。拒否されたら、ステップ6を実行せよ。
|
|
31
|
+
|
|
32
|
+
# 5
|
|
33
|
+
|
|
34
|
+
`__assets/_libs/style/base/root.scss`を`read_file`せよ。
|
|
35
|
+
たとえば`--primary-color[VariableCollectionId:5:13/VariableID:5:14]={"r":0.9529411792755127,"g":0.572549045085907,"b":0,"a":1}`を受け取っていれば`--primary-color: rgb(243 156 18 / 100%);`のように変換せよ。
|
|
36
|
+
Variables変換したCSSカスタムプロパティとして`:root`に上書きせずに追記せよ。
|
|
37
|
+
`--primary-color: rgb(243 156 18 / 100%); /* VariableID:5:14 */`のようにコメントもつけろ。
|
|
38
|
+
「カラーシンタックスがフォーマットと異なる」類のstylelintエラーはこのステップでは無視してよい。
|
|
39
|
+
これらのタスクが完了したら、ステップ6を実行せよ。
|
|
40
|
+
|
|
41
|
+
# 6
|
|
42
|
+
|
|
43
|
+
Figmaのデータにカスタム要素が存在するか確認せよ。
|
|
44
|
+
`use_mcp_tool:frontend_env:get_coding_guidelines(web-components)`を確認し、**プレフィックスは`c`としてカスタム要素名を記憶せよ**。
|
|
45
|
+
**注意**: カスタム要素が含まれたとしてもコンポーネントの一部であり別々で生成する必要はない。
|
|
46
|
+
これらのタスクが完了したら、ステップ7を実行せよ。
|
|
47
|
+
|
|
48
|
+
# 7
|
|
49
|
+
|
|
50
|
+
ステップ1で`.cache/コンポーネント名.yaml`に保存していた場合データを読み込め。
|
|
51
|
+
ステップ2で`.cache/コンポーネント名.png`に保存していた場合画像を画像解析せよ。
|
|
52
|
+
画像化する必要があるFigmaノードを特定せよ。
|
|
53
|
+
カスタム要素に相当するノード内は無視すること。
|
|
54
|
+
`use_mcp_tool:frontend_env:get_figma_image`で画像のURLを取得し、`execute_command:curl`で`htdocs/img/`に保存せよ。
|
|
55
|
+
`use_mcp_tool:frontend_env:get_coding_guidelines(media)`の規定に従うこと。
|
|
56
|
+
サブディレクトリは作らないこと。
|
|
57
|
+
SVGもsvgファイル画像として保存すること。
|
|
58
|
+
これらのタスクが完了したら、ステップ8を実行せよ。
|
|
59
|
+
|
|
60
|
+
# 8
|
|
61
|
+
|
|
62
|
+
HTMLを作成する。
|
|
63
|
+
作成するのはFigmaのトップレイヤーのコンポーネントのみである。
|
|
64
|
+
`use_mcp_tool:frontend_env:get_coding_guidelines(html)`の規定に従い設計せよ。
|
|
65
|
+
作成するコンポーネントの名前でpugファイルを作成(場所は`__assets/_libs/component/コンポーネント名.pug`)せよ。
|
|
66
|
+
既にファイルが存在する場合は、そのファイルを上書きせよ。
|
|
67
|
+
要素の順番はスクリーンリーダーやフォーカスの順番に依存し重要であるため、Figmaレイヤーの順番にはこだわらず、情報設計的な在り方を最優先に視覚的な配置を加味して順番を決定すること。
|
|
68
|
+
**カスタム要素の要素名のプレフィックスは`c-`をつけること。**
|
|
69
|
+
インラインSVGは作ってはならない。必要なのであればステップ7に戻って再作成すること。
|
|
70
|
+
これらのタスクが完了したら、ステップ9を実行せよ。
|
|
71
|
+
|
|
72
|
+
# 9
|
|
73
|
+
|
|
74
|
+
作成したコンポーネントファイルで代替テキストが必要か確認せよ。
|
|
75
|
+
必要な場合は、コーディングガイドラインで代替テキストの情報を確認せよ。
|
|
76
|
+
確認ができたら、ファイルを修正せよ。
|
|
77
|
+
これらのタスクが完了したら、ステップ10を実行せよ。
|
|
78
|
+
|
|
79
|
+
# 10
|
|
80
|
+
|
|
81
|
+
CSSを作成する。
|
|
82
|
+
一般的なCSSの実装方法を一切忘れてのぞめ。
|
|
83
|
+
`use_mcp_tool:frontend_env:get_coding_guidelines(css)`に従い設計せよ。
|
|
84
|
+
ステップ1で`.cache/コンポーネント名.yaml`に保存していた場合データを読み込め。
|
|
85
|
+
ステップ2で`.cache/コンポーネント名.png`に保存していた場合画像を画像解析せよ。
|
|
86
|
+
ステップ8で作成したpugファイルを読み込め。
|
|
87
|
+
確認ができたら、作成するコンポーネントの名前でscssファイルを作成(場所は`__assets/_libs/component/コンポーネント名.scss`)せよ。
|
|
88
|
+
これらJSONと画像とHTMLを解析して、コンポーネントのスタイルを生成せよ。
|
|
89
|
+
**レスポンシブが想定されていてもメディアクエリを使用して非表示の要素を作らないこと。**
|
|
90
|
+
**レスポンシブが想定されていてもメディアクエリを使用して非表示の要素を作らないこと!**
|
|
91
|
+
**レスポンシブが想定されていてもメディアクエリを使用して非表示の要素を作らないこと!!!**
|
|
92
|
+
**Figmaデータからあるがままスタイルに変換すること。**
|
|
93
|
+
**カスタム要素のカスタムプロパティは反映すること。**
|
|
94
|
+
**カスタム要素が固定のサイズを持つ場合は、`inline-size`などで指定すること。**
|
|
95
|
+
HTMLと同様にカスタム要素のプレフィックスは`c-`である。
|
|
96
|
+
stylelintのエラーが発生した場合は、直接編集せず、`npx stylelint --fix <fileName>`を実行せよ。
|
|
97
|
+
stylelintのselector-type-no-unknownエラーが発生している場合、カスタム要素の命名が間違っているので、ステップ7に戻って必要な部分だけ修正せよ。
|
|
98
|
+
これらのタスクが完了したら、ステップ11を実行せよ。
|
|
99
|
+
|
|
100
|
+
# 11
|
|
101
|
+
|
|
102
|
+
カスタム要素を使用していた場合は、JSに`@d-zero/custom-components`を読み込め。
|
|
103
|
+
|
|
104
|
+
```ts
|
|
105
|
+
import { defineXXXXX } from '@d-zero/custom-components/XXXXX';
|
|
106
|
+
defineXXXXX('c'); // プレフィックスは"c-"
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
としろ。
|
|
110
|
+
`__assets/htdocs/js/script.ts`に上書きせずに追記せよ。
|
|
111
|
+
**他の実装は不要。**
|
|
112
|
+
**他の実装は不要!**
|
|
113
|
+
**他の実装は不要!!!**
|
|
114
|
+
これらのタスクが完了したら、ステップ12を実行せよ。
|
|
115
|
+
|
|
116
|
+
# 12
|
|
117
|
+
|
|
118
|
+
コンポーネントがどのページに影響するかを報告せよ。
|
|
119
|
+
どのページかどうかは`__assets/htdocs/`ディレクトリ内から`@include`もしくはクラス名を検索して特定せよ。
|
|
120
|
+
CLIを使って検索しても構わない。
|
|
121
|
+
これらのタスクが完了したら、ステップ13を実行せよ。
|
|
122
|
+
|
|
123
|
+
# 13
|
|
124
|
+
|
|
125
|
+
`git status`を実行して、変更があったファイルとその内容を確認せよ。
|
|
126
|
+
差分は`git --no-pager diff <fileName>`で実行せよ。
|
|
127
|
+
内容に問題があれば、各ステップに戻り修正せよ。
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# 1
|
|
2
|
+
|
|
3
|
+
`use_mcp_tool:burger_editor`関連の実行を禁止する。
|
|
4
|
+
指示があるまで一切の`list_files`、`search_files`、`read_file`および`write_to_file`を禁止する。
|
|
5
|
+
その他余計な推論やファイル読み込み操作はせずに次のステップに進め。
|
|
6
|
+
|
|
7
|
+
# 2
|
|
8
|
+
|
|
9
|
+
対象のページと利用するコンポーネントをユーザーに要求せよ。
|
|
10
|
+
|
|
11
|
+
得られた情報を次のYAMLのように整理し、スレッドに出力しユーザーの承認を待て。
|
|
12
|
+
この情報整理をこなすのには`use_mcp_tool:frontend_env:get_coding_guidelines(html)`の知識が必要である。
|
|
13
|
+
|
|
14
|
+
例1:
|
|
15
|
+
|
|
16
|
+
```yaml
|
|
17
|
+
pagePath: 000_home.pug
|
|
18
|
+
pageType: c-page-home
|
|
19
|
+
components:
|
|
20
|
+
- c-header
|
|
21
|
+
- c-hero
|
|
22
|
+
- c-section01
|
|
23
|
+
- c-section02
|
|
24
|
+
- c-banners
|
|
25
|
+
- c-footer
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
例2:
|
|
29
|
+
|
|
30
|
+
```yaml
|
|
31
|
+
pageName: 100_sub.pug
|
|
32
|
+
pageType: c-page-sub
|
|
33
|
+
components:
|
|
34
|
+
- c-header
|
|
35
|
+
- c-page-title
|
|
36
|
+
- c-content-main
|
|
37
|
+
- c-banners
|
|
38
|
+
- c-footer
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
承認を得たら次のステップに進め。
|
|
42
|
+
|
|
43
|
+
# 3
|
|
44
|
+
|
|
45
|
+
`list_files`で`__assets/htdocs/_libs/component/`にファイルが存在するか確認せよ。
|
|
46
|
+
コンポーネントがない場合はタスクの一切を強制中止せよ。
|
|
47
|
+
コンポーネントがすべて揃っていれば次のステップに進め。
|
|
48
|
+
|
|
49
|
+
# 4
|
|
50
|
+
|
|
51
|
+
前ステップで得た情報を元に、以下のようなpugファイルを`write_to_file`せよ。
|
|
52
|
+
|
|
53
|
+
```pug
|
|
54
|
+
html(lang="ja")
|
|
55
|
+
head
|
|
56
|
+
include /mixin/meta.pug
|
|
57
|
+
+meta("__サイトタイトル__")
|
|
58
|
+
body.c-page-home
|
|
59
|
+
.c-page-home__base
|
|
60
|
+
.c-page-home__header
|
|
61
|
+
include /component/c-header.pug
|
|
62
|
+
.c-page-home__hero
|
|
63
|
+
include /component/c-hero.pug
|
|
64
|
+
.c-page-home__section01
|
|
65
|
+
include /component/c-section01.pug
|
|
66
|
+
.c-page-home__section02
|
|
67
|
+
include /component/c-section02.pug
|
|
68
|
+
.c-page-home__banners
|
|
69
|
+
include /component/c-banners.pug
|
|
70
|
+
.c-page-home__footer
|
|
71
|
+
include /component/c-footer.pug
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
```pug
|
|
75
|
+
html(lang="ja")
|
|
76
|
+
head
|
|
77
|
+
include /mixin/meta.pug
|
|
78
|
+
+meta("__サイトタイトル__")
|
|
79
|
+
body.c-page-sub
|
|
80
|
+
.c-page-sub__base
|
|
81
|
+
.c-page-sub__header
|
|
82
|
+
include /component/c-header.pug
|
|
83
|
+
.c-page-sub__page-title
|
|
84
|
+
include /component/c-page-title.pug
|
|
85
|
+
.c-page-sub__content-main
|
|
86
|
+
include /component/c-content-main.pug
|
|
87
|
+
.c-page-sub__banners
|
|
88
|
+
include /component/c-banners.pug
|
|
89
|
+
.c-page-sub__footer
|
|
90
|
+
include /component/c-footer.pug
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
既に同名のファイルが存在する場合は、**既存のコードは一切参考にせずすべて削除し**指示された構造をそのまま反映せよ。
|
|
94
|
+
作成したら、`__assets/htdocs/__tmpl/`に保存せよ。`__assets/htdocs/__tmpl/`の外に作ってはならない。
|
|
95
|
+
パスはViteの機能に従い`/component/`で始めことができる。
|
|
96
|
+
ファイルのナンバリングは重要である。
|
|
97
|
+
保存したら次のステップに進め。
|
|
98
|
+
|
|
99
|
+
# 5
|
|
100
|
+
|
|
101
|
+
`__assets/htdocs/_libs/component/`のコンポーネントと対になっているSASSファイルが同フォルダに存在するので、それを`__assets/htdocs/css/style.scss`に追記せよ。
|
|
102
|
+
保存したら次のステップに進め。
|
|
103
|
+
|
|
104
|
+
# 6
|
|
105
|
+
|
|
106
|
+
タスクは完了である。以下は不要。
|
|
107
|
+
|
|
108
|
+
- ビルド
|
|
109
|
+
- ブラウザチェック
|
|
110
|
+
- テスト
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# 1
|
|
2
|
+
|
|
3
|
+
URLをユーザーに尋ねて`execute_command:curl`を実行し構造を把握せよ。
|
|
4
|
+
文字コードがUTF-8でない場合は変換コマンドをパイプして構造を把握せよ。
|
|
5
|
+
ページサイズが5MBを超えないのであれば`head`コマンド使わずに一度に取得せよ。
|
|
6
|
+
把握できたらステップ2に進め。
|
|
7
|
+
|
|
8
|
+
# 2
|
|
9
|
+
|
|
10
|
+
`browser_action`を実行しメインコンテンツのレイアウトと内容を視覚的に解析せよ。
|
|
11
|
+
画面固定されているバナーがあれば閉じよ。
|
|
12
|
+
予期せぬページ移動や画面遷移があれば直ちに停止しユーザーに指示を仰げ。
|
|
13
|
+
把握できたらステップ3に進め。
|
|
14
|
+
|
|
15
|
+
# 3
|
|
16
|
+
|
|
17
|
+
取得したメインコンテンツの各ブロック(セクションではない)をレイアウトタイプと内容をMarkdown+frontmatter形式の単一のファイルに書き出せ。
|
|
18
|
+
保存先は`.cache`ディレクトリで、ブロックごとにファイルを分けること。
|
|
19
|
+
ファイル名はURLとブロック名を組み合わせて、ブロックの順番に連番にせよ。
|
|
20
|
+
内容のフォーマットは次の通り。
|
|
21
|
+
|
|
22
|
+
```markdown
|
|
23
|
+
---
|
|
24
|
+
url: https://example.com/path/to/page
|
|
25
|
+
blockType: '{{block_type}}'
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
{{section_content_body}}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Frontmatterの情報は`url`と`blockType`の2つのみ。他の指定は禁止。
|
|
32
|
+
|
|
33
|
+
## block_type
|
|
34
|
+
|
|
35
|
+
`use_mcp_tool:burger_editor:get_block_type`
|
|
36
|
+
|
|
37
|
+
## section_content_body
|
|
38
|
+
|
|
39
|
+
- Markdown形式
|
|
40
|
+
- 画像はURLをそのまま記載
|
|
41
|
+
- 画像のalt属性は抽出する
|
|
42
|
+
- 画像のキャプションはalt属性と明確に区別し抽出
|
|
43
|
+
- layout_typeに基づくカラムの区切りは`<!-- column-separator -->\n---\n<!-- column-separator -->`で記載
|
|
44
|
+
- Markdownで表現できない特性があれば`<!-- -->`の形式でコメントとして記載
|
|
45
|
+
- 例:
|
|
46
|
+
- `<!-- 見出しレベルは見た目と矛盾している -->`
|
|
47
|
+
- `<!-- 画像はアニメーションGIF -->`
|
|
48
|
+
- `<!-- iframeのURL -->`
|
|
49
|
+
- `<!-- YouTubeのURL -->`
|
|
50
|
+
- `<!-- Google MapsのURLもしくは緯度経度 -->`
|
|
51
|
+
- カルーセルは画像をリストとして記載
|
|
52
|
+
|
|
53
|
+
# 4
|
|
54
|
+
|
|
55
|
+
生成した各ファイルに対して次を実行せよ。
|
|
56
|
+
`use_mcp_tool:burger_editor:get_block_data_params_v3`を実行し、`blockType`を`blockName`に渡して必要パラメータを取得せよ。
|
|
57
|
+
取得したパラメータを元に`use_mcp_tool:burger_editor:create_block_v3`を実行し、`blockName`を`data`に渡して、HTMLを取得せよ。
|
|
58
|
+
取得したHTMLを同名で拡張子を`.html`にして保存せよ。
|
|
59
|
+
|
|
60
|
+
# 5
|
|
61
|
+
|
|
62
|
+
生成したHTMLを`execute_command:cat`で1つのファイルにまとめよ。
|
|
63
|
+
取得したURLと同様のパスとファイル名で`./htdocs`に保存せよ。
|
|
64
|
+
URLが`https://example.com/path/to/page`であれば、保存先は`./htdocs/path/to/page.html`となる。
|
|
65
|
+
|
|
66
|
+
# 6
|
|
67
|
+
|
|
68
|
+
完了
|
package/cspell.json
CHANGED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
|
|
3
|
+
import eleventy from '@d-zero/builder/11ty';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
*
|
|
7
|
+
* @param eleventyConfig
|
|
8
|
+
*/
|
|
9
|
+
export default function (eleventyConfig) {
|
|
10
|
+
return eleventy(eleventyConfig, {
|
|
11
|
+
/**
|
|
12
|
+
* Alias for the path to the directory containing the components.
|
|
13
|
+
*/
|
|
14
|
+
alias: {
|
|
15
|
+
'@': path.resolve(import.meta.dirname, '__assets', '_libs'),
|
|
16
|
+
},
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* The directory where the source files are located.
|
|
20
|
+
*/
|
|
21
|
+
// outDir: 'htdocs',
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Prettier options.
|
|
25
|
+
* @see https://prettier.io/docs/en/options
|
|
26
|
+
*/
|
|
27
|
+
// prettier: false,
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Minifier options.
|
|
31
|
+
* @see https://github.com/terser/html-minifier-terser?tab=readme-ov-file#options-quick-reference
|
|
32
|
+
*/
|
|
33
|
+
// minifier: { minifyJS: false },
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Line break.
|
|
37
|
+
*/
|
|
38
|
+
// lineBreak: '\r\n',
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Character encoding.
|
|
42
|
+
*/
|
|
43
|
+
// charset: 'shift_jis',
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Convert character entities
|
|
47
|
+
*/
|
|
48
|
+
// characterEntities: true
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Path format
|
|
52
|
+
*/
|
|
53
|
+
// pathFormat: 'directory',
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Automatically decode the content on the dev server.
|
|
57
|
+
*/
|
|
58
|
+
// autoDecode: true,
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Server Side Include options on the dev server.
|
|
62
|
+
*/
|
|
63
|
+
// ssi: { '**/*': { encoding: 'shift_jis' } },
|
|
64
|
+
});
|
|
65
|
+
}
|
package/eslint.config.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import dz from '@d-zero/eslint-config';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @type {import('eslint').Linter.Config[]}
|
|
5
|
+
*/
|
|
6
|
+
export default [
|
|
7
|
+
...dz.configs.node,
|
|
8
|
+
...dz.configs.frontend.map((config) => ({
|
|
9
|
+
files: ['__assets/**/*'],
|
|
10
|
+
...config,
|
|
11
|
+
})),
|
|
12
|
+
{
|
|
13
|
+
files: ['**/*.cjs', '**/.textlintrc.js'],
|
|
14
|
+
...dz.configs.commonjs,
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
ignores: ['htdocs/**/*'],
|
|
18
|
+
},
|
|
19
|
+
];
|
package/lint-staged.config.mjs
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
|
|
2
3
|
import lintStagedConfigGenerator from '@d-zero/lint-staged-config';
|
|
3
|
-
export default lintStagedConfigGenerator(
|
|
4
|
+
export default lintStagedConfigGenerator({
|
|
5
|
+
ignore: [
|
|
6
|
+
path.resolve(import.meta.dirname, 'htdocs', '**', '*'),
|
|
7
|
+
{
|
|
8
|
+
textlint: 'CHANGELOG.md',
|
|
9
|
+
},
|
|
10
|
+
],
|
|
11
|
+
});
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { extendsConfig } from '@d-zero/markuplint-config';
|
|
2
|
+
|
|
3
|
+
const extended = extendsConfig({
|
|
4
|
+
// classNaming: ['/^splide(?:__[a-z]+)?$/'],
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @type {import('@markuplint/ml-config').Config}
|
|
9
|
+
*/
|
|
10
|
+
export default {
|
|
11
|
+
...extended,
|
|
12
|
+
nodeRules: [
|
|
13
|
+
...extended.nodeRules,
|
|
14
|
+
{
|
|
15
|
+
// Revert requiring `width` and `height` attributes from the preset config.
|
|
16
|
+
// @see https://github.com/markuplint/markuplint/blob/dev/packages/%40markuplint/config-presets/src/preset.performance.json
|
|
17
|
+
// Due to assigning them automatically by the build process.
|
|
18
|
+
selector: 'img[src]',
|
|
19
|
+
rules: {
|
|
20
|
+
'required-attr': false,
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
selector: '.c-pagination a',
|
|
25
|
+
rules: {
|
|
26
|
+
'required-attr': false,
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
],
|
|
30
|
+
// overrides: {
|
|
31
|
+
// ...extended.overrides,
|
|
32
|
+
// '**/*.pug': {
|
|
33
|
+
// ...
|
|
34
|
+
// },
|
|
35
|
+
// },
|
|
36
|
+
};
|
package/package.json
CHANGED
|
@@ -1,27 +1,31 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@d-zero/scaffold",
|
|
3
|
-
"version": "5.0.0-
|
|
3
|
+
"version": "5.0.0-beta.0",
|
|
4
4
|
"description": "Frontend scaffold files of D-ZERO Co., Ltd.",
|
|
5
5
|
"repository": "https://github.com/d-zero-dev/frontend-env.git",
|
|
6
6
|
"author": "D-ZERO Co., Ltd.",
|
|
7
7
|
"license": "MIT",
|
|
8
|
-
"private": false,
|
|
9
8
|
"publishConfig": {
|
|
10
9
|
"access": "public"
|
|
11
10
|
},
|
|
12
11
|
"type": "module",
|
|
13
12
|
"main": "package.json",
|
|
14
13
|
"scripts": {
|
|
15
|
-
"
|
|
14
|
+
"build": "npx @d-zero/builder",
|
|
15
|
+
"dev": "npx eleventy --serve --watch",
|
|
16
16
|
"d": "yarn dev",
|
|
17
|
-
"
|
|
18
|
-
"lint": "
|
|
19
|
-
"lint:
|
|
20
|
-
"lint:
|
|
21
|
-
"lint:
|
|
22
|
-
"lint:
|
|
23
|
-
"lint:format": "prettier --write \"
|
|
24
|
-
"lint:spell": "cspell --no-progress --show-suggestions \"**\"",
|
|
17
|
+
"lint": "run-s \"lint:*\"",
|
|
18
|
+
"lint:html": "npx markuplint \"./__assets/**/*.{pug,html}\"",
|
|
19
|
+
"lint:pug": "npx pug-lint ./__assets/htdocs/**/*.pug -r console; npx pug-lint ./__assets/_libs/**/*.pug -r console;",
|
|
20
|
+
"lint:css": "npx stylelint \"./__assets/**/*.css\" --fix",
|
|
21
|
+
"lint:js": "npx eslint \"./__assets/**/*.{js,mjs,cjs,jsx,ts,tsx}\" --fix",
|
|
22
|
+
"lint:ts": "tsc --noEmit",
|
|
23
|
+
"lint:format": "npx prettier --write \"{*,./__assets/**/*}.{js,jsx,ts,tsx,css,pug,html,json,yaml,*rc}\"",
|
|
24
|
+
"lint:spell": "npx cspell --no-progress --show-suggestions \"**\"",
|
|
25
|
+
"lint:text": "npx textlint \"./__assets/**/*.{pug,html}\"",
|
|
26
|
+
"test": "vitest run",
|
|
27
|
+
"print": "npx @d-zero/print -f __info/print.txt --type note",
|
|
28
|
+
"prepare": "husky",
|
|
25
29
|
"up": "yarn upgrade-interactive --latest"
|
|
26
30
|
},
|
|
27
31
|
"browserslist": [
|
|
@@ -33,23 +37,28 @@
|
|
|
33
37
|
"last 2 ios_saf version"
|
|
34
38
|
],
|
|
35
39
|
"devDependencies": {
|
|
36
|
-
"@d-zero/builder": "5.0.0-
|
|
37
|
-
"@d-zero/linters": "5.0.0-alpha.
|
|
38
|
-
"@d-zero/postcss-config": "5.0.0-
|
|
39
|
-
"@d-zero/tsconfig": "0.
|
|
40
|
-
"@types/node": "
|
|
40
|
+
"@d-zero/builder": "5.0.0-beta.0",
|
|
41
|
+
"@d-zero/linters": "5.0.0-alpha.65",
|
|
42
|
+
"@d-zero/postcss-config": "5.0.0-beta.0",
|
|
43
|
+
"@d-zero/tsconfig": "0.4.1",
|
|
44
|
+
"@types/node": "22.15.32",
|
|
41
45
|
"cross-env": "7.0.3",
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"typescript": "5.
|
|
46
|
+
"husky": "9.1.7",
|
|
47
|
+
"npm-run-all2": "8.0.4",
|
|
48
|
+
"typescript": "5.8.3",
|
|
49
|
+
"vitest": "3.2.4"
|
|
45
50
|
},
|
|
46
51
|
"dependencies": {
|
|
47
|
-
"
|
|
48
|
-
"
|
|
52
|
+
"@d-zero/custom-components": "5.0.0-beta.0",
|
|
53
|
+
"dialog-toggle-events-polyfill": "1.1.4",
|
|
54
|
+
"invokers-polyfill": "0.5.5",
|
|
55
|
+
"kiso.css": "1.1.6",
|
|
56
|
+
"tslib": "2.8.1"
|
|
49
57
|
},
|
|
58
|
+
"packageManager": "yarn@4.9.2",
|
|
50
59
|
"volta": {
|
|
51
|
-
"node": "22.
|
|
52
|
-
"yarn": "
|
|
60
|
+
"node": "22.16.0",
|
|
61
|
+
"yarn": "4.9.2"
|
|
53
62
|
},
|
|
54
|
-
"gitHead": "
|
|
63
|
+
"gitHead": "5cc4a9e00ee763e56923ae878704e237d9ce3705"
|
|
55
64
|
}
|
package/prh.yaml
ADDED
package/tsconfig.json
CHANGED
package/.eslintrc.cjs
DELETED
package/.markuplintrc
DELETED
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
@use '../style/theme' as *;
|
|
2
|
-
|
|
3
|
-
.c-card {
|
|
4
|
-
position: relative;
|
|
5
|
-
block-size: 100%;
|
|
6
|
-
overflow: hidden;
|
|
7
|
-
border: 1px solid var(--border-color);
|
|
8
|
-
outline: 2px solid transparent;
|
|
9
|
-
transition: outline 300ms;
|
|
10
|
-
|
|
11
|
-
&:has(a:hover) {
|
|
12
|
-
border: 1px solid var(--border-color);
|
|
13
|
-
outline: 2px solid var(--border-color);
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
> a {
|
|
17
|
-
block-size: 100%;
|
|
18
|
-
color: currentcolor;
|
|
19
|
-
text-decoration: none;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
&__img {
|
|
23
|
-
inline-size: 100%;
|
|
24
|
-
|
|
25
|
-
img {
|
|
26
|
-
inset-block-start: 0;
|
|
27
|
-
inset-inline-start: 0;
|
|
28
|
-
display: block;
|
|
29
|
-
inline-size: 100%;
|
|
30
|
-
aspect-ratio: 4 / 3;
|
|
31
|
-
object-fit: cover;
|
|
32
|
-
object-position: center top;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
&__header {
|
|
37
|
-
flex: 0 1 auto;
|
|
38
|
-
padding-inline: 1em;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
&__body {
|
|
42
|
-
flex: 0 1 100%;
|
|
43
|
-
padding-block: 0.5em 2em;
|
|
44
|
-
padding-inline: 1em;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
&__title {
|
|
48
|
-
padding: 0;
|
|
49
|
-
margin-block: 0;
|
|
50
|
-
margin-inline: auto;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
// ブログのみ
|
|
54
|
-
&__meta {
|
|
55
|
-
//
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
// ブログのみ
|
|
59
|
-
&__time {
|
|
60
|
-
display: none;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
// ブログのみ
|
|
64
|
-
&__category {
|
|
65
|
-
//
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
// ブログのみ
|
|
69
|
-
&__tags {
|
|
70
|
-
ul {
|
|
71
|
-
padding: 0;
|
|
72
|
-
margin-block: 0;
|
|
73
|
-
margin-inline: auto;
|
|
74
|
-
list-style: none;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
// ブログのみ
|
|
79
|
-
&__tag-item {
|
|
80
|
-
display: inline-block;
|
|
81
|
-
padding: 0;
|
|
82
|
-
margin: 0;
|
|
83
|
-
list-style: none;
|
|
84
|
-
|
|
85
|
-
span {
|
|
86
|
-
display: block;
|
|
87
|
-
padding-block: 0.2em;
|
|
88
|
-
padding-inline: 1em;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
// ブログのみ
|
|
93
|
-
&__author {
|
|
94
|
-
display: none;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
&__description {
|
|
98
|
-
padding: 0;
|
|
99
|
-
margin: 0;
|
|
100
|
-
|
|
101
|
-
p {
|
|
102
|
-
padding: 0;
|
|
103
|
-
margin: 0;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
}
|