Skip to content

Commit 08909d6

Browse files
committed
Merge branch 'develop'
2 parents 6b5336c + df228cb commit 08909d6

File tree

14 files changed

+389
-55
lines changed

14 files changed

+389
-55
lines changed

assets/css/products.css

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
/* Products 用カードのサムネイル枠 */
2+
.product-card .card__thumb {
3+
flex-shrink: 0;
4+
width: 500px;
5+
height: 180px;
6+
overflow: hidden;
7+
border-radius: 16px;
8+
}
9+
10+
/* 画像を枠いっぱいにフィットさせる */
11+
.product-card .card__thumb img {
12+
width: 100%;
13+
height: 100%;
14+
object-fit: cover; /* 全体をカバーしつつトリミング */
15+
display: block;
16+
}

assets/data/products.json

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
[
2+
{
3+
"id": "product_0001",
4+
"title": "Sample Action Game",
5+
"type": "Game",
6+
"platform": ["Windows", "Android"],
7+
"description": "個人で開発した3Dアクションゲーム。ゲームパッド対応。",
8+
"tags": ["game", "action", "unity"],
9+
"thumbnail": "assets/img/ogp.png",
10+
"storeLinks": [
11+
{
12+
"label": "Booth",
13+
"url": "https://example.com/booth/sample-game"
14+
},
15+
{
16+
"label": "itch.io",
17+
"url": "https://example.com/itch/sample-game"
18+
}
19+
],
20+
"downloadLinks": [
21+
{
22+
"label": "Windows版 .zip",
23+
"url": "https://example.com/downloads/sample-game-win.zip"
24+
}
25+
]
26+
},
27+
{
28+
"id": "product_0002",
29+
"title": "Unity Editor Helper Plugin",
30+
"type": "Plugin",
31+
"platform": ["Unity"],
32+
"description": "インスペクター拡張とコンテキストメニューをまとめた Unity 用エディタ拡張。",
33+
"tags": ["unity", "editor", "tool", "odin"],
34+
"thumbnail": "assets/img/ogp.png",
35+
"storeLinks": [
36+
{
37+
"label": "Asset Store",
38+
"url": "https://example.com/assetstore/editor-helper"
39+
}
40+
],
41+
"downloadLinks": []
42+
},
43+
{
44+
"id": "product_0003",
45+
"title": "Build Pipeline Tool",
46+
"type": "Tool",
47+
"platform": ["Windows"],
48+
"description": "ビルドとデプロイを自動化するためのスタンドアロンツール。",
49+
"tags": ["tool", "build", "pipeline"],
50+
"thumbnail": "assets/img/ogp.png",
51+
"storeLinks": [],
52+
"downloadLinks": [
53+
{
54+
"label": "実行ファイルダウンロード",
55+
"url": "https://example.com/downloads/build-tool.zip"
56+
}
57+
]
58+
}
59+
]

assets/js/products.js

