[{"data":1,"prerenderedAt":598},["ShallowReactive",2],{"/blog/nuxt_content/":3,"related-map":208,"/blog/nuxt_content-surround":593},{"id":4,"title":5,"body":6,"category":194,"coverImage":195,"date":196,"description":35,"draft":197,"extension":198,"meta":199,"navigation":200,"path":201,"rawbody":202,"seo":203,"stem":204,"tags":205,"__hash__":207},"blog/blog/nuxt_content/index.md","Nuxt Contentでブログもどきを作ってみた",{"type":7,"value":8,"toc":184},"minimark",[9,13,21,30,33,36,39,42,45,48,61,64,67,70,73,76,87,90,96,99,102,108,111,114,117,120,127,133,136,139,145,162,167,181],[10,11,12],"h2",{"id":12},"できた",[14,15,16],"p",{},[17,18],"img",{"alt":19,"src":20},"完成形","https://images.bokukoha.dev/blog/nuxt_content/1.jpg",[14,22,23],{},[24,25,29],"a",{"href":26,"rel":27},"https://github.com/Kohxax/bokukoha-novel",[28],"nofollow","GitHubのリポジトリ",[10,31,32],{"id":32},"なんで作ったのか",[14,34,35],{},"作ってみたかったからです。というのはあまりにも味気ないので、理由らしい理由を書こうと思います。",[14,37,38],{},"もともとブログを作ろうというのはずーっと前から考えていたんですが、今皆さんが読んでくれているこのサイトを、思ったよりも楽にそして良いデザインで構築することができたので、わざわざ自作をする必要がなくなりました。",[14,40,41],{},"ですが、「やっぱ自作してぇ～～～」という気持ちが止まらなかったので、別にこちらと内容を分けるわけではないですが、遊びがてら作ることにしました。",[14,43,44],{},"それと、当初は僕がオタクをしているコンテンツのキャラ妄想みたいなのを適当に投げるサイトを作るという構想だったんですが、やってるうちに「雑記帳で良くね？これ」となり結局ブログ（その2）が作られることになってしまいました。",[10,46,47],{"id":47},"使ったもの",[49,50,51,55,58],"ul",{},[52,53,54],"li",{},"Nuxt",[52,56,57],{},"Nuxt Content",[52,59,60],{},"Tailwind CSS",[14,62,63],{},"基本この三種類です。開発鯖はProxmoxのLXCで適当に立ててやりました。以前プロフサイトを作るときにVueを使ったので、少しだけとはいえ見慣れてるものを使おうってことでNuxtを触ってみました。",[14,65,66],{},"最終的に作るものが静的サイトなのだから、このブログで使われてるHugoのような静的サイトジェネレータを使えばいいだろって話なんですが、自分で1から作ってみるのも楽しそうだったので…",[14,68,69],{},"他に比べる対象がないのでなんともですが、Nuxtのドキュメントは割とわかりやすいなと感じました。JavaScriptやTypeScriptの知識ほぼ0の僕のような人でも一応形は作れたので。",[10,71,72],{"id":72},"機能とか",[14,74,75],{},"Nuxt Contentは、Contentの名の通りMarkdownからページを生成してくれる優れものです。Nuxtのルーティング機能なんかを使ってあげれば、4行程度のTypeScriptのコードと.vueファイルの中身を少し書くだけで動くブログが作れます。",[77,78,83],"pre",{"className":79,"code":81,"language":82},[80],"language-text","\u003Cscript setup>\nconst slug = useRoute().params.slug\nconst { data: post } = await useAsyncData(`content-${slug}`, () => {\n  return queryCollection('content').path(`/${slug}`).first()\n})\n\u003C/script>\n","text",[84,85,81],"code",{"__ignoreMap":86},"",[14,88,89],{},"Markdownの内容を表示するページ本体のTSのコードです。マジでこれだけです。root/content内部の.md等のファイルを持ってきて、",[77,91,94],{"className":92,"code":93,"language":82},[80],"{{ post.title }}\n{{ post.description }}\n{{ post.date }}\n\u003CContentRenderer :value=\"post\" />\n",[84,95,93],{"__ignoreMap":86},[14,97,98],{},"一部configで設定が必要なものもありますが、こういうのを.vue内に記述してあげるだけでタイトルや本文なんかを表示してくれます。めっちゃ便利だけど、TSやJSの知識がマジでないせいで僕は理解にかなり時間がかかりました。",[14,100,101],{},"タグやカテゴリ分けも頑張れば実装できるんですが、雑記帳に機能はいらんだろ…ってことで放置してます。",[14,103,104],{},[105,106,107],"small",{},"面倒なわけではない",[10,109,110],{"id":110},"見た目",[14,112,113],{},"このブログやプロフサイトに色味をめっちゃ寄せてます。僕自身ダークモードが好きなのと、目にやさしい感じで黒過ぎないのがお気に入りかな。",[14,115,116],{},"UIとかの見た目作りはTailwind CSSでやりました。\n知り合いのお兄さんに猛烈なTailwindアンチがいたので今まで使っていなかったんですが、Tailwind便利すぎ！！もうTailwind信者になります。",[14,118,119],{},"とにかく、この手の技術系のものってネットの情報量が正義だと思ってる節があります。Tailwindくんは流石人気なだけあって、少し調べれば大概のことは解決するしUIコンポーネントなんかも一杯転がってて助かりました。",[14,121,122,123,126],{},"あとはTailwindくんのプラグインで導入できる",[84,124,125],{},"Prose","というクラスが文章載せるサイト作るときにすっごく便利。ヘッダーや本文なんかを自動で判別して見やすいように整えてくれます。Nuxt Contentなら記事部分はarticleタグで囲うことになるんですが、その場合は",[77,128,131],{"className":129,"code":130,"language":82},[80],"\u003Carticle class=\"prose\">\n  \u003CContentRenderer :value=\"post\" />\n\u003C/article>\n",[84,132,130],{"__ignoreMap":86},[14,134,135],{},"これでOK。マジでこれだけで文字の大きさとかが自動で調節されます。便利すぎた。",[10,137,138],{"id":138},"総括",[14,140,141],{},[142,143,144],"strong",{},"難しかったこと",[49,146,147,150,153,156,159],{},[52,148,149],{},"contentからページ表示させるのがマジでわからなくて詰まった",[52,151,152],{},"slugの仕様がNuxt2と3で結構変わっていて、めっちゃ詰まった",[52,154,155],{},"Tailwindの導入方法がこれまた結構変わっていた",[52,157,158],{},"post.dateの表示方法が一生わからんかった",[52,160,161],{},"Google PageSpeed Insightsのスコア上がらん",[14,163,164],{},[142,165,166],{},"わかったこと",[49,168,169,172,175,178],{},[52,170,171],{},"Nuxtちょっとわかるようになった",[52,173,174],{},"ドキュメントはちゃんと読もう",[52,176,177],{},"post.dateの表示方法はもうちょい分かりやすくしてくれていいと思う",[52,179,180],{},"世のWeb開発者の皆様はすごい",[14,182,183],{},"では、機会があればまた次回👋",{"title":86,"searchDepth":185,"depth":185,"links":186},4,[187,189,190,191,192,193],{"id":12,"depth":188,"text":12},2,{"id":32,"depth":188,"text":32},{"id":47,"depth":188,"text":47},{"id":72,"depth":188,"text":72},{"id":110,"depth":188,"text":110},{"id":138,"depth":188,"text":138},"技術系","https://images.bokukoha.dev/blog/nuxt_content/main.jpg","2025-05-09",false,"md",{},true,"/blog/nuxt_content","---\ntitle: \"Nuxt Contentでブログもどきを作ってみた\"\ndate: \"2025-05-09\"\ncategory: \"技術系\"\ntags:\n  - \"Nuxt\"\n  - \"Nuxt Content\"\n  - \"Tailwind CSS\"\n  - \"Web制作\"\ncoverImage: \"https://images.bokukoha.dev/blog/nuxt_content/main.jpg\"\ndraft: false\ndescription: \"作ってみたかったからです。というのはあまりにも味気ないので、理由らしい理由を書こうと思います。\"\n---\n\n\n## できた\n![完成形](https://images.bokukoha.dev/blog/nuxt_content/1.jpg)\n\n[GitHubのリポジトリ](https://github.com/Kohxax/bokukoha-novel)\n\n## なんで作ったのか\n作ってみたかったからです。というのはあまりにも味気ないので、理由らしい理由を書こうと思います。\n\nもともとブログを作ろうというのはずーっと前から考えていたんですが、今皆さんが読んでくれているこのサイトを、思ったよりも楽にそして良いデザインで構築することができたので、わざわざ自作をする必要がなくなりました。\n\nですが、「やっぱ自作してぇ～～～」という気持ちが止まらなかったので、別にこちらと内容を分けるわけではないですが、遊びがてら作ることにしました。\n\nそれと、当初は僕がオタクをしているコンテンツのキャラ妄想みたいなのを適当に投げるサイトを作るという構想だったんですが、やってるうちに「雑記帳で良くね？これ」となり結局ブログ（その2）が作られることになってしまいました。\n\n## 使ったもの\n- Nuxt\n- Nuxt Content\n- Tailwind CSS\n\n基本この三種類です。開発鯖はProxmoxのLXCで適当に立ててやりました。以前プロフサイトを作るときにVueを使ったので、少しだけとはいえ見慣れてるものを使おうってことでNuxtを触ってみました。\n\n最終的に作るものが静的サイトなのだから、このブログで使われてるHugoのような静的サイトジェネレータを使えばいいだろって話なんですが、自分で1から作ってみるのも楽しそうだったので…\n\n他に比べる対象がないのでなんともですが、Nuxtのドキュメントは割とわかりやすいなと感じました。JavaScriptやTypeScriptの知識ほぼ0の僕のような人でも一応形は作れたので。\n\n## 機能とか\nNuxt Contentは、Contentの名の通りMarkdownからページを生成してくれる優れものです。Nuxtのルーティング機能なんかを使ってあげれば、4行程度のTypeScriptのコードと.vueファイルの中身を少し書くだけで動くブログが作れます。\n\n```\n\u003Cscript setup>\nconst slug = useRoute().params.slug\nconst { data: post } = await useAsyncData(`content-${slug}`, () => {\n  return queryCollection('content').path(`/${slug}`).first()\n})\n\u003C/script>\n```\n\nMarkdownの内容を表示するページ本体のTSのコードです。マジでこれだけです。root/content内部の.md等のファイルを持ってきて、\n\n```\n{{ post.title }}\n{{ post.description }}\n{{ post.date }}\n\u003CContentRenderer :value=\"post\" />\n```\n\n一部configで設定が必要なものもありますが、こういうのを.vue内に記述してあげるだけでタイトルや本文なんかを表示してくれます。めっちゃ便利だけど、TSやJSの知識がマジでないせいで僕は理解にかなり時間がかかりました。\n\nタグやカテゴリ分けも頑張れば実装できるんですが、雑記帳に機能はいらんだろ…ってことで放置してます。 \n\n\u003Csmall>面倒なわけではない\u003C/small>\n\n## 見た目\nこのブログやプロフサイトに色味をめっちゃ寄せてます。僕自身ダークモードが好きなのと、目にやさしい感じで黒過ぎないのがお気に入りかな。\n\nUIとかの見た目作りはTailwind CSSでやりました。\n知り合いのお兄さんに猛烈なTailwindアンチがいたので今まで使っていなかったんですが、Tailwind便利すぎ！！もうTailwind信者になります。\n\nとにかく、この手の技術系のものってネットの情報量が正義だと思ってる節があります。Tailwindくんは流石人気なだけあって、少し調べれば大概のことは解決するしUIコンポーネントなんかも一杯転がってて助かりました。\n\nあとはTailwindくんのプラグインで導入できる`Prose`というクラスが文章載せるサイト作るときにすっごく便利。ヘッダーや本文なんかを自動で判別して見やすいように整えてくれます。Nuxt Contentなら記事部分はarticleタグで囲うことになるんですが、その場合は\n\n```\n\u003Carticle class=\"prose\">\n  \u003CContentRenderer :value=\"post\" />\n\u003C/article>\n```\n\nこれでOK。マジでこれだけで文字の大きさとかが自動で調節されます。便利すぎた。\n\n## 総括\n\n\u003Cstrong>難しかったこと\u003C/strong>\n\n- contentからページ表示させるのがマジでわからなくて詰まった\n- slugの仕様がNuxt2と3で結構変わっていて、めっちゃ詰まった\n- Tailwindの導入方法がこれまた結構変わっていた\n- post.dateの表示方法が一生わからんかった\n- Google PageSpeed Insightsのスコア上がらん\n\n\u003Cstrong>わかったこと\u003C/strong>\n- Nuxtちょっとわかるようになった\n- ドキュメントはちゃんと読もう\n- post.dateの表示方法はもうちょい分かりやすくしてくれていいと思う\n- 世のWeb開発者の皆様はすごい\n\nでは、機会があればまた次回👋",{"title":5,"description":35},"blog/nuxt_content/index",[54,57,60,206],"Web制作","5eYMNz70i4FoZSqL74YYB1pgnkfKB_v1ShKc-lZWN4c",{"/blog/music-history":209,"/blog/chichibu":237,"/blog/comment-feat":263,"/blog/stop-drunk":289,"/blog/build-pc":299,"/blog/cms-dev":313,"/blog/kansai_day3to4":327,"/blog/kansai_ryokou":353,"/blog/hiroshima":363,"/blog/chokaguya":369,"/blog/yamaokaya":379,"/blog/tonalite":385,"/blog/new_year_2026":395,"/blog/year_2025":401,"/blog/pixel10":411,"/blog/gpt-to-gemini":417,"/blog/za_log":423,"/blog/misskey-setting":429,"/blog/docker-on-lxc":443,"/blog/md_components":453,"/blog/nuxt_new_site":459,"/blog/simokita_moon":465,"/blog/mc_server":475,"/blog/aws_like_button":485,"/blog/sendai":491,"/blog/taityo":497,"/blog/add-share-button":503,"/blog/aws_summit":509,"/blog/drive_nikki":515,"/blog/2025-06-12":521,"/blog/cf_build":527,"/blog/ota_sanpo":537,"/blog/nuxt_content":543,"/blog/sushi":549,"/blog/misskey-docker":555,"/blog/server-make":561,"/blog/sanpo-log":571,"/blog/hugo-blog":581,"/blog/1":587},[210,216,221,227,232],{"title":211,"path":212,"date":213,"category":214,"coverImage":215},"秩父にレズアニメの看板探しに行ったぞ！","/blog/chichibu","2026-05-30","おでかけログ","https://images.bokukoha.dev/blog/chichibu/PXL_20260529_044435415.webp",{"title":217,"path":218,"date":219,"category":194,"coverImage":220},"Hugo + Stackテーマで楽に作る個人ブログ","/blog/hugo-blog","2025-02-20","https://images.bokukoha.dev/blog/hugo-blog/main.jpg",{"title":222,"path":223,"date":224,"category":225,"coverImage":226},"超かぐや姫！を見たぞ！～オタクの感想編～","/blog/chokaguya","2026-02-26","雑記","https://images.bokukoha.dev/blog/chokaguya/main.png",{"title":228,"path":229,"date":230,"category":225,"coverImage":231},"2025年楽しかったことまとめ","/blog/year_2025","2025-12-30","https://images.bokukoha.dev/blog/year_2025/main.jpg",{"title":233,"path":234,"date":235,"category":194,"coverImage":236},"ブログにコメント機能つけたぞ！（いらない）","/blog/comment-feat","2026-05-17","https://images.bokukoha.dev/blog/test/2026051117085800_s.webp",[238,243,248,253,258],{"title":239,"path":240,"date":241,"category":214,"coverImage":242},"ムーンアートナイト下北沢に行った日記","/blog/simokita_moon","2025-10-03","https://images.bokukoha.dev/blog/simokita_moon/main.jpg",{"title":244,"path":245,"date":246,"category":194,"coverImage":247},"ClaudePro契約してCMS作ったぞ！！！","/blog/cms-dev","2026-04-09","https://images.bokukoha.dev/blog/cms-dev/PXL_20260327_034729621.jpg",{"title":249,"path":250,"date":251,"category":225,"coverImage":252},"超久しぶりにPC自作したぞ！！の雑ログ","/blog/build-pc","2026-04-10","https://images.bokukoha.dev/blog/build-pc/1716.jpg",{"title":254,"path":255,"date":256,"category":214,"coverImage":257},"スタレのスシローコラボ行ってきた","/blog/sushi","2025-04-27","https://images.bokukoha.dev/blog/sushi/main.jpg",{"title":259,"path":260,"date":261,"category":214,"coverImage":262},"海ほたるにドライブ行ってきた","/blog/drive_nikki","2025-06-16","https://images.bokukoha.dev/blog/drive_nikki/main.jpg",[264,269,274,279,284],{"title":265,"path":266,"date":267,"category":194,"coverImage":268},"Hugo + StackのブログにAWSでいいねボタン実装した","/blog/aws_like_button","2025-09-21","https://images.bokukoha.dev/blog/aws_like_button/main.jpg",{"title":270,"path":271,"date":272,"category":194,"coverImage":273},"Nuxt Content3のコンポーネント呼び出し機能で遊んでみよう","/blog/md_components","2025-11-17","https://images.bokukoha.dev/blog/md_components/6.jpg",{"title":275,"path":276,"date":277,"category":225,"coverImage":278},"ワイヤレスイヤホンを買い替えたぞ！（Final TONALITE）","/blog/tonalite","2026-02-12","https://images.bokukoha.dev/blog/tonalite/main.jpg",{"title":280,"path":281,"date":282,"category":225,"coverImage":283},"おい、1カ月禁酒したのに何も効果ない件","/blog/stop-drunk","2026-04-19","https://images.bokukoha.dev/blog/stop-drunk/PXL_20260222_113942551.MACRO_FOCUS.MP.jpg",{"title":285,"path":286,"date":287,"category":225,"coverImage":288},"ブログ作った","/blog/1","2025-02-19","https://images.bokukoha.dev/blog/1/main.jpg",[290,291,292,293,294],{"title":233,"path":234,"date":235,"category":194,"coverImage":236},{"title":265,"path":266,"date":267,"category":194,"coverImage":268},{"title":249,"path":250,"date":251,"category":225,"coverImage":252},{"title":211,"path":212,"date":213,"category":214,"coverImage":215},{"title":295,"path":296,"date":297,"category":194,"coverImage":298},"Hugo + Stackのブログにシェアボタン実装した","/blog/add-share-button","2025-06-30","https://images.bokukoha.dev/blog/add-share-button/main.jpg",[300,301,306,307,312],{"title":244,"path":245,"date":246,"category":194,"coverImage":247},{"title":302,"path":303,"date":304,"category":225,"coverImage":305},"ポケモンZAクリアしたぞ！の感想","/blog/za_log","2025-12-01","https://images.bokukoha.dev/blog/za_log/main.jpg",{"title":285,"path":286,"date":287,"category":225,"coverImage":288},{"title":308,"path":309,"date":310,"category":225,"coverImage":311},"滑り込み1月まとめ！！","/blog/new_year_2026","2026-01-30","https://images.bokukoha.dev/blog/new_year_2026/main.jpg",{"title":222,"path":223,"date":224,"category":225,"coverImage":226},[314,315,316,321,322],{"title":249,"path":250,"date":251,"category":225,"coverImage":252},{"title":285,"path":286,"date":287,"category":225,"coverImage":288},{"title":317,"path":318,"date":319,"category":225,"coverImage":320},"個人サイトを0から作ったぞ！","/blog/nuxt_new_site","2025-11-13","https://images.bokukoha.dev/blog/nuxt_new_site/2.png",{"title":308,"path":309,"date":310,"category":225,"coverImage":311},{"title":323,"path":324,"date":325,"category":214,"coverImage":326},"突発で仙台旅行してきたぞ！日記","/blog/sendai","2025-09-17","https://images.bokukoha.dev/blog/sendai/main.jpg",[328,333,338,343,348],{"title":329,"path":330,"date":331,"category":214,"coverImage":332},"春休みラストの京都旅行してきたぞ！～関西1,2日目～","/blog/kansai_ryokou","2026-03-30","https://images.bokukoha.dev/blog/kansai_ryokou/main.jpg",{"title":334,"path":335,"date":336,"category":214,"coverImage":337},"ウルトラバカ散歩～山岡家を目指すぞ！編～","/blog/yamaokaya","2026-02-23","https://images.bokukoha.dev/blog/yamaokaya/main.jpg",{"title":339,"path":340,"date":341,"category":214,"coverImage":342},"初スカイメイト＆広島バカ散歩してきたぞ！","/blog/hiroshima","2026-03-15","https://images.bokukoha.dev/blog/hiroshima/main.jpg",{"title":344,"path":345,"date":346,"category":225,"coverImage":347},"オタクはバカ散歩をしろ！","/blog/ota_sanpo","2025-05-10","https://images.bokukoha.dev/blog/ota_sanpo/main.jpg",{"title":349,"path":350,"date":351,"category":214,"coverImage":352},"池袋から飯田橋まで散歩した","/blog/sanpo-log","2025-02-21","https://images.bokukoha.dev/blog/sanpo-log/main.jpg",[354,359,360,361,362],{"title":355,"path":356,"date":357,"category":214,"coverImage":358},"京都お花見バカ散歩＆名古屋メシ部～関西3,4日目～","/blog/kansai_day3to4","2026-03-31","https://images.bokukoha.dev/blog/kansai_day3to4/main.jpg",{"title":323,"path":324,"date":325,"category":214,"coverImage":326},{"title":259,"path":260,"date":261,"category":214,"coverImage":262},{"title":339,"path":340,"date":341,"category":214,"coverImage":342},{"title":254,"path":255,"date":256,"category":214,"coverImage":257},[364,365,366,367,368],{"title":344,"path":345,"date":346,"category":225,"coverImage":347},{"title":323,"path":324,"date":325,"category":214,"coverImage":326},{"title":329,"path":330,"date":331,"category":214,"coverImage":332},{"title":334,"path":335,"date":336,"category":214,"coverImage":337},{"title":355,"path":356,"date":357,"category":214,"coverImage":358},[370,371,372,373,374],{"title":302,"path":303,"date":304,"category":225,"coverImage":305},{"title":344,"path":345,"date":346,"category":225,"coverImage":347},{"title":334,"path":335,"date":336,"category":214,"coverImage":337},{"title":329,"path":330,"date":331,"category":214,"coverImage":332},{"title":375,"path":376,"date":377,"category":214,"coverImage":378},"無知オタク、AWS Summitに行く","/blog/aws_summit","2025-06-26","https://images.bokukoha.dev/blog/AWS_summit/main.jpg",[380,381,382,383,384],{"title":355,"path":356,"date":357,"category":214,"coverImage":358},{"title":344,"path":345,"date":346,"category":225,"coverImage":347},{"title":339,"path":340,"date":341,"category":214,"coverImage":342},{"title":222,"path":223,"date":224,"category":225,"coverImage":226},{"title":329,"path":330,"date":331,"category":214,"coverImage":332},[386,391,392,393,394],{"title":387,"path":388,"date":389,"category":225,"coverImage":390},"メインスマホをPixel10に乗り換えたぞ！","/blog/pixel10","2025-12-24","https://images.bokukoha.dev/blog/pixel10/main.jpg",{"title":233,"path":234,"date":235,"category":194,"coverImage":236},{"title":317,"path":318,"date":319,"category":225,"coverImage":320},{"title":339,"path":340,"date":341,"category":214,"coverImage":342},{"title":254,"path":255,"date":256,"category":214,"coverImage":257},[396,397,398,399,400],{"title":228,"path":229,"date":230,"category":225,"coverImage":231},{"title":244,"path":245,"date":246,"category":194,"coverImage":247},{"title":249,"path":250,"date":251,"category":225,"coverImage":252},{"title":387,"path":388,"date":389,"category":225,"coverImage":390},{"title":349,"path":350,"date":351,"category":214,"coverImage":352},[402,403,404,405,406],{"title":308,"path":309,"date":310,"category":225,"coverImage":311},{"title":285,"path":286,"date":287,"category":225,"coverImage":288},{"title":349,"path":350,"date":351,"category":214,"coverImage":352},{"title":317,"path":318,"date":319,"category":225,"coverImage":320},{"title":407,"path":408,"date":409,"category":194,"coverImage":410},"Proxmoxでコンテナ on コンテナして自鯖落とした話","/blog/docker-on-lxc","2025-11-21","https://images.bokukoha.dev/blog/docker-on-lxc/main.png",[412,413,414,415,416],{"title":275,"path":276,"date":277,"category":225,"coverImage":278},{"title":339,"path":340,"date":341,"category":214,"coverImage":342},{"title":317,"path":318,"date":319,"category":225,"coverImage":320},{"title":249,"path":250,"date":251,"category":225,"coverImage":252},{"title":233,"path":234,"date":235,"category":194,"coverImage":236},[418,419,420,421,422],{"title":349,"path":350,"date":351,"category":214,"coverImage":352},{"title":317,"path":318,"date":319,"category":225,"coverImage":320},{"title":323,"path":324,"date":325,"category":214,"coverImage":326},{"title":249,"path":250,"date":251,"category":225,"coverImage":252},{"title":329,"path":330,"date":331,"category":214,"coverImage":332},[424,425,426,427,428],{"title":222,"path":223,"date":224,"category":225,"coverImage":226},{"title":249,"path":250,"date":251,"category":225,"coverImage":252},{"title":244,"path":245,"date":246,"category":194,"coverImage":247},{"title":295,"path":296,"date":297,"category":194,"coverImage":298},{"title":211,"path":212,"date":213,"category":214,"coverImage":215},[430,435,440,441,442],{"title":431,"path":432,"date":433,"category":194,"coverImage":434},"HugoでのCloudflare Pagesのビルド失敗を回避する方法","/blog/cf_build","2025-05-11","https://images.bokukoha.dev/blog/cf_build/main.jpg",{"title":436,"path":437,"date":438,"category":194,"coverImage":439},"Cloudflare tunnelで作るMisskey自鯖","/blog/misskey-docker","2025-04-06","https://images.bokukoha.dev/blog/misskey-docker/main.jpg",{"title":254,"path":255,"date":256,"category":214,"coverImage":257},{"title":344,"path":345,"date":346,"category":225,"coverImage":347},{"title":295,"path":296,"date":297,"category":194,"coverImage":298},[444,445,446,451,452],{"title":436,"path":437,"date":438,"category":194,"coverImage":439},{"title":270,"path":271,"date":272,"category":194,"coverImage":273},{"title":447,"path":448,"date":449,"category":225,"coverImage":450},"労働体験して体調崩してた日記","/blog/taityo","2025-07-13","https://images.bokukoha.dev/blog/taityo/main.jpg",{"title":239,"path":240,"date":241,"category":214,"coverImage":242},{"title":217,"path":218,"date":219,"category":194,"coverImage":220},[454,455,456,457,458],{"title":233,"path":234,"date":235,"category":194,"coverImage":236},{"title":407,"path":408,"date":409,"category":194,"coverImage":410},{"title":5,"path":201,"date":196,"category":194,"coverImage":195},{"title":302,"path":303,"date":304,"category":225,"coverImage":305},{"title":239,"path":240,"date":241,"category":214,"coverImage":242},[460,461,462,463,464],{"title":285,"path":286,"date":287,"category":225,"coverImage":288},{"title":244,"path":245,"date":246,"category":194,"coverImage":247},{"title":217,"path":218,"date":219,"category":194,"coverImage":220},{"title":239,"path":240,"date":241,"category":214,"coverImage":242},{"title":339,"path":340,"date":341,"category":214,"coverImage":342},[466,467,468,469,474],{"title":211,"path":212,"date":213,"category":214,"coverImage":215},{"title":317,"path":318,"date":319,"category":225,"coverImage":320},{"title":285,"path":286,"date":287,"category":225,"coverImage":288},{"title":470,"path":471,"date":472,"category":214,"coverImage":473},"先週は色々あったよ日記","/blog/2025-06-12","2025-06-12","https://images.bokukoha.dev/blog/2025-06-12/main.jpg",{"title":259,"path":260,"date":261,"category":214,"coverImage":262},[476,481,482,483,484],{"title":477,"path":478,"date":479,"category":194,"coverImage":480},"3万円くらいで作る自宅サーバー","/blog/server-make","2025-02-22","https://images.bokukoha.dev/blog/server-make/main.jpg",{"title":436,"path":437,"date":438,"category":194,"coverImage":439},{"title":239,"path":240,"date":241,"category":214,"coverImage":242},{"title":317,"path":318,"date":319,"category":225,"coverImage":320},{"title":334,"path":335,"date":336,"category":214,"coverImage":337},[486,487,488,489,490],{"title":295,"path":296,"date":297,"category":194,"coverImage":298},{"title":233,"path":234,"date":235,"category":194,"coverImage":236},{"title":217,"path":218,"date":219,"category":194,"coverImage":220},{"title":285,"path":286,"date":287,"category":225,"coverImage":288},{"title":280,"path":281,"date":282,"category":225,"coverImage":283},[492,493,494,495,496],{"title":329,"path":330,"date":331,"category":214,"coverImage":332},{"title":339,"path":340,"date":341,"category":214,"coverImage":342},{"title":259,"path":260,"date":261,"category":214,"coverImage":262},{"title":447,"path":448,"date":449,"category":225,"coverImage":450},{"title":244,"path":245,"date":246,"category":194,"coverImage":247},[498,499,500,501,502],{"title":323,"path":324,"date":325,"category":214,"coverImage":326},{"title":239,"path":240,"date":241,"category":214,"coverImage":242},{"title":244,"path":245,"date":246,"category":194,"coverImage":247},{"title":407,"path":408,"date":409,"category":194,"coverImage":410},{"title":339,"path":340,"date":341,"category":214,"coverImage":342},[504,505,506,507,508],{"title":265,"path":266,"date":267,"category":194,"coverImage":268},{"title":217,"path":218,"date":219,"category":194,"coverImage":220},{"title":285,"path":286,"date":287,"category":225,"coverImage":288},{"title":233,"path":234,"date":235,"category":194,"coverImage":236},{"title":254,"path":255,"date":256,"category":214,"coverImage":257},[510,511,512,513,514],{"title":344,"path":345,"date":346,"category":225,"coverImage":347},{"title":222,"path":223,"date":224,"category":225,"coverImage":226},{"title":265,"path":266,"date":267,"category":194,"coverImage":268},{"title":239,"path":240,"date":241,"category":214,"coverImage":242},{"title":211,"path":212,"date":213,"category":214,"coverImage":215},[516,517,518,519,520],{"title":254,"path":255,"date":256,"category":214,"coverImage":257},{"title":329,"path":330,"date":331,"category":214,"coverImage":332},{"title":323,"path":324,"date":325,"category":214,"coverImage":326},{"title":470,"path":471,"date":472,"category":214,"coverImage":473},{"title":339,"path":340,"date":341,"category":214,"coverImage":342},[522,523,524,525,526],{"title":285,"path":286,"date":287,"category":225,"coverImage":288},{"title":259,"path":260,"date":261,"category":214,"coverImage":262},{"title":239,"path":240,"date":241,"category":214,"coverImage":242},{"title":323,"path":324,"date":325,"category":214,"coverImage":326},{"title":317,"path":318,"date":319,"category":225,"coverImage":320},[528,533,534,535,536],{"title":529,"path":530,"date":531,"category":194,"coverImage":532},"MisskeyのDBバックアップとオブジェクトストレージの設定方法","/blog/misskey-setting","2025-11-23","https://images.bokukoha.dev/blog/misskey-setting/main.jpg",{"title":436,"path":437,"date":438,"category":194,"coverImage":439},{"title":217,"path":218,"date":219,"category":194,"coverImage":220},{"title":295,"path":296,"date":297,"category":194,"coverImage":298},{"title":265,"path":266,"date":267,"category":194,"coverImage":268},[538,539,540,541,542],{"title":339,"path":340,"date":341,"category":214,"coverImage":342},{"title":334,"path":335,"date":336,"category":214,"coverImage":337},{"title":375,"path":376,"date":377,"category":214,"coverImage":378},{"title":222,"path":223,"date":224,"category":225,"coverImage":226},{"title":355,"path":356,"date":357,"category":214,"coverImage":358},[544,545,546,547,548],{"title":285,"path":286,"date":287,"category":225,"coverImage":288},{"title":317,"path":318,"date":319,"category":225,"coverImage":320},{"title":259,"path":260,"date":261,"category":214,"coverImage":262},{"title":244,"path":245,"date":246,"category":194,"coverImage":247},{"title":270,"path":271,"date":272,"category":194,"coverImage":273},[550,551,552,553,554],{"title":259,"path":260,"date":261,"category":214,"coverImage":262},{"title":329,"path":330,"date":331,"category":214,"coverImage":332},{"title":323,"path":324,"date":325,"category":214,"coverImage":326},{"title":339,"path":340,"date":341,"category":214,"coverImage":342},{"title":295,"path":296,"date":297,"category":194,"coverImage":298},[556,557,558,559,560],{"title":477,"path":478,"date":479,"category":194,"coverImage":480},{"title":217,"path":218,"date":219,"category":194,"coverImage":220},{"title":407,"path":408,"date":409,"category":194,"coverImage":410},{"title":529,"path":530,"date":531,"category":194,"coverImage":532},{"title":431,"path":432,"date":433,"category":194,"coverImage":434},[562,567,568,569,570],{"title":563,"path":564,"date":565,"category":194,"coverImage":566},"自宅で動かすMinecraftサーバー","/blog/mc_server","2025-09-30","https://images.bokukoha.dev/blog/mc_server/main.jpg",{"title":436,"path":437,"date":438,"category":194,"coverImage":439},{"title":217,"path":218,"date":219,"category":194,"coverImage":220},{"title":249,"path":250,"date":251,"category":225,"coverImage":252},{"title":317,"path":318,"date":319,"category":225,"coverImage":320},[572,573,578,579,580],{"title":339,"path":340,"date":341,"category":214,"coverImage":342},{"title":574,"path":575,"date":576,"category":225,"coverImage":577},"chatGPTからGeminiに完全移行した","/blog/gpt-to-gemini","2025-12-03","https://images.bokukoha.dev/blog/gpt-to-gemini/main.png",{"title":344,"path":345,"date":346,"category":225,"coverImage":347},{"title":317,"path":318,"date":319,"category":225,"coverImage":320},{"title":355,"path":356,"date":357,"category":214,"coverImage":358},[582,583,584,585,586],{"title":295,"path":296,"date":297,"category":194,"coverImage":298},{"title":265,"path":266,"date":267,"category":194,"coverImage":268},{"title":285,"path":286,"date":287,"category":225,"coverImage":288},{"title":317,"path":318,"date":319,"category":225,"coverImage":320},{"title":436,"path":437,"date":438,"category":194,"coverImage":439},[588,589,590,591,592],{"title":5,"path":201,"date":196,"category":194,"coverImage":195},{"title":317,"path":318,"date":319,"category":225,"coverImage":320},{"title":244,"path":245,"date":246,"category":194,"coverImage":247},{"title":217,"path":218,"date":219,"category":194,"coverImage":220},{"title":470,"path":471,"date":472,"category":214,"coverImage":473},[594,596],{"title":344,"path":345,"stem":595,"children":-1},"blog/ota_sanpo/index",{"title":254,"path":255,"stem":597,"children":-1},"blog/sushi/index",1782435686273]