Skip to content

Commit 0705be0

Browse files
committed
ブログ追加
1 parent adf1601 commit 0705be0

64 files changed

Lines changed: 2022 additions & 2553 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

WebSite/assets/data/blogList.json

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,18 @@
11
[
2+
{
3+
"id": "blog_00031",
4+
"title": "GoFデザインパターン - 抽象ファクトリ編",
5+
"date": "2026-02-03T00:00:00.000Z",
6+
"category": "Coding",
7+
"description": "GoFコレクションにおける抽象ファクトリパターン実践ガイド:概念、使いどころ、C++の実装例、注意点と出典を実用的に解説します",
8+
"tags": [
9+
"Coding",
10+
"DesignPattern"
11+
],
12+
"thumbnail": "assets/img/ogp.png",
13+
"contentPath": "blog/blog_00031.html",
14+
"recommended": true
15+
},
216
{
317
"id": "blog_00029",
418
"title": "GoFデザインパターン - ファクトリメソッド編",
@@ -13,6 +27,20 @@
1327
"contentPath": "blog/blog_00029.html",
1428
"recommended": true
1529
},
30+
{
31+
"id": "blog_00030",
32+
"title": "GoFデザインパターン - プロトタイプ編",
33+
"date": "2026-01-27T00:00:00.000Z",
34+
"category": "Coding",
35+
"description": "GoFコレクションにおけるプロトタイプパターン実践ガイド:概念、使いどころ、C++の実装例、注意点と出典を実用的に解説します",
36+
"tags": [
37+
"Coding",
38+
"DesignPattern"
39+
],
40+
"thumbnail": "assets/img/ogp.png",
41+
"contentPath": "blog/blog_00030.html",
42+
"recommended": true
43+
},
1644
{
1745
"id": "blog_00028",
1846
"title": "GoFデザインパターン - シングルトン編",

WebSite/assets/data/blogList_en.json

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,18 @@
11
[
2+
{
3+
"id": "blog_00031",
4+
"title": "GoFデザインパターン - 抽象ファクトリ編",
5+
"date": "2026-02-03T00:00:00.000Z",
6+
"category": "Coding",
7+
"description": "GoFコレクションにおける抽象ファクトリパターン実践ガイド:概念、使いどころ、C++の実装例、注意点と出典を実用的に解説します",
8+
"tags": [
9+
"Coding",
10+
"DesignPattern"
11+
],
12+
"thumbnail": "assets/img/ogp.png",
13+
"contentPath": "blog/en/blog_00031.html",
14+
"recommended": true
15+
},
216
{
317
"id": "blog_00029",
418
"title": "GoF Design Patterns - Factory Method",
@@ -13,6 +27,20 @@
1327
"contentPath": "blog/en/blog_00029.html",
1428
"recommended": true
1529
},
30+
{
31+
"id": "blog_00030",
32+
"title": "GoF Design Patterns - Prototype",
33+
"date": "2026-01-27T00:00:00.000Z",
34+
"category": "Coding",
35+
"description": "A practical guide to the Prototype pattern from the GoF collection: concept, when to use it, C++ and Python examples, implementation notes and references.",
36+
"tags": [
37+
"Coding",
38+
"DesignPattern"
39+
],
40+
"thumbnail": "assets/img/ogp.png",
41+
"contentPath": "blog/en/blog_00030.html",
42+
"recommended": true
43+
},
1644
{
1745
"id": "blog_00028",
1846
"title": "GoF Design Patterns - Singleton",

WebSite/blog/blog_00001.html

Lines changed: 1 addition & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -258,50 +258,7 @@ <h2 class="section__title">関連記事</h2>
258258
<h2 class="section__title">おすすめ記事</h2>
259259
<div id="recommendList" class="recommend-grid"></div>
260260
</section>
261-
<section class="section section--comments">
262-
<h2 class="section__title">コメント</h2>
263-
<div id="comments" class="post-comments">
264-
<div class="giscus-placeholder" data-giscus-config="{&quot;repo&quot;:&quot;BreadMotion/breadmotion.github.io&quot;,&quot;repoId&quot;:&quot;R_kgDOM8I6Fg&quot;,&quot;category&quot;:&quot;Comment&quot;,&quot;categoryId&quot;:&quot;DIC_kwDOM8I6Fs4CzPPY&quot;,&quot;mapping&quot;:&quot;og:title&quot;,&quot;theme&quot;:&quot;preferred_color_scheme&quot;}">
265-
<p class="giscus-loading">コメントを読み込み中...</p>
266-
</div>
267-
</div>
268-
</section>
269-
<script>
270-
(function() {
271-
var placeholder = document.querySelector('.giscus-placeholder');
272-
if (!placeholder) return;
273-
var observer = new IntersectionObserver(function(entries) {
274-
entries.forEach(function(entry) {
275-
if (entry.isIntersecting) {
276-
observer.disconnect();
277-
try {
278-
var config = JSON.parse(placeholder.getAttribute('data-giscus-config'));
279-
var script = document.createElement('script');
280-
script.src = 'https://giscus.app/client.js';
281-
script.setAttribute('data-repo', config.repo);
282-
script.setAttribute('data-repo-id', config.repoId);
283-
script.setAttribute('data-category', config.category);
284-
script.setAttribute('data-category-id', config.categoryId);
285-
script.setAttribute('data-mapping', config.mapping);
286-
script.setAttribute('data-strict', '0');
287-
script.setAttribute('data-reactions-enabled', '1');
288-
script.setAttribute('data-emit-metadata', '0');
289-
script.setAttribute('data-input-position', 'bottom');
290-
script.setAttribute('data-theme', config.theme);
291-
script.setAttribute('crossorigin', 'anonymous');
292-
script.async = true;
293-
placeholder.innerHTML = '';
294-
placeholder.appendChild(script);
295-
} catch (e) {
296-
console.error('Failed to load Giscus comments:', e);
297-
placeholder.innerHTML = '<p style="color: var(--color-text-muted); text-align: center;">Failed to load comments.</p>';
298-
}
299-
}
300-
});
301-
}, { rootMargin: '200px' });
302-
observer.observe(placeholder);
303-
})();
304-
</script>
261+
305262
</main>
306263
<div class="toc-overlay"></div>
307264
<button type="button" class="toc-toggle" aria-label="目次を開く">

WebSite/blog/blog_00002.html

Lines changed: 1 addition & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -386,50 +386,7 @@ <h2 class="section__title">関連記事</h2>
386386
<h2 class="section__title">おすすめ記事</h2>
387387
<div id="recommendList" class="recommend-grid"></div>
388388
</section>
389-
<section class="section section--comments">
390-
<h2 class="section__title">コメント</h2>
391-
<div id="comments" class="post-comments">
392-
<div class="giscus-placeholder" data-giscus-config="{&quot;repo&quot;:&quot;BreadMotion/breadmotion.github.io&quot;,&quot;repoId&quot;:&quot;R_kgDOM8I6Fg&quot;,&quot;category&quot;:&quot;Comment&quot;,&quot;categoryId&quot;:&quot;DIC_kwDOM8I6Fs4CzPPY&quot;,&quot;mapping&quot;:&quot;og:title&quot;,&quot;theme&quot;:&quot;preferred_color_scheme&quot;}">
393-
<p class="giscus-loading">コメントを読み込み中...</p>
394-
</div>
395-
</div>
396-
</section>
397-
<script>
398-
(function() {
399-
var placeholder = document.querySelector('.giscus-placeholder');
400-
if (!placeholder) return;
401-
var observer = new IntersectionObserver(function(entries) {
402-
entries.forEach(function(entry) {
403-
if (entry.isIntersecting) {
404-
observer.disconnect();
405-
try {
406-
var config = JSON.parse(placeholder.getAttribute('data-giscus-config'));
407-
var script = document.createElement('script');
408-
script.src = 'https://giscus.app/client.js';
409-
script.setAttribute('data-repo', config.repo);
410-
script.setAttribute('data-repo-id', config.repoId);
411-
script.setAttribute('data-category', config.category);
412-
script.setAttribute('data-category-id', config.categoryId);
413-
script.setAttribute('data-mapping', config.mapping);
414-
script.setAttribute('data-strict', '0');
415-
script.setAttribute('data-reactions-enabled', '1');
416-
script.setAttribute('data-emit-metadata', '0');
417-
script.setAttribute('data-input-position', 'bottom');
418-
script.setAttribute('data-theme', config.theme);
419-
script.setAttribute('crossorigin', 'anonymous');
420-
script.async = true;
421-
placeholder.innerHTML = '';
422-
placeholder.appendChild(script);
423-
} catch (e) {
424-
console.error('Failed to load Giscus comments:', e);
425-
placeholder.innerHTML = '<p style="color: var(--color-text-muted); text-align: center;">Failed to load comments.</p>';
426-
}
427-
}
428-
});
429-
}, { rootMargin: '200px' });
430-
observer.observe(placeholder);
431-
})();
432-
</script>
389+
433390
</main>
434391
<div class="toc-overlay"></div>
435392
<button type="button" class="toc-toggle" aria-label="目次を開く">

WebSite/blog/blog_00003.html

Lines changed: 1 addition & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -396,50 +396,7 @@ <h2 class="section__title">関連記事</h2>
396396
<h2 class="section__title">おすすめ記事</h2>
397397
<div id="recommendList" class="recommend-grid"></div>
398398
</section>
399-
<section class="section section--comments">
400-
<h2 class="section__title">コメント</h2>
401-
<div id="comments" class="post-comments">
402-
<div class="giscus-placeholder" data-giscus-config="{&quot;repo&quot;:&quot;BreadMotion/breadmotion.github.io&quot;,&quot;repoId&quot;:&quot;R_kgDOM8I6Fg&quot;,&quot;category&quot;:&quot;Comment&quot;,&quot;categoryId&quot;:&quot;DIC_kwDOM8I6Fs4CzPPY&quot;,&quot;mapping&quot;:&quot;og:title&quot;,&quot;theme&quot;:&quot;preferred_color_scheme&quot;}">
403-
<p class="giscus-loading">コメントを読み込み中...</p>
404-
</div>
405-
</div>
406-
</section>
407-
<script>
408-
(function() {
409-
var placeholder = document.querySelector('.giscus-placeholder');
410-
if (!placeholder) return;
411-
var observer = new IntersectionObserver(function(entries) {
412-
entries.forEach(function(entry) {
413-
if (entry.isIntersecting) {
414-
observer.disconnect();
415-
try {
416-
var config = JSON.parse(placeholder.getAttribute('data-giscus-config'));
417-
var script = document.createElement('script');
418-
script.src = 'https://giscus.app/client.js';
419-
script.setAttribute('data-repo', config.repo);
420-
script.setAttribute('data-repo-id', config.repoId);
421-
script.setAttribute('data-category', config.category);
422-
script.setAttribute('data-category-id', config.categoryId);
423-
script.setAttribute('data-mapping', config.mapping);
424-
script.setAttribute('data-strict', '0');
425-
script.setAttribute('data-reactions-enabled', '1');
426-
script.setAttribute('data-emit-metadata', '0');
427-
script.setAttribute('data-input-position', 'bottom');
428-
script.setAttribute('data-theme', config.theme);
429-
script.setAttribute('crossorigin', 'anonymous');
430-
script.async = true;
431-
placeholder.innerHTML = '';
432-
placeholder.appendChild(script);
433-
} catch (e) {
434-
console.error('Failed to load Giscus comments:', e);
435-
placeholder.innerHTML = '<p style="color: var(--color-text-muted); text-align: center;">Failed to load comments.</p>';
436-
}
437-
}
438-
});
439-
}, { rootMargin: '200px' });
440-
observer.observe(placeholder);
441-
})();
442-
</script>
399+
443400
</main>
444401
<div class="toc-overlay"></div>
445402
<button type="button" class="toc-toggle" aria-label="目次を開く">

WebSite/blog/blog_00004.html

Lines changed: 1 addition & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -259,50 +259,7 @@ <h2 class="section__title">関連記事</h2>
259259
<h2 class="section__title">おすすめ記事</h2>
260260
<div id="recommendList" class="recommend-grid"></div>
261261
</section>
262-
<section class="section section--comments">
263-
<h2 class="section__title">コメント</h2>
264-
<div id="comments" class="post-comments">
265-
<div class="giscus-placeholder" data-giscus-config="{&quot;repo&quot;:&quot;BreadMotion/breadmotion.github.io&quot;,&quot;repoId&quot;:&quot;R_kgDOM8I6Fg&quot;,&quot;category&quot;:&quot;Comment&quot;,&quot;categoryId&quot;:&quot;DIC_kwDOM8I6Fs4CzPPY&quot;,&quot;mapping&quot;:&quot;og:title&quot;,&quot;theme&quot;:&quot;preferred_color_scheme&quot;}">
266-
<p class="giscus-loading">コメントを読み込み中...</p>
267-
</div>
268-
</div>
269-
</section>
270-
<script>
271-
(function() {
272-
var placeholder = document.querySelector('.giscus-placeholder');
273-
if (!placeholder) return;
274-
var observer = new IntersectionObserver(function(entries) {
275-
entries.forEach(function(entry) {
276-
if (entry.isIntersecting) {
277-
observer.disconnect();
278-
try {
279-
var config = JSON.parse(placeholder.getAttribute('data-giscus-config'));
280-
var script = document.createElement('script');
281-
script.src = 'https://giscus.app/client.js';
282-
script.setAttribute('data-repo', config.repo);
283-
script.setAttribute('data-repo-id', config.repoId);
284-
script.setAttribute('data-category', config.category);
285-
script.setAttribute('data-category-id', config.categoryId);
286-
script.setAttribute('data-mapping', config.mapping);
287-
script.setAttribute('data-strict', '0');
288-
script.setAttribute('data-reactions-enabled', '1');
289-
script.setAttribute('data-emit-metadata', '0');
290-
script.setAttribute('data-input-position', 'bottom');
291-
script.setAttribute('data-theme', config.theme);
292-
script.setAttribute('crossorigin', 'anonymous');
293-
script.async = true;
294-
placeholder.innerHTML = '';
295-
placeholder.appendChild(script);
296-
} catch (e) {
297-
console.error('Failed to load Giscus comments:', e);
298-
placeholder.innerHTML = '<p style="color: var(--color-text-muted); text-align: center;">Failed to load comments.</p>';
299-
}
300-
}
301-
});
302-
}, { rootMargin: '200px' });
303-
observer.observe(placeholder);
304-
})();
305-
</script>
262+
306263
</main>
307264
<div class="toc-overlay"></div>
308265
<button type="button" class="toc-toggle" aria-label="目次を開く">

WebSite/blog/blog_00005.html

Lines changed: 1 addition & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -378,50 +378,7 @@ <h2 class="section__title">関連記事</h2>
378378
<h2 class="section__title">おすすめ記事</h2>
379379
<div id="recommendList" class="recommend-grid"></div>
380380
</section>
381-
<section class="section section--comments">
382-
<h2 class="section__title">コメント</h2>
383-
<div id="comments" class="post-comments">
384-
<div class="giscus-placeholder" data-giscus-config="{&quot;repo&quot;:&quot;BreadMotion/breadmotion.github.io&quot;,&quot;repoId&quot;:&quot;R_kgDOM8I6Fg&quot;,&quot;category&quot;:&quot;Comment&quot;,&quot;categoryId&quot;:&quot;DIC_kwDOM8I6Fs4CzPPY&quot;,&quot;mapping&quot;:&quot;og:title&quot;,&quot;theme&quot;:&quot;preferred_color_scheme&quot;}">
385-
<p class="giscus-loading">コメントを読み込み中...</p>
386-
</div>
387-
</div>
388-
</section>
389-
<script>
390-
(function() {
391-
var placeholder = document.querySelector('.giscus-placeholder');
392-
if (!placeholder) return;
393-
var observer = new IntersectionObserver(function(entries) {
394-
entries.forEach(function(entry) {
395-
if (entry.isIntersecting) {
396-
observer.disconnect();
397-
try {
398-
var config = JSON.parse(placeholder.getAttribute('data-giscus-config'));
399-
var script = document.createElement('script');
400-
script.src = 'https://giscus.app/client.js';
401-
script.setAttribute('data-repo', config.repo);
402-
script.setAttribute('data-repo-id', config.repoId);
403-
script.setAttribute('data-category', config.category);
404-
script.setAttribute('data-category-id', config.categoryId);
405-
script.setAttribute('data-mapping', config.mapping);
406-
script.setAttribute('data-strict', '0');
407-
script.setAttribute('data-reactions-enabled', '1');
408-
script.setAttribute('data-emit-metadata', '0');
409-
script.setAttribute('data-input-position', 'bottom');
410-
script.setAttribute('data-theme', config.theme);
411-
script.setAttribute('crossorigin', 'anonymous');
412-
script.async = true;
413-
placeholder.innerHTML = '';
414-
placeholder.appendChild(script);
415-
} catch (e) {
416-
console.error('Failed to load Giscus comments:', e);
417-
placeholder.innerHTML = '<p style="color: var(--color-text-muted); text-align: center;">Failed to load comments.</p>';
418-
}
419-
}
420-
});
421-
}, { rootMargin: '200px' });
422-
observer.observe(placeholder);
423-
})();
424-
</script>
381+
425382
</main>
426383
<div class="toc-overlay"></div>
427384
<button type="button" class="toc-toggle" aria-label="目次を開く">

WebSite/blog/blog_00006.html

Lines changed: 1 addition & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -335,50 +335,7 @@ <h2 class="section__title">関連記事</h2>
335335
<h2 class="section__title">おすすめ記事</h2>
336336
<div id="recommendList" class="recommend-grid"></div>
337337
</section>
338-
<section class="section section--comments">
339-
<h2 class="section__title">コメント</h2>
340-
<div id="comments" class="post-comments">
341-
<div class="giscus-placeholder" data-giscus-config="{&quot;repo&quot;:&quot;BreadMotion/breadmotion.github.io&quot;,&quot;repoId&quot;:&quot;R_kgDOM8I6Fg&quot;,&quot;category&quot;:&quot;Comment&quot;,&quot;categoryId&quot;:&quot;DIC_kwDOM8I6Fs4CzPPY&quot;,&quot;mapping&quot;:&quot;og:title&quot;,&quot;theme&quot;:&quot;preferred_color_scheme&quot;}">
342-
<p class="giscus-loading">コメントを読み込み中...</p>
343-
</div>
344-
</div>
345-
</section>
346-
<script>
347-
(function() {
348-
var placeholder = document.querySelector('.giscus-placeholder');
349-
if (!placeholder) return;
350-
var observer = new IntersectionObserver(function(entries) {
351-
entries.forEach(function(entry) {
352-
if (entry.isIntersecting) {
353-
observer.disconnect();
354-
try {
355-
var config = JSON.parse(placeholder.getAttribute('data-giscus-config'));
356-
var script = document.createElement('script');
357-
script.src = 'https://giscus.app/client.js';
358-
script.setAttribute('data-repo', config.repo);
359-
script.setAttribute('data-repo-id', config.repoId);
360-
script.setAttribute('data-category', config.category);
361-
script.setAttribute('data-category-id', config.categoryId);
362-
script.setAttribute('data-mapping', config.mapping);
363-
script.setAttribute('data-strict', '0');
364-
script.setAttribute('data-reactions-enabled', '1');
365-
script.setAttribute('data-emit-metadata', '0');
366-
script.setAttribute('data-input-position', 'bottom');
367-
script.setAttribute('data-theme', config.theme);
368-
script.setAttribute('crossorigin', 'anonymous');
369-
script.async = true;
370-
placeholder.innerHTML = '';
371-
placeholder.appendChild(script);
372-
} catch (e) {
373-
console.error('Failed to load Giscus comments:', e);
374-
placeholder.innerHTML = '<p style="color: var(--color-text-muted); text-align: center;">Failed to load comments.</p>';
375-
}
376-
}
377-
});
378-
}, { rootMargin: '200px' });
379-
observer.observe(placeholder);
380-
})();
381-
</script>
338+
382339
</main>
383340
<div class="toc-overlay"></div>
384341
<button type="button" class="toc-toggle" aria-label="目次を開く">

0 commit comments

Comments
 (0)