Lines changed: 170 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,170 @@
1+
// assets/js/products.js
2+
document.addEventListener("DOMContentLoaded", () => {
3+
const listEl = document.getElementById("productList");
4+
const emptyEl = document.getElementById("productEmptyMessage");
5+
const searchInput = document.getElementById("productSearch");
6+
const typeSelect = document.getElementById("productTypeFilter");
7+
8+
if (!listEl) return;
9+
10+
let allProducts = [];
11+
12+
async function loadProducts() {
13+
try {
14+
const res = await fetch("assets/data/products.json");
15+
if (!res.ok) throw new Error(`HTTP ${res.status}`);
16+
allProducts = await res.json();
17+
render();
18+
} catch (err) {
19+
console.error("Failed to load products:", err);
20+
if (emptyEl) {
21+
emptyEl.textContent = "プロダクト一覧の読み込みに失敗しました。";
22+
emptyEl.style.display = "block";
23+
}
24+
}
25+
}
26+
27+
function render() {
28+
const keyword = (searchInput?.value || "").trim().toLowerCase();
29+
const typeFilter = typeSelect?.value || "";
30+
31+
const filtered = allProducts.filter((p) => {
32+
// 種類フィルタ
33+
if (typeFilter && p.type !== typeFilter) return false;
34+
35+
// キーワードフィルタ
36+
if (keyword) {
37+
const haystack = [
38+
p.title,
39+
p.description,
40+
p.type || "",
41+
...(p.platform || []),
42+
...(p.tags || []),
43+
]
44+
.join(" ")
45+
.toLowerCase();
46+
if (!haystack.includes(keyword)) return false;
47+
}
48+
49+
return true;
50+
});
51+
52+
listEl.innerHTML = "";
53+
54+
if (filtered.length === 0) {
55+
if (emptyEl) emptyEl.style.display = "block";
56+
return;
57+
} else if (emptyEl) {
58+
emptyEl.style.display = "none";
59+
}
60+
61+
filtered.forEach((p) => {
62+
const card = document.createElement("article");
63+
card.className = "card card--clickable product-card";
64+
65+
// サムネ
66+
if (p.thumbnail) {
67+
const thumb = document.createElement("div");
68+
thumb.className = "card__thumb";
69+
const img = document.createElement("img");
70+
img.src = p.thumbnail;
71+
img.alt = p.title;
72+
thumb.appendChild(img);
73+
card.appendChild(thumb);
74+
}
75+
76+
const body = document.createElement("div");
77+
body.className = "card__body";
78+
79+
const titleRow = document.createElement("div");
80+
titleRow.className = "card__title-row";
81+
82+
const title = document.createElement("h3");
83+
title.className = "card__title";
84+
title.textContent = p.title;
85+
86+
if (p.type) {
87+
const pill = document.createElement("span");
88+
pill.className = "pill pill--accent";
89+
pill.textContent = p.type;
90+
titleRow.appendChild(pill);
91+
}
92+
93+
titleRow.appendChild(title);
94+
body.appendChild(titleRow);
95+
96+
if (p.platform && p.platform.length > 0) {
97+
const plat = document.createElement("p");
98+
plat.className = "card__meta";
99+
plat.textContent = `Platform: ${p.platform.join(", ")}`;
100+
body.appendChild(plat);
101+
}
102+
103+
if (p.description) {
104+
const desc = document.createElement("p");
105+
desc.className = "card__description";
106+
desc.textContent = p.description;
107+
body.appendChild(desc);
108+
}
109+
110+
// タグ
111+
if (p.tags && p.tags.length > 0) {
112+
const tagRow = document.createElement("div");
113+
tagRow.className = "card__tags";
114+
p.tags.forEach((t) => {
115+
const tag = document.createElement("span");
116+
tag.className = "tag";
117+
tag.textContent = t;
118+
tagRow.appendChild(tag);
119+
});
120+
body.appendChild(tagRow);
121+
}
122+
123+
// リンク群
124+
const linkRow = document.createElement("div");
125+
linkRow.className = "card__actions";
126+
127+
if (p.storeLinks && p.storeLinks.length > 0) {
128+
p.storeLinks.forEach((link) => {
129+
const a = document.createElement("a");
130+
a.href = link.url;
131+
a.target = "_blank";
132+
a.rel = "noopener noreferrer";
133+
a.className = "btn btn--sm btn--outline";
134+
a.textContent = link.label || "Store";
135+
linkRow.appendChild(a);
136+
});
137+
}
138+
139+
if (p.downloadLinks && p.downloadLinks.length > 0) {
140+
p.downloadLinks.forEach((link) => {
141+
const a = document.createElement("a");
142+
a.href = link.url;
143+
a.className = "btn btn--sm btn--primary";
144+
a.textContent = link.label || "Download";
145+
linkRow.appendChild(a);
146+
});
147+
}
148+
149+
if (linkRow.children.length > 0) {
150+
body.appendChild(linkRow);
151+
}
152+
153+
card.appendChild(body);
154+
listEl.appendChild(card);
155+
});
156+
}
157+
158+
if (searchInput) {
159+
searchInput.addEventListener("input", () => {
160+
render();
161+
});
162+
}
163+
if (typeSelect) {
164+
typeSelect.addEventListener("change", () => {
165+
render();
166+
});
167+
}
168+
169+
loadProducts();
170+
});

content/blog/blog_00001.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ title: ブログはじめました
33
date: 2024-06-01
44
category: 日記
55
description: 筆者の自己紹介
6-
tags: [diary]
7-
thumbnail: assets/images/blog/unity-tools.png
6+
tags: diary
7+
thumbnail: https://breadmotion.github.io/WebSite/assets/img/ogp.png
88
---
99

1010
## 自己紹介

content/blog/blog_00002.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ title: Odin を導入してみた
33
date: 2024-06-02
44
category: Unity
55
description: チームで Odin 導入時にハマったポイントと対処方法
6-
tags: [unity, plugin, tool]
7-
thumbnail: assets/images/blog/unity-tools.png
6+
tags: unity, plugin, tool
7+
thumbnail: https://cdn-ak.f.st-hatena.com/images/fotolife/R/Raspberly/20201207/20201207023915.png
88
---
99

1010
こんにちは!パン君です。

