[{"data":1,"prerenderedAt":635},["ShallowReactive",2],{"/blog/add-share-button/":3,"related-map":245,"/blog/add-share-button-surround":630},{"id":4,"title":5,"body":6,"category":228,"coverImage":229,"date":230,"description":16,"draft":231,"extension":232,"meta":233,"navigation":234,"path":235,"rawbody":236,"seo":237,"stem":238,"tags":239,"__hash__":244},"blog/blog/add-share-button/index.md","Hugo + Stackのブログにシェアボタン実装した",{"type":7,"value":8,"toc":216},"minimark",[9,13,17,20,31,38,41,57,64,67,77,82,87,90,103,113,116,119,132,138,160,163,166,169,172,189,196,199,202,209,212],[10,11,12],"h2",{"id":12},"概要",[14,15,16],"p",{},"タイトル通りです。このブログはHugo製で、Stackというテーマを適用して作っています。Stackテーマは改造等割と自由なので、試しにシェアボタンを実装してみるかと思いやってみました。",[14,18,19],{},"HTMLとCSSの知識、あとはHugoに関するドキュメントを調べる能力があれば行けると思います。今後色々追加する自分向けの備忘録として、この記事では簡単にやり方を書きます。Stackテーマに限らず、Hugo製ページの構造を少し理解していれば、どのテーマでも同じように改造ができると思うので、よければ参考にしてください。",[14,21,22,23,30],{},"step by stepのような解説ではなくあくまでメモなので、コードが気になる方は",[24,25,29],"a",{"href":26,"rel":27},"https://github.com/Kohxax/bokukoha-hugo-blog",[28],"nofollow","このブログのリポジトリ","を見てみてください。",[14,32,33],{},[34,35],"img",{"alt":36,"src":37},"完成形","https://images.bokukoha.dev/blog/add-share-button/1.jpg",[10,39,40],{"id":40},"前提知識",[14,42,43,44,48,49,52,53,56],{},"Hugo、少なくともStackテーマでは、",[45,46,47],"code",{},"./themes/layouts","内にウィジェットなど各種ページを構成するパーツがまとめて入れられていて、そのパーツを",[45,50,51],{},"./themes/layouts/_default/single.html","や",[45,54,55],{},"./themes/layouts/partials/article/article.html","なんかで読み込んで実際のページを作るという感じの動作をしています。",[14,58,59,60,63],{},"Hugoの公式ドキュメントによれば",[45,61,62],{},"./layouts","というディレクトリを作り、その中にthemes内と同じディレクトリ構造を作ってあげれば任意のパーツを上書きしたり、あるいは新しいパーツを追加して読み込むなんてことができるようになります。今回のシェアボタン追加は後者の方をやっていきます。",[10,65,66],{"id":66},"やり方",[14,68,69,72,73,76],{},[45,70,71],{},"./layouts/partials","内に",[45,74,75],{},"social-share.html","というコンポーネントを作成します。",[14,78,79,81],{},[45,80,75],{},"内にボタンや文章など、シェアボタンの部分に必要なものをHTMLとCSSで書きます。HTMLやCSSの変更はページ更新ではなく、開発サーバーを再起動しないと適用されないので注意してください。",[83,84,86],"h3",{"id":85},"htmlの読み込み","HTMLの読み込み",[14,88,89],{},"作ったシェアボタンのコンポーネントを記事の方で読み込みます。",[14,91,92,94,95,98,99,102],{},[45,93,55],{},"を",[45,96,97],{},"./layouts/partials/article/","内にコピーします。上書きする方の",[45,100,101],{},"article.html","内の任意の場所に",[104,105,110],"pre",{"className":106,"code":108,"language":109},[107],"language-text","{{ partial \"social-share.html\" . }}\n","text",[45,111,108],{"__ignoreMap":112},"",[14,114,115],{},"という行を追加してください。このブログではfooterの下に追加しています。",[83,117,118],{"id":118},"アイコンの読み込み",[14,120,121,122,125,126,131],{},"シェアボタンのアイコン部分の読み込みですが、これは",[45,123,124],{},"./assets/icons/hoge.svg","を読み込むようにするものとしています。svgファイルは",[24,127,130],{"href":128,"rel":129},"https://tabler.io/icons",[28],"stackが使っているサイト","などのアイコン配布サイトから拾ってきてもらうとして、実際にどうやってHTML内で書いて表示させるのかについて簡単に書きます。",[14,133,134,137],{},[45,135,136],{},"./assets/hoge/hoge.svg","を読み込みたいときは、",[104,139,143],{"className":140,"code":141,"language":142,"meta":112,"style":112},"language-html shiki shiki-themes github-dark","{{ $hoge := resources.Get \"hoge/hoge.svg\"}}\n{{ $hoge.Content | safeHTML }}\n","html",[45,144,145,154],{"__ignoreMap":112},[146,147,150],"span",{"class":148,"line":149},"line",1,[146,151,153],{"class":152},"s95oV","{{ $hoge := resources.Get \"hoge/hoge.svg\"}}\n",[146,155,157],{"class":148,"line":156},2,[146,158,159],{"class":152},"{{ $hoge.Content | safeHTML }}\n",[14,161,162],{},"のように書いてあげるだけでOKです。これをaタグで囲ってあげればアイコンが表示されます。",[83,164,165],{"id":165},"調整",[14,167,168],{},"CSSで頑張っていい感じに調整します。CSSがわからなくても、geminiやchatGPTにコードとスクショを投げれば割といい感じにしてくれると思います。",[14,170,171],{},"分かりにくいのでいくとアイコンや文字の色の指定ですが、",[104,173,177],{"className":174,"code":175,"language":176,"meta":112,"style":112},"language-css shiki shiki-themes github-dark","var(--card-text-color-main);\nvar(--card-text-color-secondary);\n","css",[45,178,179,184],{"__ignoreMap":112},[146,180,181],{"class":148,"line":149},[146,182,183],{"class":152},"var(--card-text-color-main);\n",[146,185,186],{"class":148,"line":156},[146,187,188],{"class":152},"var(--card-text-color-secondary);\n",[14,190,191,192,195],{},"のような色要素をテーマから拾ってこれるので、CSSで色指定する時はこれらを",[45,193,194],{},"color","のあとにつけてあげればいい感じになります。ダークテーマでもライトテーマでも、Hugoのテーマ本来の設定された色に基づいて色が変わってくれるので便利。",[10,197,198],{"id":198},"おわり",[14,200,201],{},"やってることとしては、追加したいコンポーネント作って、それを読み込むように既存のページ構成ファイルを上書きするだけなのでそこまで難易度は高くないですが、如何せん情報が少ないのでそこそこ時間がかかりました。",[14,203,204,205,208],{},"ファイルパスなんかは基本的にこの記事に書いているので、前述の通りわからなくなったら",[24,206,29],{"href":26,"rel":207},[28],"を見てみてください。多分わかると思います。",[14,210,211],{},"ではまた次回👋",[213,214,215],"style",{},"html pre.shiki code .s95oV, html code.shiki .s95oV{--shiki-default:#E1E4E8}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":112,"searchDepth":217,"depth":217,"links":218},4,[219,220,221,227],{"id":12,"depth":156,"text":12},{"id":40,"depth":156,"text":40},{"id":66,"depth":156,"text":66,"children":222},[223,225,226],{"id":85,"depth":224,"text":86},3,{"id":118,"depth":224,"text":118},{"id":165,"depth":224,"text":165},{"id":198,"depth":156,"text":198},"技術系","https://images.bokukoha.dev/blog/add-share-button/main.jpg","2025-06-30",false,"md",{},true,"/blog/add-share-button","---\ntitle: \"Hugo + Stackのブログにシェアボタン実装した\"\ndate: \"2025-06-30\"\ncategory: \"技術系\"\ntags:\n  - \"Hugo\"\n  - \"HTML\"\n  - \"CSS\"\n  - \"Stack Theme\"\ncoverImage: \"https://images.bokukoha.dev/blog/add-share-button/main.jpg\"\ndraft: false\ndescription: \"タイトル通りです。このブログはHugo製で、Stackというテーマを適用して作っています。Stackテーマは改造等割と自由なので、試しにシェアボタンを実装してみるかと思いやってみました。\"\n---\n\n\n## 概要\n\nタイトル通りです。このブログはHugo製で、Stackというテーマを適用して作っています。Stackテーマは改造等割と自由なので、試しにシェアボタンを実装してみるかと思いやってみました。\n\nHTMLとCSSの知識、あとはHugoに関するドキュメントを調べる能力があれば行けると思います。今後色々追加する自分向けの備忘録として、この記事では簡単にやり方を書きます。Stackテーマに限らず、Hugo製ページの構造を少し理解していれば、どのテーマでも同じように改造ができると思うので、よければ参考にしてください。\n\nstep by stepのような解説ではなくあくまでメモなので、コードが気になる方は[このブログのリポジトリ](https://github.com/Kohxax/bokukoha-hugo-blog)を見てみてください。\n\n![完成形](https://images.bokukoha.dev/blog/add-share-button/1.jpg)\n\n## 前提知識\n\nHugo、少なくともStackテーマでは、`./themes/layouts`内にウィジェットなど各種ページを構成するパーツがまとめて入れられていて、そのパーツを`./themes/layouts/_default/single.html`や`./themes/layouts/partials/article/article.html`なんかで読み込んで実際のページを作るという感じの動作をしています。\n\nHugoの公式ドキュメントによれば`./layouts`というディレクトリを作り、その中にthemes内と同じディレクトリ構造を作ってあげれば任意のパーツを上書きしたり、あるいは新しいパーツを追加して読み込むなんてことができるようになります。今回のシェアボタン追加は後者の方をやっていきます。\n\n## やり方\n\n`./layouts/partials`内に`social-share.html`というコンポーネントを作成します。\n\n`social-share.html`内にボタンや文章など、シェアボタンの部分に必要なものをHTMLとCSSで書きます。HTMLやCSSの変更はページ更新ではなく、開発サーバーを再起動しないと適用されないので注意してください。\n\n### HTMLの読み込み\n作ったシェアボタンのコンポーネントを記事の方で読み込みます。\n\n`./themes/layouts/partials/article/article.html`を`./layouts/partials/article/`内にコピーします。上書きする方の`article.html`内の任意の場所に\n\n```\n{{ partial \"social-share.html\" . }}\n```\nという行を追加してください。このブログではfooterの下に追加しています。\n\n### アイコンの読み込み\nシェアボタンのアイコン部分の読み込みですが、これは`./assets/icons/hoge.svg`を読み込むようにするものとしています。svgファイルは[stackが使っているサイト](https://tabler.io/icons)などのアイコン配布サイトから拾ってきてもらうとして、実際にどうやってHTML内で書いて表示させるのかについて簡単に書きます。\n\n`./assets/hoge/hoge.svg`を読み込みたいときは、\n\n```html\n{{ $hoge := resources.Get \"hoge/hoge.svg\"}}\n{{ $hoge.Content | safeHTML }}\n```\n\nのように書いてあげるだけでOKです。これをaタグで囲ってあげればアイコンが表示されます。\n\n### 調整\nCSSで頑張っていい感じに調整します。CSSがわからなくても、geminiやchatGPTにコードとスクショを投げれば割といい感じにしてくれると思います。\n\n分かりにくいのでいくとアイコンや文字の色の指定ですが、\n\n```css\nvar(--card-text-color-main);\nvar(--card-text-color-secondary);\n```\nのような色要素をテーマから拾ってこれるので、CSSで色指定する時はこれらを`color`のあとにつけてあげればいい感じになります。ダークテーマでもライトテーマでも、Hugoのテーマ本来の設定された色に基づいて色が変わってくれるので便利。\n\n## おわり\nやってることとしては、追加したいコンポーネント作って、それを読み込むように既存のページ構成ファイルを上書きするだけなのでそこまで難易度は高くないですが、如何せん情報が少ないのでそこそこ時間がかかりました。\n\nファイルパスなんかは基本的にこの記事に書いているので、前述の通りわからなくなったら[このブログのリポジトリ](https://github.com/Kohxax/bokukoha-hugo-blog)を見てみてください。多分わかると思います。\n\nではまた次回👋",{"title":5,"description":16},"blog/add-share-button/index",[240,241,242,243],"Hugo","HTML","CSS","Stack Theme","qAFSTadkGcCAqOSPisgvtzc7HMw9DOnXek5_7aXWp-k",{"/blog/music-history":246,"/blog/chichibu":274,"/blog/comment-feat":300,"/blog/stop-drunk":326,"/blog/build-pc":332,"/blog/cms-dev":346,"/blog/kansai_day3to4":360,"/blog/kansai_ryokou":386,"/blog/hiroshima":396,"/blog/chokaguya":402,"/blog/yamaokaya":412,"/blog/tonalite":418,"/blog/new_year_2026":428,"/blog/year_2025":434,"/blog/pixel10":444,"/blog/gpt-to-gemini":450,"/blog/za_log":456,"/blog/misskey-setting":462,"/blog/docker-on-lxc":476,"/blog/md_components":486,"/blog/nuxt_new_site":496,"/blog/simokita_moon":502,"/blog/mc_server":512,"/blog/aws_like_button":522,"/blog/sendai":528,"/blog/taityo":534,"/blog/add-share-button":540,"/blog/aws_summit":546,"/blog/drive_nikki":552,"/blog/2025-06-12":558,"/blog/cf_build":564,"/blog/ota_sanpo":574,"/blog/nuxt_content":580,"/blog/sushi":586,"/blog/misskey-docker":592,"/blog/server-make":598,"/blog/sanpo-log":608,"/blog/hugo-blog":618,"/blog/1":624},[247,253,258,264,269],{"title":248,"path":249,"date":250,"category":251,"coverImage":252},"秩父にレズアニメの看板探しに行ったぞ！","/blog/chichibu","2026-05-30","おでかけログ","https://images.bokukoha.dev/blog/chichibu/PXL_20260529_044435415.webp",{"title":254,"path":255,"date":256,"category":228,"coverImage":257},"Hugo + Stackテーマで楽に作る個人ブログ","/blog/hugo-blog","2025-02-20","https://images.bokukoha.dev/blog/hugo-blog/main.jpg",{"title":259,"path":260,"date":261,"category":262,"coverImage":263},"超かぐや姫！を見たぞ！～オタクの感想編～","/blog/chokaguya","2026-02-26","雑記","https://images.bokukoha.dev/blog/chokaguya/main.png",{"title":265,"path":266,"date":267,"category":262,"coverImage":268},"2025年楽しかったことまとめ","/blog/year_2025","2025-12-30","https://images.bokukoha.dev/blog/year_2025/main.jpg",{"title":270,"path":271,"date":272,"category":228,"coverImage":273},"ブログにコメント機能つけたぞ！（いらない）","/blog/comment-feat","2026-05-17","https://images.bokukoha.dev/blog/test/2026051117085800_s.webp",[275,280,285,290,295],{"title":276,"path":277,"date":278,"category":251,"coverImage":279},"ムーンアートナイト下北沢に行った日記","/blog/simokita_moon","2025-10-03","https://images.bokukoha.dev/blog/simokita_moon/main.jpg",{"title":281,"path":282,"date":283,"category":228,"coverImage":284},"ClaudePro契約してCMS作ったぞ！！！","/blog/cms-dev","2026-04-09","https://images.bokukoha.dev/blog/cms-dev/PXL_20260327_034729621.jpg",{"title":286,"path":287,"date":288,"category":262,"coverImage":289},"超久しぶりにPC自作したぞ！！の雑ログ","/blog/build-pc","2026-04-10","https://images.bokukoha.dev/blog/build-pc/1716.jpg",{"title":291,"path":292,"date":293,"category":251,"coverImage":294},"スタレのスシローコラボ行ってきた","/blog/sushi","2025-04-27","https://images.bokukoha.dev/blog/sushi/main.jpg",{"title":296,"path":297,"date":298,"category":251,"coverImage":299},"海ほたるにドライブ行ってきた","/blog/drive_nikki","2025-06-16","https://images.bokukoha.dev/blog/drive_nikki/main.jpg",[301,306,311,316,321],{"title":302,"path":303,"date":304,"category":228,"coverImage":305},"Hugo + StackのブログにAWSでいいねボタン実装した","/blog/aws_like_button","2025-09-21","https://images.bokukoha.dev/blog/aws_like_button/main.jpg",{"title":307,"path":308,"date":309,"category":228,"coverImage":310},"Nuxt Content3のコンポーネント呼び出し機能で遊んでみよう","/blog/md_components","2025-11-17","https://images.bokukoha.dev/blog/md_components/6.jpg",{"title":312,"path":313,"date":314,"category":262,"coverImage":315},"ワイヤレスイヤホンを買い替えたぞ！（Final TONALITE）","/blog/tonalite","2026-02-12","https://images.bokukoha.dev/blog/tonalite/main.jpg",{"title":317,"path":318,"date":319,"category":262,"coverImage":320},"おい、1カ月禁酒したのに何も効果ない件","/blog/stop-drunk","2026-04-19","https://images.bokukoha.dev/blog/stop-drunk/PXL_20260222_113942551.MACRO_FOCUS.MP.jpg",{"title":322,"path":323,"date":324,"category":262,"coverImage":325},"ブログ作った","/blog/1","2025-02-19","https://images.bokukoha.dev/blog/1/main.jpg",[327,328,329,330,331],{"title":270,"path":271,"date":272,"category":228,"coverImage":273},{"title":302,"path":303,"date":304,"category":228,"coverImage":305},{"title":286,"path":287,"date":288,"category":262,"coverImage":289},{"title":248,"path":249,"date":250,"category":251,"coverImage":252},{"title":5,"path":235,"date":230,"category":228,"coverImage":229},[333,334,339,340,345],{"title":281,"path":282,"date":283,"category":228,"coverImage":284},{"title":335,"path":336,"date":337,"category":262,"coverImage":338},"ポケモンZAクリアしたぞ！の感想","/blog/za_log","2025-12-01","https://images.bokukoha.dev/blog/za_log/main.jpg",{"title":322,"path":323,"date":324,"category":262,"coverImage":325},{"title":341,"path":342,"date":343,"category":262,"coverImage":344},"滑り込み1月まとめ！！","/blog/new_year_2026","2026-01-30","https://images.bokukoha.dev/blog/new_year_2026/main.jpg",{"title":259,"path":260,"date":261,"category":262,"coverImage":263},[347,348,349,354,355],{"title":286,"path":287,"date":288,"category":262,"coverImage":289},{"title":322,"path":323,"date":324,"category":262,"coverImage":325},{"title":350,"path":351,"date":352,"category":262,"coverImage":353},"個人サイトを0から作ったぞ！","/blog/nuxt_new_site","2025-11-13","https://images.bokukoha.dev/blog/nuxt_new_site/2.png",{"title":341,"path":342,"date":343,"category":262,"coverImage":344},{"title":356,"path":357,"date":358,"category":251,"coverImage":359},"突発で仙台旅行してきたぞ！日記","/blog/sendai","2025-09-17","https://images.bokukoha.dev/blog/sendai/main.jpg",[361,366,371,376,381],{"title":362,"path":363,"date":364,"category":251,"coverImage":365},"春休みラストの京都旅行してきたぞ！～関西1,2日目～","/blog/kansai_ryokou","2026-03-30","https://images.bokukoha.dev/blog/kansai_ryokou/main.jpg",{"title":367,"path":368,"date":369,"category":251,"coverImage":370},"ウルトラバカ散歩～山岡家を目指すぞ！編～","/blog/yamaokaya","2026-02-23","https://images.bokukoha.dev/blog/yamaokaya/main.jpg",{"title":372,"path":373,"date":374,"category":251,"coverImage":375},"初スカイメイト＆広島バカ散歩してきたぞ！","/blog/hiroshima","2026-03-15","https://images.bokukoha.dev/blog/hiroshima/main.jpg",{"title":377,"path":378,"date":379,"category":262,"coverImage":380},"オタクはバカ散歩をしろ！","/blog/ota_sanpo","2025-05-10","https://images.bokukoha.dev/blog/ota_sanpo/main.jpg",{"title":382,"path":383,"date":384,"category":251,"coverImage":385},"池袋から飯田橋まで散歩した","/blog/sanpo-log","2025-02-21","https://images.bokukoha.dev/blog/sanpo-log/main.jpg",[387,392,393,394,395],{"title":388,"path":389,"date":390,"category":251,"coverImage":391},"京都お花見バカ散歩＆名古屋メシ部～関西3,4日目～","/blog/kansai_day3to4","2026-03-31","https://images.bokukoha.dev/blog/kansai_day3to4/main.jpg",{"title":356,"path":357,"date":358,"category":251,"coverImage":359},{"title":296,"path":297,"date":298,"category":251,"coverImage":299},{"title":372,"path":373,"date":374,"category":251,"coverImage":375},{"title":291,"path":292,"date":293,"category":251,"coverImage":294},[397,398,399,400,401],{"title":377,"path":378,"date":379,"category":262,"coverImage":380},{"title":356,"path":357,"date":358,"category":251,"coverImage":359},{"title":362,"path":363,"date":364,"category":251,"coverImage":365},{"title":367,"path":368,"date":369,"category":251,"coverImage":370},{"title":388,"path":389,"date":390,"category":251,"coverImage":391},[403,404,405,406,407],{"title":335,"path":336,"date":337,"category":262,"coverImage":338},{"title":377,"path":378,"date":379,"category":262,"coverImage":380},{"title":367,"path":368,"date":369,"category":251,"coverImage":370},{"title":362,"path":363,"date":364,"category":251,"coverImage":365},{"title":408,"path":409,"date":410,"category":251,"coverImage":411},"無知オタク、AWS Summitに行く","/blog/aws_summit","2025-06-26","https://images.bokukoha.dev/blog/AWS_summit/main.jpg",[413,414,415,416,417],{"title":388,"path":389,"date":390,"category":251,"coverImage":391},{"title":377,"path":378,"date":379,"category":262,"coverImage":380},{"title":372,"path":373,"date":374,"category":251,"coverImage":375},{"title":259,"path":260,"date":261,"category":262,"coverImage":263},{"title":362,"path":363,"date":364,"category":251,"coverImage":365},[419,424,425,426,427],{"title":420,"path":421,"date":422,"category":262,"coverImage":423},"メインスマホをPixel10に乗り換えたぞ！","/blog/pixel10","2025-12-24","https://images.bokukoha.dev/blog/pixel10/main.jpg",{"title":270,"path":271,"date":272,"category":228,"coverImage":273},{"title":350,"path":351,"date":352,"category":262,"coverImage":353},{"title":372,"path":373,"date":374,"category":251,"coverImage":375},{"title":291,"path":292,"date":293,"category":251,"coverImage":294},[429,430,431,432,433],{"title":265,"path":266,"date":267,"category":262,"coverImage":268},{"title":281,"path":282,"date":283,"category":228,"coverImage":284},{"title":286,"path":287,"date":288,"category":262,"coverImage":289},{"title":420,"path":421,"date":422,"category":262,"coverImage":423},{"title":382,"path":383,"date":384,"category":251,"coverImage":385},[435,436,437,438,439],{"title":341,"path":342,"date":343,"category":262,"coverImage":344},{"title":322,"path":323,"date":324,"category":262,"coverImage":325},{"title":382,"path":383,"date":384,"category":251,"coverImage":385},{"title":350,"path":351,"date":352,"category":262,"coverImage":353},{"title":440,"path":441,"date":442,"category":228,"coverImage":443},"Proxmoxでコンテナ on コンテナして自鯖落とした話","/blog/docker-on-lxc","2025-11-21","https://images.bokukoha.dev/blog/docker-on-lxc/main.png",[445,446,447,448,449],{"title":312,"path":313,"date":314,"category":262,"coverImage":315},{"title":372,"path":373,"date":374,"category":251,"coverImage":375},{"title":350,"path":351,"date":352,"category":262,"coverImage":353},{"title":286,"path":287,"date":288,"category":262,"coverImage":289},{"title":270,"path":271,"date":272,"category":228,"coverImage":273},[451,452,453,454,455],{"title":382,"path":383,"date":384,"category":251,"coverImage":385},{"title":350,"path":351,"date":352,"category":262,"coverImage":353},{"title":356,"path":357,"date":358,"category":251,"coverImage":359},{"title":286,"path":287,"date":288,"category":262,"coverImage":289},{"title":362,"path":363,"date":364,"category":251,"coverImage":365},[457,458,459,460,461],{"title":259,"path":260,"date":261,"category":262,"coverImage":263},{"title":286,"path":287,"date":288,"category":262,"coverImage":289},{"title":281,"path":282,"date":283,"category":228,"coverImage":284},{"title":5,"path":235,"date":230,"category":228,"coverImage":229},{"title":248,"path":249,"date":250,"category":251,"coverImage":252},[463,468,473,474,475],{"title":464,"path":465,"date":466,"category":228,"coverImage":467},"HugoでのCloudflare Pagesのビルド失敗を回避する方法","/blog/cf_build","2025-05-11","https://images.bokukoha.dev/blog/cf_build/main.jpg",{"title":469,"path":470,"date":471,"category":228,"coverImage":472},"Cloudflare tunnelで作るMisskey自鯖","/blog/misskey-docker","2025-04-06","https://images.bokukoha.dev/blog/misskey-docker/main.jpg",{"title":291,"path":292,"date":293,"category":251,"coverImage":294},{"title":377,"path":378,"date":379,"category":262,"coverImage":380},{"title":5,"path":235,"date":230,"category":228,"coverImage":229},[477,478,479,484,485],{"title":469,"path":470,"date":471,"category":228,"coverImage":472},{"title":307,"path":308,"date":309,"category":228,"coverImage":310},{"title":480,"path":481,"date":482,"category":262,"coverImage":483},"労働体験して体調崩してた日記","/blog/taityo","2025-07-13","https://images.bokukoha.dev/blog/taityo/main.jpg",{"title":276,"path":277,"date":278,"category":251,"coverImage":279},{"title":254,"path":255,"date":256,"category":228,"coverImage":257},[487,488,489,494,495],{"title":270,"path":271,"date":272,"category":228,"coverImage":273},{"title":440,"path":441,"date":442,"category":228,"coverImage":443},{"title":490,"path":491,"date":492,"category":228,"coverImage":493},"Nuxt Contentでブログもどきを作ってみた","/blog/nuxt_content","2025-05-09","https://images.bokukoha.dev/blog/nuxt_content/main.jpg",{"title":335,"path":336,"date":337,"category":262,"coverImage":338},{"title":276,"path":277,"date":278,"category":251,"coverImage":279},[497,498,499,500,501],{"title":322,"path":323,"date":324,"category":262,"coverImage":325},{"title":281,"path":282,"date":283,"category":228,"coverImage":284},{"title":254,"path":255,"date":256,"category":228,"coverImage":257},{"title":276,"path":277,"date":278,"category":251,"coverImage":279},{"title":372,"path":373,"date":374,"category":251,"coverImage":375},[503,504,505,506,511],{"title":248,"path":249,"date":250,"category":251,"coverImage":252},{"title":350,"path":351,"date":352,"category":262,"coverImage":353},{"title":322,"path":323,"date":324,"category":262,"coverImage":325},{"title":507,"path":508,"date":509,"category":251,"coverImage":510},"先週は色々あったよ日記","/blog/2025-06-12","2025-06-12","https://images.bokukoha.dev/blog/2025-06-12/main.jpg",{"title":296,"path":297,"date":298,"category":251,"coverImage":299},[513,518,519,520,521],{"title":514,"path":515,"date":516,"category":228,"coverImage":517},"3万円くらいで作る自宅サーバー","/blog/server-make","2025-02-22","https://images.bokukoha.dev/blog/server-make/main.jpg",{"title":469,"path":470,"date":471,"category":228,"coverImage":472},{"title":276,"path":277,"date":278,"category":251,"coverImage":279},{"title":350,"path":351,"date":352,"category":262,"coverImage":353},{"title":367,"path":368,"date":369,"category":251,"coverImage":370},[523,524,525,526,527],{"title":5,"path":235,"date":230,"category":228,"coverImage":229},{"title":270,"path":271,"date":272,"category":228,"coverImage":273},{"title":254,"path":255,"date":256,"category":228,"coverImage":257},{"title":322,"path":323,"date":324,"category":262,"coverImage":325},{"title":317,"path":318,"date":319,"category":262,"coverImage":320},[529,530,531,532,533],{"title":362,"path":363,"date":364,"category":251,"coverImage":365},{"title":372,"path":373,"date":374,"category":251,"coverImage":375},{"title":296,"path":297,"date":298,"category":251,"coverImage":299},{"title":480,"path":481,"date":482,"category":262,"coverImage":483},{"title":281,"path":282,"date":283,"category":228,"coverImage":284},[535,536,537,538,539],{"title":356,"path":357,"date":358,"category":251,"coverImage":359},{"title":276,"path":277,"date":278,"category":251,"coverImage":279},{"title":281,"path":282,"date":283,"category":228,"coverImage":284},{"title":440,"path":441,"date":442,"category":228,"coverImage":443},{"title":372,"path":373,"date":374,"category":251,"coverImage":375},[541,542,543,544,545],{"title":302,"path":303,"date":304,"category":228,"coverImage":305},{"title":254,"path":255,"date":256,"category":228,"coverImage":257},{"title":322,"path":323,"date":324,"category":262,"coverImage":325},{"title":270,"path":271,"date":272,"category":228,"coverImage":273},{"title":291,"path":292,"date":293,"category":251,"coverImage":294},[547,548,549,550,551],{"title":377,"path":378,"date":379,"category":262,"coverImage":380},{"title":259,"path":260,"date":261,"category":262,"coverImage":263},{"title":302,"path":303,"date":304,"category":228,"coverImage":305},{"title":276,"path":277,"date":278,"category":251,"coverImage":279},{"title":248,"path":249,"date":250,"category":251,"coverImage":252},[553,554,555,556,557],{"title":291,"path":292,"date":293,"category":251,"coverImage":294},{"title":362,"path":363,"date":364,"category":251,"coverImage":365},{"title":356,"path":357,"date":358,"category":251,"coverImage":359},{"title":507,"path":508,"date":509,"category":251,"coverImage":510},{"title":372,"path":373,"date":374,"category":251,"coverImage":375},[559,560,561,562,563],{"title":322,"path":323,"date":324,"category":262,"coverImage":325},{"title":296,"path":297,"date":298,"category":251,"coverImage":299},{"title":276,"path":277,"date":278,"category":251,"coverImage":279},{"title":356,"path":357,"date":358,"category":251,"coverImage":359},{"title":350,"path":351,"date":352,"category":262,"coverImage":353},[565,570,571,572,573],{"title":566,"path":567,"date":568,"category":228,"coverImage":569},"MisskeyのDBバックアップとオブジェクトストレージの設定方法","/blog/misskey-setting","2025-11-23","https://images.bokukoha.dev/blog/misskey-setting/main.jpg",{"title":469,"path":470,"date":471,"category":228,"coverImage":472},{"title":254,"path":255,"date":256,"category":228,"coverImage":257},{"title":5,"path":235,"date":230,"category":228,"coverImage":229},{"title":302,"path":303,"date":304,"category":228,"coverImage":305},[575,576,577,578,579],{"title":372,"path":373,"date":374,"category":251,"coverImage":375},{"title":367,"path":368,"date":369,"category":251,"coverImage":370},{"title":408,"path":409,"date":410,"category":251,"coverImage":411},{"title":259,"path":260,"date":261,"category":262,"coverImage":263},{"title":388,"path":389,"date":390,"category":251,"coverImage":391},[581,582,583,584,585],{"title":322,"path":323,"date":324,"category":262,"coverImage":325},{"title":350,"path":351,"date":352,"category":262,"coverImage":353},{"title":296,"path":297,"date":298,"category":251,"coverImage":299},{"title":281,"path":282,"date":283,"category":228,"coverImage":284},{"title":307,"path":308,"date":309,"category":228,"coverImage":310},[587,588,589,590,591],{"title":296,"path":297,"date":298,"category":251,"coverImage":299},{"title":362,"path":363,"date":364,"category":251,"coverImage":365},{"title":356,"path":357,"date":358,"category":251,"coverImage":359},{"title":372,"path":373,"date":374,"category":251,"coverImage":375},{"title":5,"path":235,"date":230,"category":228,"coverImage":229},[593,594,595,596,597],{"title":514,"path":515,"date":516,"category":228,"coverImage":517},{"title":254,"path":255,"date":256,"category":228,"coverImage":257},{"title":440,"path":441,"date":442,"category":228,"coverImage":443},{"title":566,"path":567,"date":568,"category":228,"coverImage":569},{"title":464,"path":465,"date":466,"category":228,"coverImage":467},[599,604,605,606,607],{"title":600,"path":601,"date":602,"category":228,"coverImage":603},"自宅で動かすMinecraftサーバー","/blog/mc_server","2025-09-30","https://images.bokukoha.dev/blog/mc_server/main.jpg",{"title":469,"path":470,"date":471,"category":228,"coverImage":472},{"title":254,"path":255,"date":256,"category":228,"coverImage":257},{"title":286,"path":287,"date":288,"category":262,"coverImage":289},{"title":350,"path":351,"date":352,"category":262,"coverImage":353},[609,610,615,616,617],{"title":372,"path":373,"date":374,"category":251,"coverImage":375},{"title":611,"path":612,"date":613,"category":262,"coverImage":614},"chatGPTからGeminiに完全移行した","/blog/gpt-to-gemini","2025-12-03","https://images.bokukoha.dev/blog/gpt-to-gemini/main.png",{"title":377,"path":378,"date":379,"category":262,"coverImage":380},{"title":350,"path":351,"date":352,"category":262,"coverImage":353},{"title":388,"path":389,"date":390,"category":251,"coverImage":391},[619,620,621,622,623],{"title":5,"path":235,"date":230,"category":228,"coverImage":229},{"title":302,"path":303,"date":304,"category":228,"coverImage":305},{"title":322,"path":323,"date":324,"category":262,"coverImage":325},{"title":350,"path":351,"date":352,"category":262,"coverImage":353},{"title":469,"path":470,"date":471,"category":228,"coverImage":472},[625,626,627,628,629],{"title":490,"path":491,"date":492,"category":228,"coverImage":493},{"title":350,"path":351,"date":352,"category":262,"coverImage":353},{"title":281,"path":282,"date":283,"category":228,"coverImage":284},{"title":254,"path":255,"date":256,"category":228,"coverImage":257},{"title":507,"path":508,"date":509,"category":251,"coverImage":510},[631,633],{"title":480,"path":481,"stem":632,"children":-1},"blog/taityo/index",{"title":408,"path":409,"stem":634,"children":-1},"blog/AWS_summit/index",1782435686217]