content/blog/blog_00003.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ title: Odin でコンテキストエディター作ってみた
33
date: 2024-06-10
44
category: Unity
55
description: Odin でプランナー向けのコンテキストエディターを作った話
6-
tags: [unity, plugin, tools]
7-
thumbnail: assets/images/blog/unity-tools.png
6+
tags: unity, plugin, tools
7+
thumbnail: https://cdn-ak.f.st-hatena.com/images/fotolife/R/Raspberly/20201207/20201207023915.png
88
---
99

1010
こんにちは!パン君です。

content/blog/blog_00004.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ date: 2025-04-20
44
category: Unity
55
description: Unity開発でスマホ端末がプラットフォームの際にデバッグが便利になる機能の紹介
66
tags: unity, plugin, tool, android, ios
7-
thumbnail: assets/images/blog/unity-tools.png
7+
thumbnail: data:image/png;base64,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
88
---
99

1010
こんにちは!パン君です

content/blog/blog_00005.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ date: 2025-05-09
44
category: Git
55
description: GitLFSの無料ユーザーを救済します!
66
tags: git, api, dropbox, cloudstrage
7-
thumbnail: assets/images/blog/unity-tools.png
7+
thumbnail: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAWEAAACPCAMAAAAcGJqjAAAAzFBMVEX///8AAAAAYf/f39+bm5vLy8vY2NgAX/8AXf8AVf/q6uqwsLAAU/8AWf+MjIwAW/89PT1/f3+3t7cAUf/19fXExMTl5eXS0tLd3d2/v7/5+flfX1+jo6Nra2taWlo5OTmTk5NJSUkvLy8jIyP1+f8YGBgAZP/s8//Z5f/h6/+kv/+Hh4fR3/9ycnIODg5RUVHA0/9pl/9ekP8scv/I2f9Qh/+OsP+Gqv8/ff90nf8oKCgbbP80d/+wx/+auP8ASP+0y/9qnP9Wiv9jkv/IgT1iAAAIfElEQVR4nO2bd0PbPBDGnT2dvcjAmYTRMAOF5i2l9Pt/p9eypiWZ0pLEBZ7fX7HPku3H55Pu5DgOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMdmHvcFfATWR/cnUbbLo/vlPq/lIzK/Kufy5TurbXkdbQOv5CnnJn0KN2vT9j1Z9U25ws2X/V/XR2H5XM4lA/LlB912K21fY7m6D8BjuZoUuPnLsC2v2JKXUX2AaI7vC7mkQq5wLUa14xvNVr7CiPenfC3kkxrV/PdIm5v8vu8rLNYJq32fdkusN25OF5G4Kpm4rY9c0+TbbiMndbuhlwjY70m3xVXTom8wqjXvIm3V8qPsoZXpCjKdYn8HF5l6zwp/0eKscNTC7cl6E2ErPytOnE2EmI0Otn6R71phbR4hgm0uCLZ3Zhg25hOawj7npS1f4jtX2Dm51V01V/4557ayZssXHsIlClPhROJwu7HivSvs52z5kBu7GyWvO9Vtel5nUzhR26rE719hZ34tB7V8M5y4LVWbpTZhVThx+LtT9oupVrS12CsqWyGFW6mitYlTjDL8G1xuXDbC3R8btiNhs0zTmMLtrE+3MeISN4ite1apVIKonEqPat6Atzlgh00rWdFPihxbIaq3B4HxoiFMQuHsir4iQ+3pdM9m9JgVG2czQW+VijhiGGyetf9GnC3xQEa1qvtoMc0fSKSu5k9t7ZjC3H+y7FZnZKNEfnm+w1JFa/SQ0kxx9guucSbY7DitQ2H7xmxC4bps11AvoaZ0OKOWKd0askPadPP8hfdm93zZuJG5hJ97lG/t6bKmsNNid5pxmMK+Ml5CUVgqGBKBKpzl0lCoR3KFR6opLa4grXU4IjuLCfW6+EX13ibRm7myOulvbLrCzgHdQZJcqnB/lZAK972EDtWKKtwYhW2BJEzhUtjE54T1hE7wJBvKb2cQbhIXp7lNZOXsMbmxFI4JhsLOt2DH1OEKl9Q71xQMIO7OFJ5oJo+YmMILzUbf+Ialw7ojz5SWxwycWCEVtlz52roed/wfsV1ZbabCdbGHaivee4/r6AfEcaYn/JU8DGHxvb/RbnC3D+JESpgGjV57zDfoMCZbpdoVvkFcv8+eSEfEiF1k9K/nrhmkb1XXEg2+cputqmYq3OB35ijv9WA0GvmuNaFbI3pklxnJ4MQVnnUCU4fpQ6Z9QuEMbcYjOfnNgvA5bdW/YGcjGz3+XNnx3a0I9ZesNwVRkNCnZLLCRooVRlNT4Yy4Ia6wx2+uQ7dr/FAm8US2Eh3xocqRCmd4s6mUzBOPk/JN6YWpz1SXQ+P+mT+o6xh5V00ryAKptFlmc6bCKaEHU3ghXs+h7k0sUPSFwmNhqohuWIcjYWJzr5J4DmfCxF4gOmW7SEgu3qLQG3nSysDqkudTXrf9p2Ukr1BYDuFU0Jk8ti0kz+j9pERj2SGjT2fUdTFxkbOwPt1BYzQPwIT4ZsJyEVRx4zIt75hFIVL6CWfVr1BYvMLMqaQzch88EAorPS+4VmZdgvYzEIGgbzER5PCZceJCq+zICo8/cXusRtjUiVtkHBYKL6T70Kg5VpoLR6Wtaoppyh3VVJi+C/6LTycWU8M0YVt8dqGecr/cR61j5H78jLTlfyhubCp8IDyXKjyTHkbTW3XM0RRWp6xeWGEltugKTwwT15zne/ENc8tfZozgsWD5bJc4X1CHQlPhsdhDFfakyfudwqoPawq/4MOeYWJ7+HQwzighKmch2Himj4GBc2vTOVPhmvDckq7aJNihrBq3NIXPlZ7FcGYqTPsZCR9VTDRBptXTlkwDz2NMN+YPTW2tqNokc7L1MrBpblwtaCmJoTDbQe7RUHgQeoUdNWazXzJms0FwaJtLiEGQTf/kWNo/589FnC7BH0d8hJdDc0EVbf6zGWgZXg7NlZ/1CpuhsCfc0lT4jNpkVXglWmeEoAwmXjt6PtwQeZusA2fk2XkPC2VXbNy5wo2r+SeHxg6WwinLoe7Rk9FUV5gXG4gzGgozaSZaYzKIZZR2hJbc5jmdSFSmwnP5UR3TxJt9Y7NnxdHj4IR9WZVr/iIOfE3Hv2qQ3pG6D7XZaj9ZVZhOiWWt1KsMhXmdZkCjIlc1rfye0mdVrMmHIeoSVOI+qzMEwYY90AXNOVosiwtOKXLrrrIzRk7J5Nc9IvXLU5fPg1l6F+xw7fVL+zodHXtMhUX1q15qpCd8gzwemRzUD7KytkbSX1lbOxw2SqIePAydfjBsDEMVuZV81BX5M06W1+UgXTsJfShIV+/9xK8Q8WWrXWEaaU2F2UAUJpAqYzEwP6UKG6V72qOt4CxHWTZtY+4c45SN8kT8VQnJLPgGdfmnqK+zrQqzWzEVtgm5UgwzbY0peFJU4bOzsIktavYXCZ1ZS5bm6KPmNfxYl+kotq+s/Nj8wv9kLApP+LBnUdiUeKXuX/QtKlJ9Ko664CknHS3duT2iIzuWBwY2rYh5lUMvYyqT4Gr0F62GwiP5LrI1jnCDYui9nvLP3HjlpyMF42vNPSZpX5nfqsvyY7XDxJjsYsFaJnsX2nOJh/lN06YvceMfkf8vKI7TCqWs+iJmA5txV50087DZSgola2sNap2IBfvgFOOU/6tNg4g3DGdordIhje/nh6Xg/C16UWM5QWOXOf5jUbaLmd4xH7auH72JYi/bCX2jo1Yv+51sJyrL7WTtHwsVU9l/+6MfhjUOl1+Kw9vCrA9/VCLmEjvn8yjsz4fVgma+qf/7a0d8IoXVdY89/kvxUynsp3A0GoeXnXfL51LYT+GSbsTXrLvisynsOP7E7YUPBbdP15sQ9nnKuFnjz58AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wz/A5E2kgwihO5rAAAAAElFTkSuQmCC
88
---
99

1010
こんにちは!パン君です

content/blog/blog_00006.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ date: 2025-10-09
44
category: UE5
55
description: ゲーム開発におけるUE5のプラグイン開発
66
tags: ue5, cpp
7-
thumbnail: assets/images/blog/unreal-engine.png
7+
thumbnail: data:image/png;base64,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
88
---
99

1010
こんにちは!パン君です

0 commit comments

Comments
 (0)