[{"data":1,"prerenderedAt":15208},["ShallowReactive",2],{"content-/nuxt-hybrid-content-architecture":3,"all-pages-for-dir":15185,"related-/nuxt-hybrid-content-architecture":15186,"og-image-/nuxt-hybrid-content-architecture":15207},{"id":4,"title":5,"body":6,"category":15172,"concepts":15172,"description":15173,"extension":15174,"meta":15175,"navigation":444,"ogImage":15172,"path":15176,"project_name":15172,"published":15177,"publishedAt":15178,"seo":15179,"source":15172,"stem":15180,"tags":15181,"todo":15172,"unpublished":15177,"updatedAt":15178,"__hash__":15184},"pages/2025-11/2025-11-29/nuxt-hybrid-content-architecture.md","Nuxt Content + Pages ハイブリッドアーキテクチャ：プロジェクト要件定義書",{"type":7,"value":8,"toc":15112},"minimark",[9,13,17,70,73,75,79,83,121,124,129,140,145,166,168,170,174,181,185,191,194,249,251,255,264,268,274,278,288,627,632,658,660,663,666,673,977,984,1283,1288,1411,1415,1688,1693,1812,1815,1818,1824,1829,1867,1875,2061,2069,2375,2377,2380,2383,2386,2467,2470,2539,2543,2550,2556,2561,2566,2579,2583,2596,2600,2603,2683,2686,3151,3153,3156,3159,3274,3278,3282,3288,3446,3455,3459,3465,3852,3859,3862,3866,4137,4141,4236,4279,4281,4283,4290,4293,4299,4302,4430,4433,4439,4442,4446,4451,4471,4476,4489,4494,4508,4512,4517,4536,4541,4554,4558,4563,4581,4586,4594,4598,4603,4623,4628,4639,4642,4646,4657,4661,4672,4676,4687,4691,4702,4705,4709,4717,4721,4732,4736,4750,4752,4754,4761,4764,4827,4831,4992,4996,5078,5082,5189,5193,5275,5279,5284,6887,6892,7149,7154,7890,7894,7900,8969,8975,11189,11193,11200,12495,12499,12505,12672,12679,13373,13377,13418,13422,13428,13459,13462,13510,13512,13514,13518,13523,13526,13546,13551,13565,13568,13572,13577,13591,13596,13604,13608,13612,13623,13627,13635,13637,13641,13645,13777,13781,13786,13952,13956,14010,14014,14021,14027,14030,14033,14036,14067,14069,14072,14075,14079,14113,14117,14154,14157,14171,14175,14180,14553,14569,14573,14621,14623,14626,14630,14636,14641,14669,14673,14678,14698,14703,14706,14710,14715,14723,14725,14729,14735,14738,14742,14809,14813,14899,14903,14909,14973,14975,14978,14981,15046,15049,15055,15058,15102,15104,15109],[10,11,5],"h1",{"id":12},"nuxt-content-pages-ハイブリッドアーキテクチャプロジェクト要件定義書",[14,15,16],"h2",{"id":16},"目次",[18,19,20,28,34,40,46,52,58,64],"ol",{},[21,22,23],"li",{},[24,25,27],"a",{"href":26},"#%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%A6%82%E8%A6%81","プロジェクト概要",[21,29,30],{},[24,31,33],{"href":32},"#%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3%E3%81%AE%E6%A0%B8%E5%BF%83%E6%A6%82%E5%BF%B5","アーキテクチャの核心概念",[21,35,36],{},[24,37,39],{"href":38},"#nuxt-content--sqlite-%E3%81%AE%E4%BB%95%E6%A7%98","Nuxt Content + SQLite の仕様",[21,41,42],{},[24,43,45],{"href":44},"#nuxt-pages-%E3%81%AE%E8%87%AA%E5%8B%95%E3%83%AB%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E4%BB%95%E6%A7%98","Nuxt Pages の自動ルーティング仕様",[21,47,48],{},[24,49,51],{"href":50},"#%E3%83%8F%E3%82%A4%E3%83%96%E3%83%AA%E3%83%83%E3%83%89%E6%88%A6%E7%95%A5%E4%BD%BF%E3%81%84%E5%88%86%E3%81%91%E3%81%AE%E3%83%99%E3%82%B9%E3%83%88%E3%83%97%E3%83%A9%E3%82%AF%E3%83%86%E3%82%A3%E3%82%B9","ハイブリッド戦略：使い分けのベストプラクティス",[21,53,54],{},[24,55,57],{"href":56},"#%E6%96%B0%E8%A6%8F%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E8%A6%81%E4%BB%B6%E5%AE%9A%E7%BE%A9","新規プロジェクト要件定義",[21,59,60],{},[24,61,63],{"href":62},"#%E7%92%B0%E5%A2%83%E6%A7%8B%E7%AF%89%E6%89%8B%E9%A0%86","環境構築手順",[21,65,66],{},[24,67,69],{"href":68},"#%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4%E3%83%A1%E3%83%B3%E3%83%88%E6%88%A6%E7%95%A5","デプロイメント戦略",[71,72],"hr",{},[14,74,27],{"id":27},[76,77,78],"h3",{"id":78},"このアーキテクチャが解決する課題",[80,81,82],"p",{},"従来のWebサイト構築では以下の選択を迫られていました：",[84,85,86,104],"ul",{},[21,87,88,92,93],{},[89,90,91],"strong",{},"静的サイトジェネレーター","（Hugo, Jekyll等）",[84,94,95,98,101],{},[21,96,97],{},"✅ シンプルなMarkdown記事管理",[21,99,100],{},"❌ インタラクティブなコンテンツが困難",[21,102,103],{},"❌ 複雑なUIコンポーネントの実装に限界",[21,105,106,109,110],{},[89,107,108],{},"フルスタックフレームワーク","（Next.js, Nuxt等）",[84,111,112,115,118],{},[21,113,114],{},"✅ リッチなインタラクティブコンテンツ",[21,116,117],{},"❌ 全てのページをVueコンポーネント化する必要がある",[21,119,120],{},"❌ シンプルな記事でもコード量が増える",[76,122,123],{"id":123},"本プロジェクトのアプローチ",[80,125,126],{},[89,127,128],{},"Nuxt Content（Markdown + SQLite）とNuxt Pages（Vue）の長所を組み合わせる",[130,131,136],"pre",{"className":132,"code":134,"language":135},[133],"language-text","📁 プロジェクト構成\n├── apps/web/content/        ← Markdown記事（自動的にSQLiteへ）\n│   ├── 2025-11-29/\n│   │   └── article.md\n│   └── features/\n│       └── guide.md\n│\n└── apps/web/app/pages/      ← Vueコンポーネント（インタラクティブ）\n    ├── blog/\n    │   └── interactive-demo.vue\n    └── excel-viewer.vue\n","text",[137,138,134],"code",{"__ignoreMap":139},"",[80,141,142],{},[89,143,144],{},"使い分けの原則：",[84,146,147,157],{},[21,148,149,152,153,156],{},[89,150,151],{},"シンプルな記事"," → ",[137,154,155],{},"content/"," にMarkdownで書く",[21,158,159,152,162,165],{},[89,160,161],{},"インタラクティブなコンテンツ",[137,163,164],{},"pages/"," にVueで書く",[71,167],{},[14,169,33],{"id":33},[76,171,173],{"id":172},"_1-nuxt-content-sqlite-による自動コンテンツ管理","1. Nuxt Content + SQLite による自動コンテンツ管理",[80,175,176,177,180],{},"Nuxt Content v3は、Markdownファイルを",[89,178,179],{},"自動的にSQLiteデータベースに変換","します。",[182,183,184],"h4",{"id":184},"データフロー",[130,186,189],{"className":187,"code":188,"language":135},[133],"┌────────────────────────────────────────────────────────────────┐\n│ 1. コンテンツ作成                                                │\n│    apps/web/content/2025-11-29/article.md                      │\n│    ---                                                         │\n│    title: 記事タイトル                                           │\n│    publishedAt: 2025-11-29                                     │\n│    tags: [nuxt, vue]                                           │\n│    ---                                                         │\n│    # 記事内容                                                    │\n└──────────────┬─────────────────────────────────────────────────┘\n               │\n               ↓ ① ファイル監視（開発時: Vite/Chokidar）\n               │\n┌──────────────┴─────────────────────────────────────────────────┐\n│ 2. @nuxt/content ビルドプラグイン                                │\n│    - フロントマター解析（YAML → オブジェクト）                     │\n│    - Markdown → AST変換（remark/rehype）                        │\n│    - content.config.ts のスキーマで検証                          │\n└──────────────┬─────────────────────────────────────────────────┘\n               │\n               ↓ ② AST を JSON に変換\n               │\n┌──────────────┴─────────────────────────────────────────────────┐\n│ 3. SQLite データベースへ自動保存                                  │\n│    .data/content/contents.sqlite                               │\n│                                                                │\n│    CREATE TABLE _content_pages (                               │\n│      id TEXT PRIMARY KEY,                                      │\n│      title VARCHAR,                                            │\n│      body TEXT,           -- AST (minimark 形式)               │\n│      publishedAt DATE,                                         │\n│      tags TEXT,           -- JSON 配列                         │\n│      path VARCHAR,                                             │\n│      __hash__ TEXT        -- 整合性チェック用                    │\n│    );                                                          │\n│                                                                │\n│    INSERT INTO _content_pages VALUES (...);                    │\n└──────────────┬─────────────────────────────────────────────────┘\n               │\n               ↓ ③ クエリAPI経由で取得\n               │\n┌──────────────┴─────────────────────────────────────────────────┐\n│ 4. ページでのコンテンツ取得                                        │\n│    const doc = await queryCollection(\"pages\")                 │\n│                       .path(\"/2025-11-29/article\")             │\n│                       .first()                                 │\n│                                                                │\n│    → SELECT * FROM _content_pages WHERE path = '/...' LIMIT 1 │\n└────────────────────────────────────────────────────────────────┘\n",[137,190,188],{"__ignoreMap":139},[182,192,193],{"id":193},"重要なポイント",[18,195,196,213,229],{},[21,197,198,201],{},[89,199,200],{},"手動でSQLを書く必要は一切ない",[84,202,203,206],{},[21,204,205],{},"Markdownファイルを保存するだけでSQLiteへ自動変換",[21,207,208,209,212],{},"スキーマは ",[137,210,211],{},"content.config.ts"," で定義",[21,214,215,218],{},[89,216,217],{},"開発時はリアルタイム更新",[84,219,220,223],{},[21,221,222],{},"ファイル保存 → SQLite更新 → ブラウザHMR",[21,224,225,228],{},[137,226,227],{},".data/content/contents.sqlite"," が常に最新状態",[21,230,231,234],{},[89,232,233],{},"本番環境では静的ダンプとして配信",[84,235,236,243,246],{},[21,237,238,239,242],{},"ビルド時: ",[137,240,241],{},"database.compressed.mjs"," を生成",[21,244,245],{},"ランタイム: SQLiteファイルではなくJavaScriptとして配信",[21,247,248],{},"エッジ環境（Cloudflare Workers等）でも動作",[71,250],{},[76,252,254],{"id":253},"_2-nuxt-pages-の自動ルーティング","2. Nuxt Pages の自動ルーティング",[80,256,257,258,260,261,180],{},"Nuxtは ",[137,259,164],{}," ディレクトリ内のファイル構造を",[89,262,263],{},"自動的にルートに変換",[182,265,267],{"id":266},"ファイル-ルートのマッピング","ファイル → ルートのマッピング",[130,269,272],{"className":270,"code":271,"language":135},[133],"apps/web/app/pages/\n├── index.vue                    → /\n├── about.vue                    → /about\n├── blog/\n│   ├── index.vue                → /blog\n│   └── interactive-demo.vue     → /blog/interactive-demo\n├── excel-viewer.vue             → /excel-viewer\n└── [...slug].vue                → /任意のパス（catch-all）\n",[137,273,271],{"__ignoreMap":139},[182,275,277],{"id":276},"catch-allルートの役割","Catch-allルートの役割",[80,279,280,283,284,287],{},[137,281,282],{},"[...slug].vue"," は",[89,285,286],{},"Nuxt Contentと連携","するための特別なルートです：",[130,289,293],{"className":290,"code":291,"language":292,"meta":139,"style":139},"language-vue shiki shiki-themes vitesse-light vitesse-light","\u003C!-- apps/web/app/pages/[...slug].vue -->\n\u003Cscript setup lang=\"ts\">\n// URLパスに基づいてコンテンツを取得\nconst route = useRoute()\nconst docPath = computed(() => `/${route.params.slug?.join('/') || ''}`)\n\nconst { data: doc } = await useAsyncData(\n  `content-${docPath.value}`,\n  () => queryCollection(\"pages\")\n       .path(docPath.value)\n       .first()\n)\n\u003C/script>\n\n\u003Ctemplate>\n  \u003CContentRenderer v-if=\"doc\" :value=\"doc\" />\n\u003C/template>\n","vue",[137,294,295,304,338,344,364,439,446,477,502,524,543,553,558,568,573,583,618],{"__ignoreMap":139},[296,297,300],"span",{"class":298,"line":299},"line",1,[296,301,303],{"class":302},"sxvE3","\u003C!-- apps/web/app/pages/[...slug].vue -->\n",[296,305,307,311,315,319,322,325,329,333,335],{"class":298,"line":306},2,[296,308,310],{"class":309},"shFtX","\u003C",[296,312,314],{"class":313},"sHkkW","script",[296,316,318],{"class":317},"s4oTP"," setup",[296,320,321],{"class":317}," lang",[296,323,324],{"class":309},"=",[296,326,328],{"class":327},"sMJiu","\"",[296,330,332],{"class":331},"sdGka","ts",[296,334,328],{"class":327},[296,336,337],{"class":309},">\n",[296,339,341],{"class":298,"line":340},3,[296,342,343],{"class":302},"// URLパスに基づいてコンテンツを取得\n",[296,345,347,351,354,357,361],{"class":298,"line":346},4,[296,348,350],{"class":349},"stQ0i","const ",[296,352,353],{"class":317},"route",[296,355,356],{"class":309}," =",[296,358,360],{"class":359},"senZ8"," useRoute",[296,362,363],{"class":309},"()\n",[296,365,367,369,372,374,377,380,383,386,389,392,394,397,400,402,405,408,411,414,417,419,421,424,427,430,433,436],{"class":298,"line":366},5,[296,368,350],{"class":349},[296,370,371],{"class":317},"docPath",[296,373,356],{"class":309},[296,375,376],{"class":359}," computed",[296,378,379],{"class":309},"(()",[296,381,382],{"class":309}," =>",[296,384,385],{"class":327}," `",[296,387,388],{"class":331},"/",[296,390,391],{"class":313},"${",[296,393,353],{"class":331},[296,395,396],{"class":309},".",[296,398,399],{"class":331},"params",[296,401,396],{"class":309},[296,403,404],{"class":331},"slug",[296,406,407],{"class":309},"?.",[296,409,410],{"class":359},"join",[296,412,413],{"class":309},"(",[296,415,416],{"class":327},"'",[296,418,388],{"class":331},[296,420,416],{"class":327},[296,422,423],{"class":309},")",[296,425,426],{"class":349}," ||",[296,428,429],{"class":327}," ''",[296,431,432],{"class":313},"}",[296,434,435],{"class":327},"`",[296,437,438],{"class":309},")\n",[296,440,442],{"class":298,"line":441},6,[296,443,445],{"emptyLinePlaceholder":444},true,"\n",[296,447,449,451,454,457,460,463,466,468,471,474],{"class":298,"line":448},7,[296,450,350],{"class":349},[296,452,453],{"class":309},"{",[296,455,456],{"class":317}," data",[296,458,459],{"class":309},":",[296,461,462],{"class":317}," doc",[296,464,465],{"class":309}," }",[296,467,356],{"class":309},[296,469,470],{"class":313}," await",[296,472,473],{"class":359}," useAsyncData",[296,475,476],{"class":309},"(\n",[296,478,480,483,486,488,490,492,495,497,499],{"class":298,"line":479},8,[296,481,482],{"class":327},"  `",[296,484,485],{"class":331},"content-",[296,487,391],{"class":313},[296,489,371],{"class":331},[296,491,396],{"class":309},[296,493,494],{"class":331},"value",[296,496,432],{"class":313},[296,498,435],{"class":327},[296,500,501],{"class":309},",\n",[296,503,505,508,510,513,515,517,520,522],{"class":298,"line":504},9,[296,506,507],{"class":309},"  ()",[296,509,382],{"class":309},[296,511,512],{"class":359}," queryCollection",[296,514,413],{"class":309},[296,516,328],{"class":327},[296,518,519],{"class":331},"pages",[296,521,328],{"class":327},[296,523,438],{"class":309},[296,525,527,530,533,535,537,539,541],{"class":298,"line":526},10,[296,528,529],{"class":309},"       .",[296,531,532],{"class":359},"path",[296,534,413],{"class":309},[296,536,371],{"class":317},[296,538,396],{"class":309},[296,540,494],{"class":317},[296,542,438],{"class":309},[296,544,546,548,551],{"class":298,"line":545},11,[296,547,529],{"class":309},[296,549,550],{"class":359},"first",[296,552,363],{"class":309},[296,554,556],{"class":298,"line":555},12,[296,557,438],{"class":309},[296,559,561,564,566],{"class":298,"line":560},13,[296,562,563],{"class":309},"\u003C/",[296,565,314],{"class":313},[296,567,337],{"class":309},[296,569,571],{"class":298,"line":570},14,[296,572,445],{"emptyLinePlaceholder":444},[296,574,576,578,581],{"class":298,"line":575},15,[296,577,310],{"class":309},[296,579,580],{"class":313},"template",[296,582,337],{"class":309},[296,584,586,589,592,595,597,599,602,604,607,609,611,613,615],{"class":298,"line":585},16,[296,587,588],{"class":309},"  \u003C",[296,590,591],{"class":313},"ContentRenderer",[296,593,594],{"class":317}," v-if",[296,596,324],{"class":309},[296,598,328],{"class":327},[296,600,601],{"class":331},"doc",[296,603,328],{"class":327},[296,605,606],{"class":317}," :value",[296,608,324],{"class":309},[296,610,328],{"class":327},[296,612,601],{"class":331},[296,614,328],{"class":327},[296,616,617],{"class":309}," />\n",[296,619,621,623,625],{"class":298,"line":620},17,[296,622,563],{"class":309},[296,624,580],{"class":313},[296,626,337],{"class":309},[80,628,629],{},[89,630,631],{},"動作例：",[84,633,634,640,645,652],{},[21,635,636,639],{},[137,637,638],{},"/2025-11-29/article"," にアクセス\n↓",[21,641,642,644],{},[137,643,282],{}," がキャッチ\n↓",[21,646,647,648,651],{},"SQLiteから ",[137,649,650],{},"path = '/2025-11-29/article'"," のコンテンツを取得\n↓",[21,653,654,657],{},[137,655,656],{},"\u003CContentRenderer>"," でレンダリング",[71,659],{},[14,661,39],{"id":662},"nuxt-content-sqlite-の仕様",[76,664,665],{"id":665},"設定ファイル",[182,667,669,670],{"id":668},"_1-nuxtconfigts","1. ",[137,671,672],{},"nuxt.config.ts",[130,674,678],{"className":675,"code":676,"language":677,"meta":139,"style":139},"language-typescript shiki shiki-themes vitesse-light vitesse-light","export default defineNuxtConfig({\n  modules: [\"@nuxt/content\"],\n\n  content: {\n    documentDriven: true,  // 自動的にドキュメントベースのルーティング\n\n    database: {\n      type: \"sqlite\"       // SQLiteバックエンドを使用\n    },\n\n    experimental: {\n      sqliteConnector: \"native\"  // Node.js 22.5+ のネイティブSQLite\n    },\n\n    markdown: {\n      mdc: true,           // Markdown Components を有効化\n      remarkPlugins: {\n        \"remark-gfm\": {},  // GitHub Flavored Markdown\n        \"remark-math\": {}  // 数式サポート\n      }\n    },\n\n    sources: {\n      content: {\n        driver: \"fs\",\n        base: resolve(__dirname, \"content\")  // コンテンツのベースディレクトリ\n      }\n    }\n  }\n})\n","typescript",[137,679,680,694,713,717,725,742,746,753,770,775,779,786,803,807,811,818,833,840,857,873,879,884,889,897,905,922,954,959,965,971],{"__ignoreMap":139},[296,681,682,685,688,691],{"class":298,"line":299},[296,683,684],{"class":313},"export",[296,686,687],{"class":313}," default",[296,689,690],{"class":359}," defineNuxtConfig",[296,692,693],{"class":309},"({\n",[296,695,696,700,703,705,708,710],{"class":298,"line":306},[296,697,699],{"class":698},"sz8Xr","  modules",[296,701,702],{"class":309},": [",[296,704,328],{"class":327},[296,706,707],{"class":331},"@nuxt/content",[296,709,328],{"class":327},[296,711,712],{"class":309},"],\n",[296,714,715],{"class":298,"line":340},[296,716,445],{"emptyLinePlaceholder":444},[296,718,719,722],{"class":298,"line":346},[296,720,721],{"class":698},"  content",[296,723,724],{"class":309},": {\n",[296,726,727,730,733,736,739],{"class":298,"line":366},[296,728,729],{"class":698},"    documentDriven",[296,731,732],{"class":309},": ",[296,734,735],{"class":313},"true",[296,737,738],{"class":309},",  ",[296,740,741],{"class":302},"// 自動的にドキュメントベースのルーティング\n",[296,743,744],{"class":298,"line":441},[296,745,445],{"emptyLinePlaceholder":444},[296,747,748,751],{"class":298,"line":448},[296,749,750],{"class":698},"    database",[296,752,724],{"class":309},[296,754,755,758,760,762,765,767],{"class":298,"line":479},[296,756,757],{"class":698},"      type",[296,759,732],{"class":309},[296,761,328],{"class":327},[296,763,764],{"class":331},"sqlite",[296,766,328],{"class":327},[296,768,769],{"class":302},"       // SQLiteバックエンドを使用\n",[296,771,772],{"class":298,"line":504},[296,773,774],{"class":309},"    },\n",[296,776,777],{"class":298,"line":526},[296,778,445],{"emptyLinePlaceholder":444},[296,780,781,784],{"class":298,"line":545},[296,782,783],{"class":698},"    experimental",[296,785,724],{"class":309},[296,787,788,791,793,795,798,800],{"class":298,"line":555},[296,789,790],{"class":698},"      sqliteConnector",[296,792,732],{"class":309},[296,794,328],{"class":327},[296,796,797],{"class":331},"native",[296,799,328],{"class":327},[296,801,802],{"class":302},"  // Node.js 22.5+ のネイティブSQLite\n",[296,804,805],{"class":298,"line":560},[296,806,774],{"class":309},[296,808,809],{"class":298,"line":570},[296,810,445],{"emptyLinePlaceholder":444},[296,812,813,816],{"class":298,"line":575},[296,814,815],{"class":698},"    markdown",[296,817,724],{"class":309},[296,819,820,823,825,827,830],{"class":298,"line":585},[296,821,822],{"class":698},"      mdc",[296,824,732],{"class":309},[296,826,735],{"class":313},[296,828,829],{"class":309},",           ",[296,831,832],{"class":302},"// Markdown Components を有効化\n",[296,834,835,838],{"class":298,"line":620},[296,836,837],{"class":698},"      remarkPlugins",[296,839,724],{"class":309},[296,841,843,846,849,851,854],{"class":298,"line":842},18,[296,844,845],{"class":327},"        \"",[296,847,848],{"class":331},"remark-gfm",[296,850,328],{"class":327},[296,852,853],{"class":309},": {},  ",[296,855,856],{"class":302},"// GitHub Flavored Markdown\n",[296,858,860,862,865,867,870],{"class":298,"line":859},19,[296,861,845],{"class":327},[296,863,864],{"class":331},"remark-math",[296,866,328],{"class":327},[296,868,869],{"class":309},": {}  ",[296,871,872],{"class":302},"// 数式サポート\n",[296,874,876],{"class":298,"line":875},20,[296,877,878],{"class":309},"      }\n",[296,880,882],{"class":298,"line":881},21,[296,883,774],{"class":309},[296,885,887],{"class":298,"line":886},22,[296,888,445],{"emptyLinePlaceholder":444},[296,890,892,895],{"class":298,"line":891},23,[296,893,894],{"class":698},"    sources",[296,896,724],{"class":309},[296,898,900,903],{"class":298,"line":899},24,[296,901,902],{"class":698},"      content",[296,904,724],{"class":309},[296,906,908,911,913,915,918,920],{"class":298,"line":907},25,[296,909,910],{"class":698},"        driver",[296,912,732],{"class":309},[296,914,328],{"class":327},[296,916,917],{"class":331},"fs",[296,919,328],{"class":327},[296,921,501],{"class":309},[296,923,925,928,930,933,935,938,941,943,946,948,951],{"class":298,"line":924},26,[296,926,927],{"class":698},"        base",[296,929,732],{"class":309},[296,931,932],{"class":359},"resolve",[296,934,413],{"class":309},[296,936,937],{"class":317},"__dirname",[296,939,940],{"class":309},", ",[296,942,328],{"class":327},[296,944,945],{"class":331},"content",[296,947,328],{"class":327},[296,949,950],{"class":309},")  ",[296,952,953],{"class":302},"// コンテンツのベースディレクトリ\n",[296,955,957],{"class":298,"line":956},27,[296,958,878],{"class":309},[296,960,962],{"class":298,"line":961},28,[296,963,964],{"class":309},"    }\n",[296,966,968],{"class":298,"line":967},29,[296,969,970],{"class":309},"  }\n",[296,972,974],{"class":298,"line":973},30,[296,975,976],{"class":309},"})\n",[182,978,980,981,983],{"id":979},"_2-contentconfigtsスキーマ定義","2. ",[137,982,211],{},"（スキーマ定義）",[130,985,987],{"className":675,"code":986,"language":677,"meta":139,"style":139},"import { defineCollection, defineContentConfig } from \"@nuxt/content\"\nimport { z } from \"zod\"\n\nexport default defineContentConfig({\n  collections: {\n    pages: defineCollection({\n      type: \"page\",\n      source: \"**/*.{md,mdx,mdc}\",  // 対象ファイル\n      schema: z.object({\n        title: z.string().optional(),\n        description: z.string().optional(),\n        path: z.string().optional(),\n        tags: z.array(z.string()).optional(),\n        publishedAt: z.coerce.date().optional(),  // 文字列→日付に自動変換\n        updatedAt: z.coerce.date().optional()\n      })\n    })\n  }\n})\n",[137,988,989,1019,1039,1043,1053,1060,1072,1087,1106,1123,1146,1165,1184,1213,1242,1265,1270,1275,1279],{"__ignoreMap":139},[296,990,991,994,997,1000,1003,1006,1008,1011,1014,1016],{"class":298,"line":299},[296,992,993],{"class":313},"import",[296,995,996],{"class":309}," {",[296,998,999],{"class":317}," defineCollection",[296,1001,1002],{"class":309},",",[296,1004,1005],{"class":317}," defineContentConfig",[296,1007,465],{"class":309},[296,1009,1010],{"class":313}," from",[296,1012,1013],{"class":327}," \"",[296,1015,707],{"class":331},[296,1017,1018],{"class":327},"\"\n",[296,1020,1021,1023,1025,1028,1030,1032,1034,1037],{"class":298,"line":306},[296,1022,993],{"class":313},[296,1024,996],{"class":309},[296,1026,1027],{"class":317}," z",[296,1029,465],{"class":309},[296,1031,1010],{"class":313},[296,1033,1013],{"class":327},[296,1035,1036],{"class":331},"zod",[296,1038,1018],{"class":327},[296,1040,1041],{"class":298,"line":340},[296,1042,445],{"emptyLinePlaceholder":444},[296,1044,1045,1047,1049,1051],{"class":298,"line":346},[296,1046,684],{"class":313},[296,1048,687],{"class":313},[296,1050,1005],{"class":359},[296,1052,693],{"class":309},[296,1054,1055,1058],{"class":298,"line":366},[296,1056,1057],{"class":698},"  collections",[296,1059,724],{"class":309},[296,1061,1062,1065,1067,1070],{"class":298,"line":441},[296,1063,1064],{"class":698},"    pages",[296,1066,732],{"class":309},[296,1068,1069],{"class":359},"defineCollection",[296,1071,693],{"class":309},[296,1073,1074,1076,1078,1080,1083,1085],{"class":298,"line":448},[296,1075,757],{"class":698},[296,1077,732],{"class":309},[296,1079,328],{"class":327},[296,1081,1082],{"class":331},"page",[296,1084,328],{"class":327},[296,1086,501],{"class":309},[296,1088,1089,1092,1094,1096,1099,1101,1103],{"class":298,"line":479},[296,1090,1091],{"class":698},"      source",[296,1093,732],{"class":309},[296,1095,328],{"class":327},[296,1097,1098],{"class":331},"**/*.{md,mdx,mdc}",[296,1100,328],{"class":327},[296,1102,738],{"class":309},[296,1104,1105],{"class":302},"// 対象ファイル\n",[296,1107,1108,1111,1113,1116,1118,1121],{"class":298,"line":504},[296,1109,1110],{"class":698},"      schema",[296,1112,732],{"class":309},[296,1114,1115],{"class":317},"z",[296,1117,396],{"class":309},[296,1119,1120],{"class":359},"object",[296,1122,693],{"class":309},[296,1124,1125,1128,1130,1132,1134,1137,1140,1143],{"class":298,"line":526},[296,1126,1127],{"class":698},"        title",[296,1129,732],{"class":309},[296,1131,1115],{"class":317},[296,1133,396],{"class":309},[296,1135,1136],{"class":359},"string",[296,1138,1139],{"class":309},"().",[296,1141,1142],{"class":359},"optional",[296,1144,1145],{"class":309},"(),\n",[296,1147,1148,1151,1153,1155,1157,1159,1161,1163],{"class":298,"line":545},[296,1149,1150],{"class":698},"        description",[296,1152,732],{"class":309},[296,1154,1115],{"class":317},[296,1156,396],{"class":309},[296,1158,1136],{"class":359},[296,1160,1139],{"class":309},[296,1162,1142],{"class":359},[296,1164,1145],{"class":309},[296,1166,1167,1170,1172,1174,1176,1178,1180,1182],{"class":298,"line":555},[296,1168,1169],{"class":698},"        path",[296,1171,732],{"class":309},[296,1173,1115],{"class":317},[296,1175,396],{"class":309},[296,1177,1136],{"class":359},[296,1179,1139],{"class":309},[296,1181,1142],{"class":359},[296,1183,1145],{"class":309},[296,1185,1186,1189,1191,1193,1195,1198,1200,1202,1204,1206,1209,1211],{"class":298,"line":560},[296,1187,1188],{"class":698},"        tags",[296,1190,732],{"class":309},[296,1192,1115],{"class":317},[296,1194,396],{"class":309},[296,1196,1197],{"class":359},"array",[296,1199,413],{"class":309},[296,1201,1115],{"class":317},[296,1203,396],{"class":309},[296,1205,1136],{"class":359},[296,1207,1208],{"class":309},"()).",[296,1210,1142],{"class":359},[296,1212,1145],{"class":309},[296,1214,1215,1218,1220,1222,1224,1227,1229,1232,1234,1236,1239],{"class":298,"line":570},[296,1216,1217],{"class":698},"        publishedAt",[296,1219,732],{"class":309},[296,1221,1115],{"class":317},[296,1223,396],{"class":309},[296,1225,1226],{"class":317},"coerce",[296,1228,396],{"class":309},[296,1230,1231],{"class":359},"date",[296,1233,1139],{"class":309},[296,1235,1142],{"class":359},[296,1237,1238],{"class":309},"(),  ",[296,1240,1241],{"class":302},"// 文字列→日付に自動変換\n",[296,1243,1244,1247,1249,1251,1253,1255,1257,1259,1261,1263],{"class":298,"line":575},[296,1245,1246],{"class":698},"        updatedAt",[296,1248,732],{"class":309},[296,1250,1115],{"class":317},[296,1252,396],{"class":309},[296,1254,1226],{"class":317},[296,1256,396],{"class":309},[296,1258,1231],{"class":359},[296,1260,1139],{"class":309},[296,1262,1142],{"class":359},[296,1264,363],{"class":309},[296,1266,1267],{"class":298,"line":585},[296,1268,1269],{"class":309},"      })\n",[296,1271,1272],{"class":298,"line":620},[296,1273,1274],{"class":309},"    })\n",[296,1276,1277],{"class":298,"line":842},[296,1278,970],{"class":309},[296,1280,1281],{"class":298,"line":859},[296,1282,976],{"class":309},[80,1284,1285],{},[89,1286,1287],{},"このスキーマから自動生成されるSQLテーブル：",[130,1289,1293],{"className":1290,"code":1291,"language":1292,"meta":139,"style":139},"language-sql shiki shiki-themes vitesse-light vitesse-light","CREATE TABLE _content_pages (\n  id TEXT PRIMARY KEY,\n  title VARCHAR,\n  description VARCHAR,\n  path VARCHAR,\n  tags TEXT,              -- JSON配列として保存\n  publishedAt DATE,\n  updatedAt DATE,\n  body TEXT,              -- Markdown AST (minimark形式)\n  __hash__ TEXT UNIQUE\n);\n","sql",[137,1294,1295,1310,1323,1333,1343,1352,1365,1375,1384,1396,1406],{"__ignoreMap":139},[296,1296,1297,1300,1303,1306],{"class":298,"line":299},[296,1298,1299],{"class":313},"CREATE",[296,1301,1302],{"class":313}," TABLE",[296,1304,1305],{"class":359}," _content_pages",[296,1307,1309],{"class":1308},"sG7-3"," (\n",[296,1311,1312,1315,1318,1321],{"class":298,"line":306},[296,1313,1314],{"class":1308},"  id ",[296,1316,1317],{"class":349},"TEXT",[296,1319,1320],{"class":349}," PRIMARY KEY",[296,1322,501],{"class":1308},[296,1324,1325,1328,1331],{"class":298,"line":340},[296,1326,1327],{"class":1308},"  title ",[296,1329,1330],{"class":349},"VARCHAR",[296,1332,501],{"class":1308},[296,1334,1335,1338,1341],{"class":298,"line":346},[296,1336,1337],{"class":313},"  description",[296,1339,1340],{"class":349}," VARCHAR",[296,1342,501],{"class":1308},[296,1344,1345,1348,1350],{"class":298,"line":366},[296,1346,1347],{"class":349},"  path",[296,1349,1340],{"class":349},[296,1351,501],{"class":1308},[296,1353,1354,1357,1359,1362],{"class":298,"line":441},[296,1355,1356],{"class":1308},"  tags ",[296,1358,1317],{"class":349},[296,1360,1361],{"class":1308},",              ",[296,1363,1364],{"class":302},"-- JSON配列として保存\n",[296,1366,1367,1370,1373],{"class":298,"line":448},[296,1368,1369],{"class":1308},"  publishedAt ",[296,1371,1372],{"class":349},"DATE",[296,1374,501],{"class":1308},[296,1376,1377,1380,1382],{"class":298,"line":479},[296,1378,1379],{"class":1308},"  updatedAt ",[296,1381,1372],{"class":349},[296,1383,501],{"class":1308},[296,1385,1386,1389,1391,1393],{"class":298,"line":504},[296,1387,1388],{"class":1308},"  body ",[296,1390,1317],{"class":349},[296,1392,1361],{"class":1308},[296,1394,1395],{"class":302},"-- Markdown AST (minimark形式)\n",[296,1397,1398,1401,1403],{"class":298,"line":526},[296,1399,1400],{"class":1308},"  __hash__ ",[296,1402,1317],{"class":349},[296,1404,1405],{"class":313}," UNIQUE\n",[296,1407,1408],{"class":298,"line":545},[296,1409,1410],{"class":1308},");\n",[76,1412,1414],{"id":1413},"クエリapi","クエリAPI",[130,1416,1418],{"className":675,"code":1417,"language":677,"meta":139,"style":139},"// 1. 単一ドキュメント取得\nconst doc = await queryCollection(\"pages\")\n  .path(\"/2025-11-29/article\")\n  .first()\n\n// 2. タグでフィルタリング\nconst nuxtArticles = await queryCollection(\"pages\")\n  .where({ tags: { $contains: \"nuxt\" } })\n  .all()\n\n// 3. 日付でソート\nconst latestArticles = await queryCollection(\"pages\")\n  .sort({ publishedAt: -1 })\n  .limit(10)\n  .all()\n\n// 4. ディレクトリ内の全コンテンツ\nconst todayArticles = await queryCollection(\"pages\")\n  .where({ path: { $startsWith: \"/2025-11-29\" } })\n  .all()\n",[137,1419,1420,1425,1447,1464,1472,1476,1481,1504,1535,1544,1548,1553,1576,1600,1614,1622,1626,1631,1654,1680],{"__ignoreMap":139},[296,1421,1422],{"class":298,"line":299},[296,1423,1424],{"class":302},"// 1. 単一ドキュメント取得\n",[296,1426,1427,1429,1431,1433,1435,1437,1439,1441,1443,1445],{"class":298,"line":306},[296,1428,350],{"class":349},[296,1430,601],{"class":317},[296,1432,356],{"class":309},[296,1434,470],{"class":313},[296,1436,512],{"class":359},[296,1438,413],{"class":309},[296,1440,328],{"class":327},[296,1442,519],{"class":331},[296,1444,328],{"class":327},[296,1446,438],{"class":309},[296,1448,1449,1452,1454,1456,1458,1460,1462],{"class":298,"line":340},[296,1450,1451],{"class":309},"  .",[296,1453,532],{"class":359},[296,1455,413],{"class":309},[296,1457,328],{"class":327},[296,1459,638],{"class":331},[296,1461,328],{"class":327},[296,1463,438],{"class":309},[296,1465,1466,1468,1470],{"class":298,"line":346},[296,1467,1451],{"class":309},[296,1469,550],{"class":359},[296,1471,363],{"class":309},[296,1473,1474],{"class":298,"line":366},[296,1475,445],{"emptyLinePlaceholder":444},[296,1477,1478],{"class":298,"line":441},[296,1479,1480],{"class":302},"// 2. タグでフィルタリング\n",[296,1482,1483,1485,1488,1490,1492,1494,1496,1498,1500,1502],{"class":298,"line":448},[296,1484,350],{"class":349},[296,1486,1487],{"class":317},"nuxtArticles",[296,1489,356],{"class":309},[296,1491,470],{"class":313},[296,1493,512],{"class":359},[296,1495,413],{"class":309},[296,1497,328],{"class":327},[296,1499,519],{"class":331},[296,1501,328],{"class":327},[296,1503,438],{"class":309},[296,1505,1506,1508,1511,1514,1517,1520,1523,1525,1527,1530,1532],{"class":298,"line":479},[296,1507,1451],{"class":309},[296,1509,1510],{"class":359},"where",[296,1512,1513],{"class":309},"({ ",[296,1515,1516],{"class":698},"tags",[296,1518,1519],{"class":309},": { ",[296,1521,1522],{"class":698},"$contains",[296,1524,732],{"class":309},[296,1526,328],{"class":327},[296,1528,1529],{"class":331},"nuxt",[296,1531,328],{"class":327},[296,1533,1534],{"class":309}," } })\n",[296,1536,1537,1539,1542],{"class":298,"line":504},[296,1538,1451],{"class":309},[296,1540,1541],{"class":359},"all",[296,1543,363],{"class":309},[296,1545,1546],{"class":298,"line":526},[296,1547,445],{"emptyLinePlaceholder":444},[296,1549,1550],{"class":298,"line":545},[296,1551,1552],{"class":302},"// 3. 日付でソート\n",[296,1554,1555,1557,1560,1562,1564,1566,1568,1570,1572,1574],{"class":298,"line":555},[296,1556,350],{"class":349},[296,1558,1559],{"class":317},"latestArticles",[296,1561,356],{"class":309},[296,1563,470],{"class":313},[296,1565,512],{"class":359},[296,1567,413],{"class":309},[296,1569,328],{"class":327},[296,1571,519],{"class":331},[296,1573,328],{"class":327},[296,1575,438],{"class":309},[296,1577,1578,1580,1583,1585,1588,1590,1593,1597],{"class":298,"line":560},[296,1579,1451],{"class":309},[296,1581,1582],{"class":359},"sort",[296,1584,1513],{"class":309},[296,1586,1587],{"class":698},"publishedAt",[296,1589,732],{"class":309},[296,1591,1592],{"class":349},"-",[296,1594,1596],{"class":1595},"sM54T","1",[296,1598,1599],{"class":309}," })\n",[296,1601,1602,1604,1607,1609,1612],{"class":298,"line":570},[296,1603,1451],{"class":309},[296,1605,1606],{"class":359},"limit",[296,1608,413],{"class":309},[296,1610,1611],{"class":1595},"10",[296,1613,438],{"class":309},[296,1615,1616,1618,1620],{"class":298,"line":575},[296,1617,1451],{"class":309},[296,1619,1541],{"class":359},[296,1621,363],{"class":309},[296,1623,1624],{"class":298,"line":585},[296,1625,445],{"emptyLinePlaceholder":444},[296,1627,1628],{"class":298,"line":620},[296,1629,1630],{"class":302},"// 4. ディレクトリ内の全コンテンツ\n",[296,1632,1633,1635,1638,1640,1642,1644,1646,1648,1650,1652],{"class":298,"line":842},[296,1634,350],{"class":349},[296,1636,1637],{"class":317},"todayArticles",[296,1639,356],{"class":309},[296,1641,470],{"class":313},[296,1643,512],{"class":359},[296,1645,413],{"class":309},[296,1647,328],{"class":327},[296,1649,519],{"class":331},[296,1651,328],{"class":327},[296,1653,438],{"class":309},[296,1655,1656,1658,1660,1662,1664,1666,1669,1671,1673,1676,1678],{"class":298,"line":859},[296,1657,1451],{"class":309},[296,1659,1510],{"class":359},[296,1661,1513],{"class":309},[296,1663,532],{"class":698},[296,1665,1519],{"class":309},[296,1667,1668],{"class":698},"$startsWith",[296,1670,732],{"class":309},[296,1672,328],{"class":327},[296,1674,1675],{"class":331},"/2025-11-29",[296,1677,328],{"class":327},[296,1679,1534],{"class":309},[296,1681,1682,1684,1686],{"class":298,"line":875},[296,1683,1451],{"class":309},[296,1685,1541],{"class":359},[296,1687,363],{"class":309},[80,1689,1690],{},[89,1691,1692],{},"内部で実行されるSQL（例）：",[130,1694,1696],{"className":1290,"code":1695,"language":1292,"meta":139,"style":139},"-- .first()\nSELECT * FROM _content_pages WHERE path = '/2025-11-29/article' LIMIT 1;\n\n-- タグフィルタ\nSELECT * FROM _content_pages WHERE tags LIKE '%nuxt%';\n\n-- ソート\nSELECT * FROM _content_pages ORDER BY publishedAt DESC LIMIT 10;\n",[137,1697,1698,1703,1741,1745,1750,1777,1781,1786],{"__ignoreMap":139},[296,1699,1700],{"class":298,"line":299},[296,1701,1702],{"class":302},"-- .first()\n",[296,1704,1705,1708,1711,1714,1717,1720,1723,1725,1728,1730,1732,1735,1738],{"class":298,"line":306},[296,1706,1707],{"class":313},"SELECT",[296,1709,1710],{"class":349}," *",[296,1712,1713],{"class":313}," FROM",[296,1715,1716],{"class":1308}," _content_pages ",[296,1718,1719],{"class":313},"WHERE",[296,1721,1722],{"class":349}," path",[296,1724,356],{"class":349},[296,1726,1727],{"class":327}," '",[296,1729,638],{"class":331},[296,1731,416],{"class":327},[296,1733,1734],{"class":313}," LIMIT",[296,1736,1737],{"class":1595}," 1",[296,1739,1740],{"class":1308},";\n",[296,1742,1743],{"class":298,"line":340},[296,1744,445],{"emptyLinePlaceholder":444},[296,1746,1747],{"class":298,"line":346},[296,1748,1749],{"class":302},"-- タグフィルタ\n",[296,1751,1752,1754,1756,1758,1760,1762,1765,1768,1770,1773,1775],{"class":298,"line":366},[296,1753,1707],{"class":313},[296,1755,1710],{"class":349},[296,1757,1713],{"class":313},[296,1759,1716],{"class":1308},[296,1761,1719],{"class":313},[296,1763,1764],{"class":1308}," tags ",[296,1766,1767],{"class":313},"LIKE",[296,1769,1727],{"class":327},[296,1771,1772],{"class":331},"%nuxt%",[296,1774,416],{"class":327},[296,1776,1740],{"class":1308},[296,1778,1779],{"class":298,"line":441},[296,1780,445],{"emptyLinePlaceholder":444},[296,1782,1783],{"class":298,"line":448},[296,1784,1785],{"class":302},"-- ソート\n",[296,1787,1788,1790,1792,1794,1796,1799,1802,1805,1807,1810],{"class":298,"line":479},[296,1789,1707],{"class":313},[296,1791,1710],{"class":349},[296,1793,1713],{"class":313},[296,1795,1716],{"class":1308},[296,1797,1798],{"class":313},"ORDER BY",[296,1800,1801],{"class":1308}," publishedAt ",[296,1803,1804],{"class":313},"DESC",[296,1806,1734],{"class":313},[296,1808,1809],{"class":1595}," 10",[296,1811,1740],{"class":1308},[76,1813,1814],{"id":1814},"画像の取り扱い",[80,1816,1817],{},"Markdownと同じディレクトリに画像を配置できます：",[130,1819,1822],{"className":1820,"code":1821,"language":135},[133],"content/\n└── 2025-11-29/\n    ├── article.md\n    ├── image1.png\n    └── diagram.svg\n",[137,1823,1821],{"__ignoreMap":139},[80,1825,1826],{},[89,1827,1828],{},"Markdown内での参照：",[130,1830,1834],{"className":1831,"code":1832,"language":1833,"meta":139,"style":139},"language-markdown shiki shiki-themes vitesse-light vitesse-light","![説明](./image1.png)\n![図表](./diagram.svg)\n","markdown",[137,1835,1836,1853],{"__ignoreMap":139},[296,1837,1838,1841,1844,1847,1851],{"class":298,"line":299},[296,1839,1840],{"class":309},"![",[296,1842,1843],{"class":331},"説明",[296,1845,1846],{"class":309},"](",[296,1848,1850],{"class":1849},"sE5Nq","./image1.png",[296,1852,438],{"class":309},[296,1854,1855,1857,1860,1862,1865],{"class":298,"line":306},[296,1856,1840],{"class":309},[296,1858,1859],{"class":331},"図表",[296,1861,1846],{"class":309},[296,1863,1864],{"class":1849},"./diagram.svg",[296,1866,438],{"class":309},[80,1868,1869],{},[89,1870,1871,1872,1874],{},"自動コピーの仕組み（",[137,1873,672],{},"）：",[130,1876,1878],{"className":675,"code":1877,"language":677,"meta":139,"style":139},"export default defineNuxtConfig({\n  hooks: {\n    'nitro:build:public-assets': async (nitro) => {\n      const contentDir = resolve(__dirname, 'content')\n      const publicDir = resolve(nitro.options.output.publicDir)\n\n      // content/ 内の画像を public/ にコピー\n      async function copyImages(dir: string, relativePath = '') {\n        // PNG, JPG, SVG, WEBP, DRAWIO 等を再帰的にコピー\n      }\n\n      await copyImages(contentDir)\n    }\n  }\n})\n",[137,1879,1880,1890,1897,1921,1948,1979,1983,1988,2023,2028,2032,2036,2049,2053,2057],{"__ignoreMap":139},[296,1881,1882,1884,1886,1888],{"class":298,"line":299},[296,1883,684],{"class":313},[296,1885,687],{"class":313},[296,1887,690],{"class":359},[296,1889,693],{"class":309},[296,1891,1892,1895],{"class":298,"line":306},[296,1893,1894],{"class":698},"  hooks",[296,1896,724],{"class":309},[296,1898,1899,1902,1905,1907,1909,1912,1915,1918],{"class":298,"line":340},[296,1900,1901],{"class":327},"    '",[296,1903,1904],{"class":331},"nitro:build:public-assets",[296,1906,416],{"class":327},[296,1908,732],{"class":309},[296,1910,1911],{"class":349},"async",[296,1913,1914],{"class":309}," (",[296,1916,1917],{"class":317},"nitro",[296,1919,1920],{"class":309},") => {\n",[296,1922,1923,1926,1929,1931,1934,1936,1938,1940,1942,1944,1946],{"class":298,"line":346},[296,1924,1925],{"class":349},"      const ",[296,1927,1928],{"class":317},"contentDir",[296,1930,356],{"class":309},[296,1932,1933],{"class":359}," resolve",[296,1935,413],{"class":309},[296,1937,937],{"class":317},[296,1939,1002],{"class":309},[296,1941,1727],{"class":327},[296,1943,945],{"class":331},[296,1945,416],{"class":327},[296,1947,438],{"class":309},[296,1949,1950,1952,1955,1957,1959,1961,1963,1965,1968,1970,1973,1975,1977],{"class":298,"line":366},[296,1951,1925],{"class":349},[296,1953,1954],{"class":317},"publicDir",[296,1956,356],{"class":309},[296,1958,1933],{"class":359},[296,1960,413],{"class":309},[296,1962,1917],{"class":317},[296,1964,396],{"class":309},[296,1966,1967],{"class":317},"options",[296,1969,396],{"class":309},[296,1971,1972],{"class":317},"output",[296,1974,396],{"class":309},[296,1976,1954],{"class":317},[296,1978,438],{"class":309},[296,1980,1981],{"class":298,"line":441},[296,1982,445],{"emptyLinePlaceholder":444},[296,1984,1985],{"class":298,"line":448},[296,1986,1987],{"class":302},"      // content/ 内の画像を public/ にコピー\n",[296,1989,1990,1993,1996,1999,2001,2004,2006,2009,2011,2014,2017,2020],{"class":298,"line":479},[296,1991,1992],{"class":349},"      async",[296,1994,1995],{"class":349}," function",[296,1997,1998],{"class":359}," copyImages",[296,2000,413],{"class":309},[296,2002,2003],{"class":317},"dir",[296,2005,732],{"class":309},[296,2007,1136],{"class":2008},"sSkh3",[296,2010,940],{"class":309},[296,2012,2013],{"class":317},"relativePath",[296,2015,2016],{"class":309}," = ",[296,2018,2019],{"class":327},"''",[296,2021,2022],{"class":309},") {\n",[296,2024,2025],{"class":298,"line":504},[296,2026,2027],{"class":302},"        // PNG, JPG, SVG, WEBP, DRAWIO 等を再帰的にコピー\n",[296,2029,2030],{"class":298,"line":526},[296,2031,878],{"class":309},[296,2033,2034],{"class":298,"line":545},[296,2035,445],{"emptyLinePlaceholder":444},[296,2037,2038,2041,2043,2045,2047],{"class":298,"line":555},[296,2039,2040],{"class":313},"      await",[296,2042,1998],{"class":359},[296,2044,413],{"class":309},[296,2046,1928],{"class":317},[296,2048,438],{"class":309},[296,2050,2051],{"class":298,"line":560},[296,2052,964],{"class":309},[296,2054,2055],{"class":298,"line":570},[296,2056,970],{"class":309},[296,2058,2059],{"class":298,"line":575},[296,2060,976],{"class":309},[80,2062,2063],{},[89,2064,2065,2066,1874],{},"ランタイムでの配信（",[137,2067,2068],{},"server/middleware/content-images.ts",[130,2070,2072],{"className":675,"code":2071,"language":677,"meta":139,"style":139},"export default defineEventHandler((event) => {\n  const url = event.node.req.url || ''\n\n  // /2025-11-29/image.png のようなパターンをマッチ\n  const match = url.match(/^\\/(\\d{4}-\\d{2}-\\d{2})\\/([^/]+\\.(png|jpg|jpeg|gif|webp|svg))$/i)\n\n  if (match) {\n    const [, dateDir, filename] = match\n    const contentPath = join(process.cwd(), 'content', dateDir, filename)\n\n    // content/ から直接配信\n    return sendStream(event, createReadStream(contentPath))\n  }\n})\n",[137,2073,2074,2096,2129,2133,2138,2253,2257,2270,2293,2334,2338,2343,2367,2371],{"__ignoreMap":139},[296,2075,2076,2078,2080,2083,2086,2089,2091,2093],{"class":298,"line":299},[296,2077,684],{"class":313},[296,2079,687],{"class":313},[296,2081,2082],{"class":359}," defineEventHandler",[296,2084,2085],{"class":309},"((",[296,2087,2088],{"class":317},"event",[296,2090,423],{"class":309},[296,2092,382],{"class":309},[296,2094,2095],{"class":309}," {\n",[296,2097,2098,2101,2104,2106,2109,2111,2114,2116,2119,2121,2123,2126],{"class":298,"line":306},[296,2099,2100],{"class":349},"  const ",[296,2102,2103],{"class":317},"url",[296,2105,356],{"class":309},[296,2107,2108],{"class":317}," event",[296,2110,396],{"class":309},[296,2112,2113],{"class":317},"node",[296,2115,396],{"class":309},[296,2117,2118],{"class":317},"req",[296,2120,396],{"class":309},[296,2122,2103],{"class":317},[296,2124,2125],{"class":349}," || ",[296,2127,2128],{"class":327},"''\n",[296,2130,2131],{"class":298,"line":340},[296,2132,445],{"emptyLinePlaceholder":444},[296,2134,2135],{"class":298,"line":346},[296,2136,2137],{"class":302},"  // /2025-11-29/image.png のようなパターンをマッチ\n",[296,2139,2140,2142,2145,2147,2150,2152,2154,2156,2158,2161,2165,2167,2171,2174,2177,2179,2182,2184,2186,2188,2190,2192,2195,2197,2200,2203,2206,2209,2211,2214,2217,2220,2222,2225,2227,2230,2232,2235,2237,2240,2243,2246,2248,2251],{"class":298,"line":366},[296,2141,2100],{"class":349},[296,2143,2144],{"class":317},"match",[296,2146,356],{"class":309},[296,2148,2149],{"class":317}," url",[296,2151,396],{"class":309},[296,2153,2144],{"class":359},[296,2155,413],{"class":309},[296,2157,388],{"class":327},[296,2159,2160],{"class":313},"^",[296,2162,2164],{"class":2163},"svWSF","\\/",[296,2166,413],{"class":309},[296,2168,2170],{"class":2169},"she3A","\\d",[296,2172,2173],{"class":1595},"{4}",[296,2175,1592],{"class":2176},"sLkVR",[296,2178,2170],{"class":2169},[296,2180,2181],{"class":1595},"{2}",[296,2183,1592],{"class":2176},[296,2185,2170],{"class":2169},[296,2187,2181],{"class":1595},[296,2189,423],{"class":309},[296,2191,2164],{"class":2163},[296,2193,2194],{"class":309},"([",[296,2196,2160],{"class":349},[296,2198,388],{"class":2199},"snbK4",[296,2201,2202],{"class":309},"]",[296,2204,2205],{"class":1595},"+",[296,2207,2208],{"class":2163},"\\.",[296,2210,413],{"class":309},[296,2212,2213],{"class":2176},"png",[296,2215,2216],{"class":349},"|",[296,2218,2219],{"class":2176},"jpg",[296,2221,2216],{"class":349},[296,2223,2224],{"class":2176},"jpeg",[296,2226,2216],{"class":349},[296,2228,2229],{"class":2176},"gif",[296,2231,2216],{"class":349},[296,2233,2234],{"class":2176},"webp",[296,2236,2216],{"class":349},[296,2238,2239],{"class":2176},"svg",[296,2241,2242],{"class":309},"))",[296,2244,2245],{"class":313},"$",[296,2247,388],{"class":327},[296,2249,2250],{"class":313},"i",[296,2252,438],{"class":309},[296,2254,2255],{"class":298,"line":441},[296,2256,445],{"emptyLinePlaceholder":444},[296,2258,2259,2262,2264,2266,2268],{"class":298,"line":448},[296,2260,2261],{"class":313},"  if",[296,2263,1914],{"class":309},[296,2265,2144],{"class":317},[296,2267,423],{"class":309},[296,2269,2095],{"class":309},[296,2271,2272,2275,2278,2281,2283,2286,2288,2290],{"class":298,"line":479},[296,2273,2274],{"class":349},"    const ",[296,2276,2277],{"class":309},"[,",[296,2279,2280],{"class":317}," dateDir",[296,2282,1002],{"class":309},[296,2284,2285],{"class":317}," filename",[296,2287,2202],{"class":309},[296,2289,356],{"class":309},[296,2291,2292],{"class":317}," match\n",[296,2294,2295,2297,2300,2302,2305,2307,2310,2312,2315,2318,2320,2322,2324,2326,2328,2330,2332],{"class":298,"line":504},[296,2296,2274],{"class":349},[296,2298,2299],{"class":317},"contentPath",[296,2301,356],{"class":309},[296,2303,2304],{"class":359}," join",[296,2306,413],{"class":309},[296,2308,2309],{"class":317},"process",[296,2311,396],{"class":309},[296,2313,2314],{"class":359},"cwd",[296,2316,2317],{"class":309},"(),",[296,2319,1727],{"class":327},[296,2321,945],{"class":331},[296,2323,416],{"class":327},[296,2325,1002],{"class":309},[296,2327,2280],{"class":317},[296,2329,1002],{"class":309},[296,2331,2285],{"class":317},[296,2333,438],{"class":309},[296,2335,2336],{"class":298,"line":526},[296,2337,445],{"emptyLinePlaceholder":444},[296,2339,2340],{"class":298,"line":545},[296,2341,2342],{"class":302},"    // content/ から直接配信\n",[296,2344,2345,2348,2351,2353,2355,2357,2360,2362,2364],{"class":298,"line":555},[296,2346,2347],{"class":313},"    return",[296,2349,2350],{"class":359}," sendStream",[296,2352,413],{"class":309},[296,2354,2088],{"class":317},[296,2356,1002],{"class":309},[296,2358,2359],{"class":359}," createReadStream",[296,2361,413],{"class":309},[296,2363,2299],{"class":317},[296,2365,2366],{"class":309},"))\n",[296,2368,2369],{"class":298,"line":560},[296,2370,970],{"class":309},[296,2372,2373],{"class":298,"line":570},[296,2374,976],{"class":309},[71,2376],{},[14,2378,45],{"id":2379},"nuxt-pages-の自動ルーティング仕様",[76,2381,2382],{"id":2382},"ファイルベースルーティングのルール",[182,2384,2385],{"id":2385},"基本パターン",[2387,2388,2389,2404],"table",{},[2390,2391,2392],"thead",{},[2393,2394,2395,2399,2402],"tr",{},[2396,2397,2398],"th",{},"ファイルパス",[2396,2400,2401],{},"生成されるルート",[2396,2403,1843],{},[2405,2406,2407,2422,2437,2452],"tbody",{},[2393,2408,2409,2415,2419],{},[2410,2411,2412],"td",{},[137,2413,2414],{},"pages/index.vue",[2410,2416,2417],{},[137,2418,388],{},[2410,2420,2421],{},"ホームページ",[2393,2423,2424,2429,2434],{},[2410,2425,2426],{},[137,2427,2428],{},"pages/about.vue",[2410,2430,2431],{},[137,2432,2433],{},"/about",[2410,2435,2436],{},"固定ページ",[2393,2438,2439,2444,2449],{},[2410,2440,2441],{},[137,2442,2443],{},"pages/blog/index.vue",[2410,2445,2446],{},[137,2447,2448],{},"/blog",[2410,2450,2451],{},"ディレクトリのindex",[2393,2453,2454,2459,2464],{},[2410,2455,2456],{},[137,2457,2458],{},"pages/blog/article.vue",[2410,2460,2461],{},[137,2462,2463],{},"/blog/article",[2410,2465,2466],{},"ネストされたページ",[182,2468,2469],{"id":2469},"動的ルート",[2387,2471,2472,2483],{},[2390,2473,2474],{},[2393,2475,2476,2478,2480],{},[2396,2477,2398],{},[2396,2479,2401],{},[2396,2481,2482],{},"マッチ例",[2405,2484,2485,2505,2522],{},[2393,2486,2487,2492,2497],{},[2410,2488,2489],{},[137,2490,2491],{},"pages/[id].vue",[2410,2493,2494],{},[137,2495,2496],{},"/:id",[2410,2498,2499,940,2502],{},[137,2500,2501],{},"/123",[137,2503,2504],{},"/abc",[2393,2506,2507,2512,2517],{},[2410,2508,2509],{},[137,2510,2511],{},"pages/blog/[slug].vue",[2410,2513,2514],{},[137,2515,2516],{},"/blog/:slug",[2410,2518,2519],{},[137,2520,2521],{},"/blog/my-article",[2393,2523,2524,2529,2534],{},[2410,2525,2526],{},[137,2527,2528],{},"pages/[...slug].vue",[2410,2530,2531],{},[137,2532,2533],{},"/:slug(.*)",[2410,2535,2536],{},[137,2537,2538],{},"/any/path/here",[182,2540,2542],{"id":2541},"catch-allルートの優先順位","Catch-allルートの優先順位",[80,2544,2545,2546,2549],{},"Nuxtのルーティングは",[89,2547,2548],{},"具体的なルートを優先","します：",[130,2551,2554],{"className":2552,"code":2553,"language":135},[133],"優先順位（高 → 低）：\n1. 固定パス:     /blog/index.vue          → /blog\n2. 固定パス:     /excel-viewer.vue        → /excel-viewer\n3. 動的パス:     /blog/[slug].vue         → /blog/:slug\n4. Catch-all:    /[...slug].vue           → /:slug(.*)\n",[137,2555,2553],{"__ignoreMap":139},[80,2557,2558],{},[89,2559,2560],{},"実例：",[80,2562,2563,2565],{},[137,2564,2448],{}," にアクセスした場合：",[84,2567,2568,2573],{},[21,2569,2570,2572],{},[137,2571,2443],{}," が存在 → これを使用 ✅",[21,2574,2575,2576,2578],{},"存在しない場合 → ",[137,2577,2528],{}," にフォールバック",[80,2580,2581,2565],{},[137,2582,638],{},[84,2584,2585,2588,2593],{},[21,2586,2587],{},"固定ルートに一致しない",[21,2589,2590,2592],{},[137,2591,2528],{}," が処理 ✅",[21,2594,2595],{},"このルート内でNuxt Contentからコンテンツを取得",[76,2597,2599],{"id":2598},"vueページの基本構造","Vueページの基本構造",[182,2601,2602],{"id":2602},"シンプルなページ",[130,2604,2606],{"className":290,"code":2605,"language":292,"meta":139,"style":139},"\u003C!-- pages/about.vue -->\n\u003Ctemplate>\n  \u003Cdiv>\n    \u003Ch1>About Us\u003C/h1>\n    \u003Cp>会社情報\u003C/p>\n  \u003C/div>\n\u003C/template>\n",[137,2607,2608,2613,2621,2630,2649,2666,2675],{"__ignoreMap":139},[296,2609,2610],{"class":298,"line":299},[296,2611,2612],{"class":302},"\u003C!-- pages/about.vue -->\n",[296,2614,2615,2617,2619],{"class":298,"line":306},[296,2616,310],{"class":309},[296,2618,580],{"class":313},[296,2620,337],{"class":309},[296,2622,2623,2625,2628],{"class":298,"line":340},[296,2624,588],{"class":309},[296,2626,2627],{"class":313},"div",[296,2629,337],{"class":309},[296,2631,2632,2635,2637,2640,2643,2645,2647],{"class":298,"line":346},[296,2633,2634],{"class":309},"    \u003C",[296,2636,10],{"class":313},[296,2638,2639],{"class":309},">",[296,2641,2642],{"class":1308},"About Us",[296,2644,563],{"class":309},[296,2646,10],{"class":313},[296,2648,337],{"class":309},[296,2650,2651,2653,2655,2657,2660,2662,2664],{"class":298,"line":366},[296,2652,2634],{"class":309},[296,2654,80],{"class":313},[296,2656,2639],{"class":309},[296,2658,2659],{"class":1308},"会社情報",[296,2661,563],{"class":309},[296,2663,80],{"class":313},[296,2665,337],{"class":309},[296,2667,2668,2671,2673],{"class":298,"line":441},[296,2669,2670],{"class":309},"  \u003C/",[296,2672,2627],{"class":313},[296,2674,337],{"class":309},[296,2676,2677,2679,2681],{"class":298,"line":448},[296,2678,563],{"class":309},[296,2680,580],{"class":313},[296,2682,337],{"class":309},[182,2684,2685],{"id":2685},"インタラクティブなページ",[130,2687,2689],{"className":290,"code":2688,"language":292,"meta":139,"style":139},"\u003C!-- pages/excel-viewer.vue -->\n\u003Cscript setup lang=\"ts\">\nimport { ref } from 'vue'\nimport HyperFormula from 'hyperformula'\n\nconst data = ref([\n  ['商品', '単価', '数量', '合計'],\n  ['リンゴ', 100, 5, '=B2*C2'],\n  ['バナナ', 80, 3, '=B3*C3']\n])\n\nconst hf = HyperFormula.buildFromArray(data.value)\n\nconst getCellValue = (row: number, col: number) => {\n  return hf.getCellValue({ sheet: 0, row, col })\n}\n\u003C/script>\n\n\u003Ctemplate>\n  \u003Cdiv>\n    \u003Ch1>Excel Viewer\u003C/h1>\n    \u003Ctable>\n      \u003Ctr v-for=\"(row, i) in data\" :key=\"i\">\n        \u003Ctd v-for=\"(cell, j) in row\" :key=\"j\">\n          {{ getCellValue(i, j) }}\n        \u003C/td>\n      \u003C/tr>\n    \u003C/table>\n  \u003C/div>\n\u003C/template>\n",[137,2690,2691,2696,2716,2736,2752,2756,2770,2811,2843,2876,2881,2885,2911,2915,2949,2982,2987,2995,2999,3007,3015,3032,3040,3072,3103,3108,3117,3126,3135,3143],{"__ignoreMap":139},[296,2692,2693],{"class":298,"line":299},[296,2694,2695],{"class":302},"\u003C!-- pages/excel-viewer.vue -->\n",[296,2697,2698,2700,2702,2704,2706,2708,2710,2712,2714],{"class":298,"line":306},[296,2699,310],{"class":309},[296,2701,314],{"class":313},[296,2703,318],{"class":317},[296,2705,321],{"class":317},[296,2707,324],{"class":309},[296,2709,328],{"class":327},[296,2711,332],{"class":331},[296,2713,328],{"class":327},[296,2715,337],{"class":309},[296,2717,2718,2720,2722,2725,2727,2729,2731,2733],{"class":298,"line":340},[296,2719,993],{"class":313},[296,2721,996],{"class":309},[296,2723,2724],{"class":317}," ref",[296,2726,465],{"class":309},[296,2728,1010],{"class":313},[296,2730,1727],{"class":327},[296,2732,292],{"class":331},[296,2734,2735],{"class":327},"'\n",[296,2737,2738,2740,2743,2745,2747,2750],{"class":298,"line":346},[296,2739,993],{"class":313},[296,2741,2742],{"class":317}," HyperFormula",[296,2744,1010],{"class":313},[296,2746,1727],{"class":327},[296,2748,2749],{"class":331},"hyperformula",[296,2751,2735],{"class":327},[296,2753,2754],{"class":298,"line":366},[296,2755,445],{"emptyLinePlaceholder":444},[296,2757,2758,2760,2763,2765,2767],{"class":298,"line":441},[296,2759,350],{"class":349},[296,2761,2762],{"class":317},"data",[296,2764,356],{"class":309},[296,2766,2724],{"class":359},[296,2768,2769],{"class":309},"([\n",[296,2771,2772,2775,2777,2780,2782,2784,2786,2789,2791,2793,2795,2798,2800,2802,2804,2807,2809],{"class":298,"line":448},[296,2773,2774],{"class":309},"  [",[296,2776,416],{"class":327},[296,2778,2779],{"class":331},"商品",[296,2781,416],{"class":327},[296,2783,1002],{"class":309},[296,2785,1727],{"class":327},[296,2787,2788],{"class":331},"単価",[296,2790,416],{"class":327},[296,2792,1002],{"class":309},[296,2794,1727],{"class":327},[296,2796,2797],{"class":331},"数量",[296,2799,416],{"class":327},[296,2801,1002],{"class":309},[296,2803,1727],{"class":327},[296,2805,2806],{"class":331},"合計",[296,2808,416],{"class":327},[296,2810,712],{"class":309},[296,2812,2813,2815,2817,2820,2822,2824,2827,2829,2832,2834,2836,2839,2841],{"class":298,"line":479},[296,2814,2774],{"class":309},[296,2816,416],{"class":327},[296,2818,2819],{"class":331},"リンゴ",[296,2821,416],{"class":327},[296,2823,1002],{"class":309},[296,2825,2826],{"class":1595}," 100",[296,2828,1002],{"class":309},[296,2830,2831],{"class":1595}," 5",[296,2833,1002],{"class":309},[296,2835,1727],{"class":327},[296,2837,2838],{"class":331},"=B2*C2",[296,2840,416],{"class":327},[296,2842,712],{"class":309},[296,2844,2845,2847,2849,2852,2854,2856,2859,2861,2864,2866,2868,2871,2873],{"class":298,"line":504},[296,2846,2774],{"class":309},[296,2848,416],{"class":327},[296,2850,2851],{"class":331},"バナナ",[296,2853,416],{"class":327},[296,2855,1002],{"class":309},[296,2857,2858],{"class":1595}," 80",[296,2860,1002],{"class":309},[296,2862,2863],{"class":1595}," 3",[296,2865,1002],{"class":309},[296,2867,1727],{"class":327},[296,2869,2870],{"class":331},"=B3*C3",[296,2872,416],{"class":327},[296,2874,2875],{"class":309},"]\n",[296,2877,2878],{"class":298,"line":526},[296,2879,2880],{"class":309},"])\n",[296,2882,2883],{"class":298,"line":545},[296,2884,445],{"emptyLinePlaceholder":444},[296,2886,2887,2889,2892,2894,2896,2898,2901,2903,2905,2907,2909],{"class":298,"line":555},[296,2888,350],{"class":349},[296,2890,2891],{"class":317},"hf",[296,2893,356],{"class":309},[296,2895,2742],{"class":317},[296,2897,396],{"class":309},[296,2899,2900],{"class":359},"buildFromArray",[296,2902,413],{"class":309},[296,2904,2762],{"class":317},[296,2906,396],{"class":309},[296,2908,494],{"class":317},[296,2910,438],{"class":309},[296,2912,2913],{"class":298,"line":560},[296,2914,445],{"emptyLinePlaceholder":444},[296,2916,2917,2919,2922,2924,2926,2929,2931,2934,2936,2939,2941,2943,2945,2947],{"class":298,"line":570},[296,2918,350],{"class":349},[296,2920,2921],{"class":359},"getCellValue",[296,2923,356],{"class":309},[296,2925,1914],{"class":309},[296,2927,2928],{"class":317},"row",[296,2930,732],{"class":309},[296,2932,2933],{"class":2008},"number",[296,2935,1002],{"class":309},[296,2937,2938],{"class":317}," col",[296,2940,732],{"class":309},[296,2942,2933],{"class":2008},[296,2944,423],{"class":309},[296,2946,382],{"class":309},[296,2948,2095],{"class":309},[296,2950,2951,2954,2957,2959,2961,2963,2966,2968,2971,2973,2975,2977,2980],{"class":298,"line":575},[296,2952,2953],{"class":313},"  return",[296,2955,2956],{"class":317}," hf",[296,2958,396],{"class":309},[296,2960,2921],{"class":359},[296,2962,1513],{"class":309},[296,2964,2965],{"class":698},"sheet",[296,2967,732],{"class":309},[296,2969,2970],{"class":1595},"0",[296,2972,940],{"class":309},[296,2974,2928],{"class":317},[296,2976,940],{"class":309},[296,2978,2979],{"class":317},"col",[296,2981,1599],{"class":309},[296,2983,2984],{"class":298,"line":585},[296,2985,2986],{"class":309},"}\n",[296,2988,2989,2991,2993],{"class":298,"line":620},[296,2990,563],{"class":309},[296,2992,314],{"class":313},[296,2994,337],{"class":309},[296,2996,2997],{"class":298,"line":842},[296,2998,445],{"emptyLinePlaceholder":444},[296,3000,3001,3003,3005],{"class":298,"line":859},[296,3002,310],{"class":309},[296,3004,580],{"class":313},[296,3006,337],{"class":309},[296,3008,3009,3011,3013],{"class":298,"line":875},[296,3010,588],{"class":309},[296,3012,2627],{"class":313},[296,3014,337],{"class":309},[296,3016,3017,3019,3021,3023,3026,3028,3030],{"class":298,"line":881},[296,3018,2634],{"class":309},[296,3020,10],{"class":313},[296,3022,2639],{"class":309},[296,3024,3025],{"class":1308},"Excel Viewer",[296,3027,563],{"class":309},[296,3029,10],{"class":313},[296,3031,337],{"class":309},[296,3033,3034,3036,3038],{"class":298,"line":886},[296,3035,2634],{"class":309},[296,3037,2387],{"class":313},[296,3039,337],{"class":309},[296,3041,3042,3045,3047,3050,3052,3054,3057,3059,3062,3064,3066,3068,3070],{"class":298,"line":891},[296,3043,3044],{"class":309},"      \u003C",[296,3046,2393],{"class":313},[296,3048,3049],{"class":317}," v-for",[296,3051,324],{"class":309},[296,3053,328],{"class":327},[296,3055,3056],{"class":331},"(row, i) in data",[296,3058,328],{"class":327},[296,3060,3061],{"class":317}," :key",[296,3063,324],{"class":309},[296,3065,328],{"class":327},[296,3067,2250],{"class":331},[296,3069,328],{"class":327},[296,3071,337],{"class":309},[296,3073,3074,3077,3079,3081,3083,3085,3088,3090,3092,3094,3096,3099,3101],{"class":298,"line":899},[296,3075,3076],{"class":309},"        \u003C",[296,3078,2410],{"class":313},[296,3080,3049],{"class":317},[296,3082,324],{"class":309},[296,3084,328],{"class":327},[296,3086,3087],{"class":331},"(cell, j) in row",[296,3089,328],{"class":327},[296,3091,3061],{"class":317},[296,3093,324],{"class":309},[296,3095,328],{"class":327},[296,3097,3098],{"class":331},"j",[296,3100,328],{"class":327},[296,3102,337],{"class":309},[296,3104,3105],{"class":298,"line":907},[296,3106,3107],{"class":1308},"          {{ getCellValue(i, j) }}\n",[296,3109,3110,3113,3115],{"class":298,"line":924},[296,3111,3112],{"class":309},"        \u003C/",[296,3114,2410],{"class":313},[296,3116,337],{"class":309},[296,3118,3119,3122,3124],{"class":298,"line":956},[296,3120,3121],{"class":309},"      \u003C/",[296,3123,2393],{"class":313},[296,3125,337],{"class":309},[296,3127,3128,3131,3133],{"class":298,"line":961},[296,3129,3130],{"class":309},"    \u003C/",[296,3132,2387],{"class":313},[296,3134,337],{"class":309},[296,3136,3137,3139,3141],{"class":298,"line":967},[296,3138,2670],{"class":309},[296,3140,2627],{"class":313},[296,3142,337],{"class":309},[296,3144,3145,3147,3149],{"class":298,"line":973},[296,3146,563],{"class":309},[296,3148,580],{"class":313},[296,3150,337],{"class":309},[71,3152],{},[14,3154,51],{"id":3155},"ハイブリッド戦略使い分けのベストプラクティス",[76,3157,3158],{"id":3158},"判断基準マトリクス",[2387,3160,3161,3174],{},[2390,3162,3163],{},[2393,3164,3165,3168,3171],{},[2396,3166,3167],{},"コンテンツの特性",[2396,3169,3170],{},"推奨方法",[2396,3172,3173],{},"理由",[2405,3175,3176,3189,3201,3213,3226,3238,3250,3262],{},[2393,3177,3178,3181,3186],{},[2410,3179,3180],{},"テキスト中心の記事",[2410,3182,3183,3185],{},[137,3184,155],{}," Markdown",[2410,3187,3188],{},"執筆が簡単、フロントマターで管理",[2393,3190,3191,3194,3198],{},[2410,3192,3193],{},"技術ドキュメント",[2410,3195,3196,3185],{},[137,3197,155],{},[2410,3199,3200],{},"コードブロック、リスト、表が書きやすい",[2393,3202,3203,3206,3210],{},[2410,3204,3205],{},"ブログポスト",[2410,3207,3208,3185],{},[137,3209,155],{},[2410,3211,3212],{},"日付ベースのディレクトリ管理が自然",[2393,3214,3215,3218,3223],{},[2410,3216,3217],{},"データビジュアライゼーション",[2410,3219,3220,3222],{},[137,3221,164],{}," Vue",[2410,3224,3225],{},"Chart.js, D3.js等のライブラリが必要",[2393,3227,3228,3231,3235],{},[2410,3229,3230],{},"フォーム・入力UI",[2410,3232,3233,3222],{},[137,3234,164],{},[2410,3236,3237],{},"リアクティブなバリデーション",[2393,3239,3240,3243,3247],{},[2410,3241,3242],{},"Excelビューアー",[2410,3244,3245,3222],{},[137,3246,164],{},[2410,3248,3249],{},"HyperFormula等の複雑なライブラリ",[2393,3251,3252,3255,3259],{},[2410,3253,3254],{},"SPAライクな画面遷移",[2410,3256,3257,3222],{},[137,3258,164],{},[2410,3260,3261],{},"クライアントサイドルーティング",[2393,3263,3264,3267,3271],{},[2410,3265,3266],{},"動的なコンポーネント",[2410,3268,3269,3222],{},[137,3270,164],{},[2410,3272,3273],{},"ユーザー操作による状態変化",[76,3275,3277],{"id":3276},"具体例ブログシステム","具体例：ブログシステム",[182,3279,3281],{"id":3280},"シンプルな記事markdown","シンプルな記事（Markdown）",[130,3283,3286],{"className":3284,"code":3285,"language":135},[133],"content/2025-11-29/simple-tutorial.md\n",[137,3287,3285],{"__ignoreMap":139},[130,3289,3291],{"className":1831,"code":3290,"language":1833,"meta":139,"style":139},"---\ntitle: Nuxt 入門ガイド\ndescription: Nuxtの基本的な使い方を解説\ntags: [nuxt, vue, tutorial]\npublishedAt: 2025-11-29\n---\n\n# Nuxt 入門ガイド\n\nNuxtは Vue.js のメタフレームワークです。\n\n## インストール\n\n\\`\\`\\`bash\nnpx nuxi init my-app\n\\`\\`\\`\n\n## 特徴\n\n- ファイルベースルーティング\n- SSR/SSGのサポート\n- 豊富なモジュールエコシステム\n",[137,3292,3293,3298,3308,3318,3341,3350,3354,3358,3367,3371,3376,3380,3388,3392,3400,3405,3410,3414,3421,3425,3432,3439],{"__ignoreMap":139},[296,3294,3295],{"class":298,"line":299},[296,3296,3297],{"class":309},"---\n",[296,3299,3300,3303,3305],{"class":298,"line":306},[296,3301,3302],{"class":698},"title",[296,3304,459],{"class":309},[296,3306,3307],{"class":331}," Nuxt 入門ガイド\n",[296,3309,3310,3313,3315],{"class":298,"line":340},[296,3311,3312],{"class":698},"description",[296,3314,459],{"class":309},[296,3316,3317],{"class":331}," Nuxtの基本的な使い方を解説\n",[296,3319,3320,3322,3324,3327,3329,3331,3334,3336,3339],{"class":298,"line":346},[296,3321,1516],{"class":698},[296,3323,459],{"class":309},[296,3325,3326],{"class":309}," [",[296,3328,1529],{"class":331},[296,3330,1002],{"class":309},[296,3332,3333],{"class":331}," vue",[296,3335,1002],{"class":309},[296,3337,3338],{"class":331}," tutorial",[296,3340,2875],{"class":309},[296,3342,3343,3345,3347],{"class":298,"line":366},[296,3344,1587],{"class":698},[296,3346,459],{"class":309},[296,3348,3349],{"class":2199}," 2025-11-29\n",[296,3351,3352],{"class":298,"line":441},[296,3353,3297],{"class":309},[296,3355,3356],{"class":298,"line":448},[296,3357,445],{"emptyLinePlaceholder":444},[296,3359,3360,3364],{"class":298,"line":479},[296,3361,3363],{"class":3362},"sFA8A","#",[296,3365,3307],{"class":3366},"syTZV",[296,3368,3369],{"class":298,"line":504},[296,3370,445],{"emptyLinePlaceholder":444},[296,3372,3373],{"class":298,"line":526},[296,3374,3375],{"class":1308},"Nuxtは Vue.js のメタフレームワークです。\n",[296,3377,3378],{"class":298,"line":545},[296,3379,445],{"emptyLinePlaceholder":444},[296,3381,3382,3385],{"class":298,"line":555},[296,3383,3384],{"class":3362},"##",[296,3386,3387],{"class":3366}," インストール\n",[296,3389,3390],{"class":298,"line":560},[296,3391,445],{"emptyLinePlaceholder":444},[296,3393,3394,3397],{"class":298,"line":570},[296,3395,3396],{"class":2199},"\\`\\`\\`",[296,3398,3399],{"class":1308},"bash\n",[296,3401,3402],{"class":298,"line":575},[296,3403,3404],{"class":1308},"npx nuxi init my-app\n",[296,3406,3407],{"class":298,"line":585},[296,3408,3409],{"class":2199},"\\`\\`\\`\n",[296,3411,3412],{"class":298,"line":620},[296,3413,445],{"emptyLinePlaceholder":444},[296,3415,3416,3418],{"class":298,"line":842},[296,3417,3384],{"class":3362},[296,3419,3420],{"class":3366}," 特徴\n",[296,3422,3423],{"class":298,"line":859},[296,3424,445],{"emptyLinePlaceholder":444},[296,3426,3427,3429],{"class":298,"line":875},[296,3428,1592],{"class":2199},[296,3430,3431],{"class":1308}," ファイルベースルーティング\n",[296,3433,3434,3436],{"class":298,"line":881},[296,3435,1592],{"class":2199},[296,3437,3438],{"class":1308}," SSR/SSGのサポート\n",[296,3440,3441,3443],{"class":298,"line":886},[296,3442,1592],{"class":2199},[296,3444,3445],{"class":1308}," 豊富なモジュールエコシステム\n",[80,3447,3448,3451,3452],{},[89,3449,3450],{},"URL:"," ",[137,3453,3454],{},"https://example.com/2025-11-29/simple-tutorial",[182,3456,3458],{"id":3457},"インタラクティブなデモvue","インタラクティブなデモ（Vue）",[130,3460,3463],{"className":3461,"code":3462,"language":135},[133],"pages/blog/chart-demo.vue\n",[137,3464,3462],{"__ignoreMap":139},[130,3466,3468],{"className":290,"code":3467,"language":292,"meta":139,"style":139},"\u003Cscript setup lang=\"ts\">\nimport { ref, onMounted } from 'vue'\nimport { Chart, registerables } from 'chart.js'\n\nChart.register(...registerables)\n\nconst chartRef = ref\u003CHTMLCanvasElement | null>(null)\n\nonMounted(() => {\n  if (chartRef.value) {\n    new Chart(chartRef.value, {\n      type: 'bar',\n      data: {\n        labels: ['Jan', 'Feb', 'Mar'],\n        datasets: [{\n          label: 'Sales',\n          data: [12, 19, 3]\n        }]\n      }\n    })\n  }\n})\n\u003C/script>\n\n\u003Ctemplate>\n  \u003Cdiv>\n    \u003Ch1>インタラクティブグラフデモ\u003C/h1>\n    \u003Ccanvas ref=\"chartRef\">\u003C/canvas>\n  \u003C/div>\n\u003C/template>\n",[137,3469,3470,3490,3513,3538,3542,3560,3564,3594,3598,3609,3625,3644,3659,3666,3700,3708,3724,3746,3751,3755,3759,3763,3767,3775,3779,3787,3795,3812,3836,3844],{"__ignoreMap":139},[296,3471,3472,3474,3476,3478,3480,3482,3484,3486,3488],{"class":298,"line":299},[296,3473,310],{"class":309},[296,3475,314],{"class":313},[296,3477,318],{"class":317},[296,3479,321],{"class":317},[296,3481,324],{"class":309},[296,3483,328],{"class":327},[296,3485,332],{"class":331},[296,3487,328],{"class":327},[296,3489,337],{"class":309},[296,3491,3492,3494,3496,3498,3500,3503,3505,3507,3509,3511],{"class":298,"line":306},[296,3493,993],{"class":313},[296,3495,996],{"class":309},[296,3497,2724],{"class":317},[296,3499,1002],{"class":309},[296,3501,3502],{"class":317}," onMounted",[296,3504,465],{"class":309},[296,3506,1010],{"class":313},[296,3508,1727],{"class":327},[296,3510,292],{"class":331},[296,3512,2735],{"class":327},[296,3514,3515,3517,3519,3522,3524,3527,3529,3531,3533,3536],{"class":298,"line":340},[296,3516,993],{"class":313},[296,3518,996],{"class":309},[296,3520,3521],{"class":317}," Chart",[296,3523,1002],{"class":309},[296,3525,3526],{"class":317}," registerables",[296,3528,465],{"class":309},[296,3530,1010],{"class":313},[296,3532,1727],{"class":327},[296,3534,3535],{"class":331},"chart.js",[296,3537,2735],{"class":327},[296,3539,3540],{"class":298,"line":346},[296,3541,445],{"emptyLinePlaceholder":444},[296,3543,3544,3547,3549,3552,3555,3558],{"class":298,"line":366},[296,3545,3546],{"class":317},"Chart",[296,3548,396],{"class":309},[296,3550,3551],{"class":359},"register",[296,3553,3554],{"class":309},"(...",[296,3556,3557],{"class":317},"registerables",[296,3559,438],{"class":309},[296,3561,3562],{"class":298,"line":441},[296,3563,445],{"emptyLinePlaceholder":444},[296,3565,3566,3568,3571,3573,3575,3577,3580,3583,3586,3589,3592],{"class":298,"line":448},[296,3567,350],{"class":349},[296,3569,3570],{"class":317},"chartRef",[296,3572,356],{"class":309},[296,3574,2724],{"class":359},[296,3576,310],{"class":309},[296,3578,3579],{"class":2008},"HTMLCanvasElement",[296,3581,3582],{"class":309}," |",[296,3584,3585],{"class":349}," null",[296,3587,3588],{"class":309},">(",[296,3590,3591],{"class":349},"null",[296,3593,438],{"class":309},[296,3595,3596],{"class":298,"line":479},[296,3597,445],{"emptyLinePlaceholder":444},[296,3599,3600,3603,3605,3607],{"class":298,"line":504},[296,3601,3602],{"class":359},"onMounted",[296,3604,379],{"class":309},[296,3606,382],{"class":309},[296,3608,2095],{"class":309},[296,3610,3611,3613,3615,3617,3619,3621,3623],{"class":298,"line":526},[296,3612,2261],{"class":313},[296,3614,1914],{"class":309},[296,3616,3570],{"class":317},[296,3618,396],{"class":309},[296,3620,494],{"class":317},[296,3622,423],{"class":309},[296,3624,2095],{"class":309},[296,3626,3627,3630,3632,3634,3636,3638,3640,3642],{"class":298,"line":545},[296,3628,3629],{"class":349},"    new",[296,3631,3521],{"class":359},[296,3633,413],{"class":309},[296,3635,3570],{"class":317},[296,3637,396],{"class":309},[296,3639,494],{"class":317},[296,3641,1002],{"class":309},[296,3643,2095],{"class":309},[296,3645,3646,3648,3650,3652,3655,3657],{"class":298,"line":555},[296,3647,757],{"class":698},[296,3649,732],{"class":309},[296,3651,416],{"class":327},[296,3653,3654],{"class":331},"bar",[296,3656,416],{"class":327},[296,3658,501],{"class":309},[296,3660,3661,3664],{"class":298,"line":560},[296,3662,3663],{"class":698},"      data",[296,3665,724],{"class":309},[296,3667,3668,3671,3673,3675,3678,3680,3682,3684,3687,3689,3691,3693,3696,3698],{"class":298,"line":570},[296,3669,3670],{"class":698},"        labels",[296,3672,702],{"class":309},[296,3674,416],{"class":327},[296,3676,3677],{"class":331},"Jan",[296,3679,416],{"class":327},[296,3681,940],{"class":309},[296,3683,416],{"class":327},[296,3685,3686],{"class":331},"Feb",[296,3688,416],{"class":327},[296,3690,940],{"class":309},[296,3692,416],{"class":327},[296,3694,3695],{"class":331},"Mar",[296,3697,416],{"class":327},[296,3699,712],{"class":309},[296,3701,3702,3705],{"class":298,"line":575},[296,3703,3704],{"class":698},"        datasets",[296,3706,3707],{"class":309},": [{\n",[296,3709,3710,3713,3715,3717,3720,3722],{"class":298,"line":585},[296,3711,3712],{"class":698},"          label",[296,3714,732],{"class":309},[296,3716,416],{"class":327},[296,3718,3719],{"class":331},"Sales",[296,3721,416],{"class":327},[296,3723,501],{"class":309},[296,3725,3726,3729,3731,3734,3736,3739,3741,3744],{"class":298,"line":620},[296,3727,3728],{"class":698},"          data",[296,3730,702],{"class":309},[296,3732,3733],{"class":1595},"12",[296,3735,940],{"class":309},[296,3737,3738],{"class":1595},"19",[296,3740,940],{"class":309},[296,3742,3743],{"class":1595},"3",[296,3745,2875],{"class":309},[296,3747,3748],{"class":298,"line":842},[296,3749,3750],{"class":309},"        }]\n",[296,3752,3753],{"class":298,"line":859},[296,3754,878],{"class":309},[296,3756,3757],{"class":298,"line":875},[296,3758,1274],{"class":309},[296,3760,3761],{"class":298,"line":881},[296,3762,970],{"class":309},[296,3764,3765],{"class":298,"line":886},[296,3766,976],{"class":309},[296,3768,3769,3771,3773],{"class":298,"line":891},[296,3770,563],{"class":309},[296,3772,314],{"class":313},[296,3774,337],{"class":309},[296,3776,3777],{"class":298,"line":899},[296,3778,445],{"emptyLinePlaceholder":444},[296,3780,3781,3783,3785],{"class":298,"line":907},[296,3782,310],{"class":309},[296,3784,580],{"class":313},[296,3786,337],{"class":309},[296,3788,3789,3791,3793],{"class":298,"line":924},[296,3790,588],{"class":309},[296,3792,2627],{"class":313},[296,3794,337],{"class":309},[296,3796,3797,3799,3801,3803,3806,3808,3810],{"class":298,"line":956},[296,3798,2634],{"class":309},[296,3800,10],{"class":313},[296,3802,2639],{"class":309},[296,3804,3805],{"class":1308},"インタラクティブグラフデモ",[296,3807,563],{"class":309},[296,3809,10],{"class":313},[296,3811,337],{"class":309},[296,3813,3814,3816,3819,3821,3823,3825,3827,3829,3832,3834],{"class":298,"line":961},[296,3815,2634],{"class":309},[296,3817,3818],{"class":313},"canvas",[296,3820,2724],{"class":317},[296,3822,324],{"class":309},[296,3824,328],{"class":327},[296,3826,3570],{"class":331},[296,3828,328],{"class":327},[296,3830,3831],{"class":309},">\u003C/",[296,3833,3818],{"class":313},[296,3835,337],{"class":309},[296,3837,3838,3840,3842],{"class":298,"line":967},[296,3839,2670],{"class":309},[296,3841,2627],{"class":313},[296,3843,337],{"class":309},[296,3845,3846,3848,3850],{"class":298,"line":973},[296,3847,563],{"class":309},[296,3849,580],{"class":313},[296,3851,337],{"class":309},[80,3853,3854,3451,3856],{},[89,3855,3450],{},[137,3857,3858],{},"https://example.com/blog/chart-demo",[76,3860,3861],{"id":3861},"ハイブリッド統合パターン",[182,3863,3865],{"id":3864},"パターン1-ブログindexページvue-記事markdown","パターン1: ブログIndexページ（Vue）+ 記事（Markdown）",[130,3867,3869],{"className":290,"code":3868,"language":292,"meta":139,"style":139},"\u003C!-- pages/blog/index.vue -->\n\u003Cscript setup lang=\"ts\">\n// Markdown記事をクエリAPIで取得\nconst articles = await queryCollection(\"pages\")\n  .where({ tags: { $contains: \"blog\" } })\n  .sort({ publishedAt: -1 })\n  .all()\n\u003C/script>\n\n\u003Ctemplate>\n  \u003Cdiv>\n    \u003Ch1>Blog\u003C/h1>\n    \u003Cdiv v-for=\"article in articles\" :key=\"article.id\">\n      \u003CNuxtLink :to=\"article.path\">\n        \u003Ch2>{{ article.title }}\u003C/h2>\n        \u003Cp>{{ article.description }}\u003C/p>\n      \u003C/NuxtLink>\n    \u003C/div>\n  \u003C/div>\n\u003C/template>\n",[137,3870,3871,3876,3896,3901,3924,3949,3967,3975,3983,3987,3995,4003,4020,4050,4071,4088,4105,4113,4121,4129],{"__ignoreMap":139},[296,3872,3873],{"class":298,"line":299},[296,3874,3875],{"class":302},"\u003C!-- pages/blog/index.vue -->\n",[296,3877,3878,3880,3882,3884,3886,3888,3890,3892,3894],{"class":298,"line":306},[296,3879,310],{"class":309},[296,3881,314],{"class":313},[296,3883,318],{"class":317},[296,3885,321],{"class":317},[296,3887,324],{"class":309},[296,3889,328],{"class":327},[296,3891,332],{"class":331},[296,3893,328],{"class":327},[296,3895,337],{"class":309},[296,3897,3898],{"class":298,"line":340},[296,3899,3900],{"class":302},"// Markdown記事をクエリAPIで取得\n",[296,3902,3903,3905,3908,3910,3912,3914,3916,3918,3920,3922],{"class":298,"line":346},[296,3904,350],{"class":349},[296,3906,3907],{"class":317},"articles",[296,3909,356],{"class":309},[296,3911,470],{"class":313},[296,3913,512],{"class":359},[296,3915,413],{"class":309},[296,3917,328],{"class":327},[296,3919,519],{"class":331},[296,3921,328],{"class":327},[296,3923,438],{"class":309},[296,3925,3926,3928,3930,3932,3934,3936,3938,3940,3942,3945,3947],{"class":298,"line":366},[296,3927,1451],{"class":309},[296,3929,1510],{"class":359},[296,3931,1513],{"class":309},[296,3933,1516],{"class":698},[296,3935,1519],{"class":309},[296,3937,1522],{"class":698},[296,3939,732],{"class":309},[296,3941,328],{"class":327},[296,3943,3944],{"class":331},"blog",[296,3946,328],{"class":327},[296,3948,1534],{"class":309},[296,3950,3951,3953,3955,3957,3959,3961,3963,3965],{"class":298,"line":441},[296,3952,1451],{"class":309},[296,3954,1582],{"class":359},[296,3956,1513],{"class":309},[296,3958,1587],{"class":698},[296,3960,732],{"class":309},[296,3962,1592],{"class":349},[296,3964,1596],{"class":1595},[296,3966,1599],{"class":309},[296,3968,3969,3971,3973],{"class":298,"line":448},[296,3970,1451],{"class":309},[296,3972,1541],{"class":359},[296,3974,363],{"class":309},[296,3976,3977,3979,3981],{"class":298,"line":479},[296,3978,563],{"class":309},[296,3980,314],{"class":313},[296,3982,337],{"class":309},[296,3984,3985],{"class":298,"line":504},[296,3986,445],{"emptyLinePlaceholder":444},[296,3988,3989,3991,3993],{"class":298,"line":526},[296,3990,310],{"class":309},[296,3992,580],{"class":313},[296,3994,337],{"class":309},[296,3996,3997,3999,4001],{"class":298,"line":545},[296,3998,588],{"class":309},[296,4000,2627],{"class":313},[296,4002,337],{"class":309},[296,4004,4005,4007,4009,4011,4014,4016,4018],{"class":298,"line":555},[296,4006,2634],{"class":309},[296,4008,10],{"class":313},[296,4010,2639],{"class":309},[296,4012,4013],{"class":1308},"Blog",[296,4015,563],{"class":309},[296,4017,10],{"class":313},[296,4019,337],{"class":309},[296,4021,4022,4024,4026,4028,4030,4032,4035,4037,4039,4041,4043,4046,4048],{"class":298,"line":560},[296,4023,2634],{"class":309},[296,4025,2627],{"class":313},[296,4027,3049],{"class":317},[296,4029,324],{"class":309},[296,4031,328],{"class":327},[296,4033,4034],{"class":331},"article in articles",[296,4036,328],{"class":327},[296,4038,3061],{"class":317},[296,4040,324],{"class":309},[296,4042,328],{"class":327},[296,4044,4045],{"class":331},"article.id",[296,4047,328],{"class":327},[296,4049,337],{"class":309},[296,4051,4052,4054,4057,4060,4062,4064,4067,4069],{"class":298,"line":570},[296,4053,3044],{"class":309},[296,4055,4056],{"class":313},"NuxtLink",[296,4058,4059],{"class":317}," :to",[296,4061,324],{"class":309},[296,4063,328],{"class":327},[296,4065,4066],{"class":331},"article.path",[296,4068,328],{"class":327},[296,4070,337],{"class":309},[296,4072,4073,4075,4077,4079,4082,4084,4086],{"class":298,"line":575},[296,4074,3076],{"class":309},[296,4076,14],{"class":313},[296,4078,2639],{"class":309},[296,4080,4081],{"class":1308},"{{ article.title }}",[296,4083,563],{"class":309},[296,4085,14],{"class":313},[296,4087,337],{"class":309},[296,4089,4090,4092,4094,4096,4099,4101,4103],{"class":298,"line":585},[296,4091,3076],{"class":309},[296,4093,80],{"class":313},[296,4095,2639],{"class":309},[296,4097,4098],{"class":1308},"{{ article.description }}",[296,4100,563],{"class":309},[296,4102,80],{"class":313},[296,4104,337],{"class":309},[296,4106,4107,4109,4111],{"class":298,"line":620},[296,4108,3121],{"class":309},[296,4110,4056],{"class":313},[296,4112,337],{"class":309},[296,4114,4115,4117,4119],{"class":298,"line":842},[296,4116,3130],{"class":309},[296,4118,2627],{"class":313},[296,4120,337],{"class":309},[296,4122,4123,4125,4127],{"class":298,"line":859},[296,4124,2670],{"class":309},[296,4126,2627],{"class":313},[296,4128,337],{"class":309},[296,4130,4131,4133,4135],{"class":298,"line":875},[296,4132,563],{"class":309},[296,4134,580],{"class":313},[296,4136,337],{"class":309},[182,4138,4140],{"id":4139},"パターン2-markdownに埋め込むvueコンポーネント","パターン2: Markdownに埋め込むVueコンポーネント",[130,4142,4144],{"className":1831,"code":4143,"language":1833,"meta":139,"style":139},"\u003C!-- content/2025-11-29/article.md -->\n---\ntitle: データビジュアライゼーション入門\n---\n\n# データビジュアライゼーション入門\n\nこの記事では Chart.js を使ったグラフの作り方を学びます。\n\n::ChartComponent\n---\ntype: bar\ndata:\n  labels: [Jan, Feb, Mar]\n  values: [10, 20, 30]\n---\n::\n\n上記のグラフは Chart.js で描画されています。\n",[137,4145,4146,4151,4156,4161,4165,4169,4176,4180,4185,4189,4194,4198,4203,4208,4213,4218,4222,4227,4231],{"__ignoreMap":139},[296,4147,4148],{"class":298,"line":299},[296,4149,4150],{"class":302},"\u003C!-- content/2025-11-29/article.md -->\n",[296,4152,4153],{"class":298,"line":306},[296,4154,3297],{"class":4155},"svuG7",[296,4157,4158],{"class":298,"line":340},[296,4159,4160],{"class":1308},"title: データビジュアライゼーション入門\n",[296,4162,4163],{"class":298,"line":346},[296,4164,3297],{"class":3366},[296,4166,4167],{"class":298,"line":366},[296,4168,445],{"emptyLinePlaceholder":444},[296,4170,4171,4173],{"class":298,"line":441},[296,4172,3363],{"class":3362},[296,4174,4175],{"class":3366}," データビジュアライゼーション入門\n",[296,4177,4178],{"class":298,"line":448},[296,4179,445],{"emptyLinePlaceholder":444},[296,4181,4182],{"class":298,"line":479},[296,4183,4184],{"class":1308},"この記事では Chart.js を使ったグラフの作り方を学びます。\n",[296,4186,4187],{"class":298,"line":504},[296,4188,445],{"emptyLinePlaceholder":444},[296,4190,4191],{"class":298,"line":526},[296,4192,4193],{"class":1308},"::ChartComponent\n",[296,4195,4196],{"class":298,"line":545},[296,4197,3297],{"class":3366},[296,4199,4200],{"class":298,"line":555},[296,4201,4202],{"class":1308},"type: bar\n",[296,4204,4205],{"class":298,"line":560},[296,4206,4207],{"class":1308},"data:\n",[296,4209,4210],{"class":298,"line":570},[296,4211,4212],{"class":1308},"  labels: [Jan, Feb, Mar]\n",[296,4214,4215],{"class":298,"line":575},[296,4216,4217],{"class":1308},"  values: [10, 20, 30]\n",[296,4219,4220],{"class":298,"line":585},[296,4221,3297],{"class":3366},[296,4223,4224],{"class":298,"line":620},[296,4225,4226],{"class":1308},"::\n",[296,4228,4229],{"class":298,"line":842},[296,4230,445],{"emptyLinePlaceholder":444},[296,4232,4233],{"class":298,"line":859},[296,4234,4235],{"class":1308},"上記のグラフは Chart.js で描画されています。\n",[130,4237,4239],{"className":290,"code":4238,"language":292,"meta":139,"style":139},"\u003C!-- components/content/ChartComponent.vue -->\n\u003Cscript setup lang=\"ts\">\n// MDCコンポーネントとして使用\n\u003C/script>\n",[137,4240,4241,4246,4266,4271],{"__ignoreMap":139},[296,4242,4243],{"class":298,"line":299},[296,4244,4245],{"class":302},"\u003C!-- components/content/ChartComponent.vue -->\n",[296,4247,4248,4250,4252,4254,4256,4258,4260,4262,4264],{"class":298,"line":306},[296,4249,310],{"class":309},[296,4251,314],{"class":313},[296,4253,318],{"class":317},[296,4255,321],{"class":317},[296,4257,324],{"class":309},[296,4259,328],{"class":327},[296,4261,332],{"class":331},[296,4263,328],{"class":327},[296,4265,337],{"class":309},[296,4267,4268],{"class":298,"line":340},[296,4269,4270],{"class":302},"// MDCコンポーネントとして使用\n",[296,4272,4273,4275,4277],{"class":298,"line":346},[296,4274,563],{"class":309},[296,4276,314],{"class":313},[296,4278,337],{"class":309},[71,4280],{},[14,4282,57],{"id":57},[80,4284,4285,4286,4289],{},"この要件定義は、",[89,4287,4288],{},"別のセッションで生成AIにこのドキュメントを渡し、ゼロから同じ環境を構築するため","のものです。",[76,4291,4292],{"id":4292},"プロジェクト名",[80,4294,4295,4298],{},[89,4296,4297],{},"sample-project","（または任意の名前）",[76,4300,4301],{"id":4301},"技術スタック",[2387,4303,4304,4320],{},[2390,4305,4306],{},[2393,4307,4308,4311,4314,4317],{},[2396,4309,4310],{},"カテゴリ",[2396,4312,4313],{},"技術",[2396,4315,4316],{},"バージョン",[2396,4318,4319],{},"用途",[2405,4321,4322,4336,4350,4364,4377,4390,4403,4417],{},[2393,4323,4324,4327,4330,4333],{},[2410,4325,4326],{},"フレームワーク",[2410,4328,4329],{},"Nuxt",[2410,4331,4332],{},"4.1.2+",[2410,4334,4335],{},"Vue.jsベースのメタフレームワーク",[2393,4337,4338,4341,4344,4347],{},[2410,4339,4340],{},"ランタイム",[2410,4342,4343],{},"Node.js",[2410,4345,4346],{},"22.6.0+",[2410,4348,4349],{},"SQLiteネイティブサポート",[2393,4351,4352,4355,4358,4361],{},[2410,4353,4354],{},"パッケージマネージャー",[2410,4356,4357],{},"pnpm",[2410,4359,4360],{},"10.10.0",[2410,4362,4363],{},"モノレポ管理",[2393,4365,4366,4369,4371,4374],{},[2410,4367,4368],{},"コンテンツ管理",[2410,4370,707],{},[2410,4372,4373],{},"3.7.1+",[2410,4375,4376],{},"Markdown → SQLite",[2393,4378,4379,4382,4385,4387],{},[2410,4380,4381],{},"データベース",[2410,4383,4384],{},"SQLite",[2410,4386,1592],{},[2410,4388,4389],{},"ローカル・エッジ環境両対応",[2393,4391,4392,4395,4398,4400],{},[2410,4393,4394],{},"デプロイ先",[2410,4396,4397],{},"Cloudflare Pages/Workers",[2410,4399,1592],{},[2410,4401,4402],{},"エッジネットワーク配信（Pages経由でWorkers実行）",[2393,4404,4405,4408,4411,4414],{},[2410,4406,4407],{},"スキーマバリデーション",[2410,4409,4410],{},"Zod",[2410,4412,4413],{},"3.25.8+",[2410,4415,4416],{},"フロントマタースキーマ",[2393,4418,4419,4422,4425,4427],{},[2410,4420,4421],{},"Markdownパーサー",[2410,4423,4424],{},"remark-gfm, remark-math",[2410,4426,1592],{},[2410,4428,4429],{},"GFM・数式サポート",[76,4431,4432],{"id":4432},"ディレクトリ構造",[130,4434,4437],{"className":4435,"code":4436,"language":135},[133],"sample-project/\n├── apps/\n│   └── web/                        # Nuxtアプリケーション\n│       ├── app/\n│       │   ├── components/         # Vueコンポーネント\n│       │   │   ├── ArticleTable.vue\n│       │   │   ├── Breadcrumb.vue\n│       │   │   └── TableOfContents.vue\n│       │   └── pages/              # ルーティング（Vue）\n│       │       ├── index.vue       # トップページ\n│       │       ├── blog/           # ブログページ\n│       │       │   └── index.vue\n│       │       ├── excel-viewer.vue\n│       │       └── [...slug].vue   # Catch-all（Nuxt Content連携）\n│       ├── content/                # コンテンツ（Markdown）\n│       │   ├── 2025-11-29/\n│       │   │   └── article.md\n│       │   └── features/\n│       │       └── guide.md\n│       ├── server/\n│       │   └── middleware/\n│       │       └── content-images.ts  # 画像配信ミドルウェア\n│       ├── nuxt.config.ts          # Nuxt設定\n│       ├── content.config.ts       # コンテンツスキーマ\n│       ├── wrangler.toml           # Cloudflare設定\n│       └── package.json\n├── .data/\n│   └── content/\n│       └── contents.sqlite         # 開発時のSQLiteファイル（自動生成）\n├── .nuxt/\n│   └── content/\n│       ├── database.compressed.mjs # ビルド時の圧縮SQLiteダンプ\n│       └── sql_dump.txt            # SQLダンプ（デバッグ用）\n└── package.json                    # ルートpackage.json\n",[137,4438,4436],{"__ignoreMap":139},[76,4440,4441],{"id":4441},"機能要件",[182,4443,4445],{"id":4444},"_1-コンテンツ管理システム","1. コンテンツ管理システム",[80,4447,4448],{},[89,4449,4450],{},"FR-1: Markdownファイルの自動データベース化",[84,4452,4453,4462,4465,4468],{},[21,4454,4455,4457,4458,4461],{},[137,4456,155],{}," ディレクトリに ",[137,4459,4460],{},".md"," ファイルを配置すると自動的にSQLiteに保存",[21,4463,4464],{},"フロントマターのパース（YAML → オブジェクト）",[21,4466,4467],{},"日付、タグ、タイトル、説明等のメタデータ管理",[21,4469,4470],{},"BOMの自動除去（UTF-8 without BOM強制）",[80,4472,4473],{},[89,4474,4475],{},"FR-2: リアルタイム更新（開発環境）",[84,4477,4478,4481,4484],{},[21,4479,4480],{},"Markdownファイル保存時に即座にSQLite更新",[21,4482,4483],{},"HMR（Hot Module Replacement）による自動リロード",[21,4485,4486,4488],{},[137,4487,227],{}," の継続的監視",[80,4490,4491],{},[89,4492,4493],{},"FR-3: クエリAPI",[84,4495,4496,4499,4502,4505],{},[21,4497,4498],{},"パス指定でのコンテンツ取得",[21,4500,4501],{},"タグ、日付によるフィルタリング",[21,4503,4504],{},"ソート、ページネーション",[21,4506,4507],{},"全文検索（オプション）",[182,4509,4511],{"id":4510},"_2-ルーティングシステム","2. ルーティングシステム",[80,4513,4514],{},[89,4515,4516],{},"FR-4: ファイルベース自動ルーティング",[84,4518,4519,4524,4533],{},[21,4520,4521,4523],{},[137,4522,164],{}," ディレクトリの構造を自動的にルートに変換",[21,4525,4526,4527,940,4530,4532],{},"動的ルート（",[137,4528,4529],{},"[id].vue",[137,4531,282],{},"）のサポート",[21,4534,4535],{},"固定ルート優先、Catch-allルートへのフォールバック",[80,4537,4538],{},[89,4539,4540],{},"FR-5: Nuxt Content統合",[84,4542,4543,4548,4551],{},[21,4544,4545,4547],{},[137,4546,282],{}," でMarkdownコンテンツを自動レンダリング",[21,4549,4550],{},"パンくずリストの自動生成",[21,4552,4553],{},"目次（TOC）の自動生成",[182,4555,4557],{"id":4556},"_3-画像管理","3. 画像管理",[80,4559,4560],{},[89,4561,4562],{},"FR-6: コンテンツと同じディレクトリでの画像管理",[84,4564,4565,4571,4578],{},[21,4566,4567,4570],{},[137,4568,4569],{},"content/2025-11-29/image.png"," のような配置",[21,4572,4573,4574,4577],{},"ビルド時に ",[137,4575,4576],{},"public/"," へ自動コピー",[21,4579,4580],{},"ランタイムでの動的配信（開発時）",[80,4582,4583],{},[89,4584,4585],{},"FR-7: 画像の最適化とキャッシング",[84,4587,4588,4591],{},[21,4589,4590],{},"本番環境: 長期キャッシュ（max-age=31536000）",[21,4592,4593],{},"開発環境: キャッシュ無効化（.drawioファイル等）",[182,4595,4597],{"id":4596},"_4-デプロイメント","4. デプロイメント",[80,4599,4600],{},[89,4601,4602],{},"FR-8: 静的サイト生成（SSG）",[84,4604,4605,4611,4617,4620],{},[21,4606,4607,4610],{},[137,4608,4609],{},"nuxt generate"," による完全静的化",[21,4612,4613,4614,4616],{},"SQLiteダンプのJavaScript化（",[137,4615,241],{},"）",[21,4618,4619],{},"Cloudflare Pages/Workersへのデプロイ",[21,4621,4622],{},"Git連携による自動デプロイ（GitHub push → 自動ビルド → 自動デプロイ）",[80,4624,4625],{},[89,4626,4627],{},"FR-9: エッジ環境対応",[84,4629,4630,4633,4636],{},[21,4631,4632],{},"Cloudflare Workers上で実行",[21,4634,4635],{},"WASM SQLiteによるブラウザ内クエリ実行",[21,4637,4638],{},"プレビューデプロイ（Pull Request単位）",[76,4640,4641],{"id":4641},"非機能要件",[182,4643,4645],{"id":4644},"nfr-1-パフォーマンス","NFR-1: パフォーマンス",[84,4647,4648,4651,4654],{},[21,4649,4650],{},"初回ページロード: 2秒以内（LCP）",[21,4652,4653],{},"ページ遷移: 500ms以内",[21,4655,4656],{},"SQLiteクエリ: 100ms以内",[182,4658,4660],{"id":4659},"nfr-2-seo","NFR-2: SEO",[84,4662,4663,4666,4669],{},[21,4664,4665],{},"全ページでSSR/SSG対応",[21,4667,4668],{},"meta タグの自動生成（title, description, OGP）",[21,4670,4671],{},"sitemap.xml の自動生成",[182,4673,4675],{"id":4674},"nfr-3-開発体験","NFR-3: 開発体験",[84,4677,4678,4681,4684],{},[21,4679,4680],{},"ファイル保存から反映まで1秒以内（HMR）",[21,4682,4683],{},"TypeScript完全サポート",[21,4685,4686],{},"ESLint/Prettierによるコード品質管理",[182,4688,4690],{"id":4689},"nfr-4-保守性","NFR-4: 保守性",[84,4692,4693,4696,4699],{},[21,4694,4695],{},"モジュラーなコンポーネント設計",[21,4697,4698],{},"設定ファイルの一元管理",[21,4700,4701],{},"ドキュメントの充実",[76,4703,4704],{"id":4704},"制約事項",[182,4706,4708],{"id":4707},"con-1-環境","CON-1: 環境",[84,4710,4711,4714],{},[21,4712,4713],{},"Node.js 22.6.0以上必須（ネイティブSQLiteサポート）",[21,4715,4716],{},"pnpm 10.10.0以上推奨",[182,4718,4720],{"id":4719},"con-2-ファイルフォーマット","CON-2: ファイルフォーマット",[84,4722,4723,4726,4729],{},[21,4724,4725],{},"コンテンツファイル: UTF-8 without BOM",[21,4727,4728],{},"フロントマター: YAML形式（YAMLスペック準拠）",[21,4730,4731],{},"画像: PNG, JPG, SVG, WEBP, DRAWIO",[182,4733,4735],{"id":4734},"con-3-デプロイ環境","CON-3: デプロイ環境",[84,4737,4738,4744,4747],{},[21,4739,4740,4741,4616],{},"Cloudflare Pages/Workers（Nitro preset: ",[137,4742,4743],{},"cloudflare-pages",[21,4745,4746],{},"Git連携による自動デプロイ、またはGitHub Actions + Direct Upload",[21,4748,4749],{},"D1データベース非使用（SQLiteは静的ダンプとして配信）",[71,4751],{},[14,4753,63],{"id":63},[80,4755,4756,4757,4760],{},"この手順は、",[89,4758,4759],{},"まったく新規のプロジェクトとしてゼロから構築する","ためのステップバイステップガイドです。",[76,4762,4763],{"id":4763},"前提条件",[130,4765,4769],{"className":4766,"code":4767,"language":4768,"meta":139,"style":139},"language-bash shiki shiki-themes vitesse-light vitesse-light","# Node.jsバージョン確認\nnode -v  # v22.6.0以上\n\n# pnpmインストール\nnpm install -g pnpm@10.10.0\n\n# pnpmバージョン確認\npnpm -v  # 10.10.0\n","bash",[137,4770,4771,4776,4786,4790,4795,4809,4813,4818],{"__ignoreMap":139},[296,4772,4773],{"class":298,"line":299},[296,4774,4775],{"class":302},"# Node.jsバージョン確認\n",[296,4777,4778,4780,4783],{"class":298,"line":306},[296,4779,2113],{"class":359},[296,4781,4782],{"class":2199}," -v",[296,4784,4785],{"class":302},"  # v22.6.0以上\n",[296,4787,4788],{"class":298,"line":340},[296,4789,445],{"emptyLinePlaceholder":444},[296,4791,4792],{"class":298,"line":346},[296,4793,4794],{"class":302},"# pnpmインストール\n",[296,4796,4797,4800,4803,4806],{"class":298,"line":366},[296,4798,4799],{"class":359},"npm",[296,4801,4802],{"class":331}," install",[296,4804,4805],{"class":2199}," -g",[296,4807,4808],{"class":331}," pnpm@10.10.0\n",[296,4810,4811],{"class":298,"line":441},[296,4812,445],{"emptyLinePlaceholder":444},[296,4814,4815],{"class":298,"line":448},[296,4816,4817],{"class":302},"# pnpmバージョン確認\n",[296,4819,4820,4822,4824],{"class":298,"line":479},[296,4821,4357],{"class":359},[296,4823,4782],{"class":2199},[296,4825,4826],{"class":302},"  # 10.10.0\n",[76,4828,4830],{"id":4829},"ステップ1-プロジェクト初期化","ステップ1: プロジェクト初期化",[130,4832,4834],{"className":4766,"code":4833,"language":4768,"meta":139,"style":139},"# プロジェクトディレクトリ作成\nmkdir sample-project\ncd sample-project\n\n# pnpm workspace初期化\npnpm init\n\n# package.json編集\ncat > package.json \u003C\u003C 'EOF'\n{\n  \"name\": \"sample-project\",\n  \"version\": \"1.0.0\",\n  \"private\": true,\n  \"packageManager\": \"pnpm@10.10.0\",\n  \"scripts\": {\n    \"dev\": \"pnpm --filter nuxt-app dev\",\n    \"build\": \"pnpm --filter nuxt-app build\",\n    \"preview\": \"pnpm --filter nuxt-app preview\"\n  }\n}\nEOF\n\n# pnpm workspace設定\ncat > pnpm-workspace.yaml \u003C\u003C 'EOF'\npackages:\n  - apps/*\nEOF\n",[137,4835,4836,4841,4849,4856,4860,4865,4872,4876,4881,4898,4903,4908,4913,4918,4923,4928,4933,4938,4943,4947,4951,4956,4960,4965,4978,4983,4988],{"__ignoreMap":139},[296,4837,4838],{"class":298,"line":299},[296,4839,4840],{"class":302},"# プロジェクトディレクトリ作成\n",[296,4842,4843,4846],{"class":298,"line":306},[296,4844,4845],{"class":359},"mkdir",[296,4847,4848],{"class":331}," sample-project\n",[296,4850,4851,4854],{"class":298,"line":340},[296,4852,4853],{"class":698},"cd",[296,4855,4848],{"class":331},[296,4857,4858],{"class":298,"line":346},[296,4859,445],{"emptyLinePlaceholder":444},[296,4861,4862],{"class":298,"line":366},[296,4863,4864],{"class":302},"# pnpm workspace初期化\n",[296,4866,4867,4869],{"class":298,"line":441},[296,4868,4357],{"class":359},[296,4870,4871],{"class":331}," init\n",[296,4873,4874],{"class":298,"line":448},[296,4875,445],{"emptyLinePlaceholder":444},[296,4877,4878],{"class":298,"line":479},[296,4879,4880],{"class":302},"# package.json編集\n",[296,4882,4883,4886,4889,4892,4895],{"class":298,"line":504},[296,4884,4885],{"class":359},"cat",[296,4887,4888],{"class":349}," >",[296,4890,4891],{"class":331}," package.json",[296,4893,4894],{"class":349}," \u003C\u003C",[296,4896,4897],{"class":327}," 'EOF'\n",[296,4899,4900],{"class":298,"line":526},[296,4901,4902],{"class":331},"{\n",[296,4904,4905],{"class":298,"line":545},[296,4906,4907],{"class":331},"  \"name\": \"sample-project\",\n",[296,4909,4910],{"class":298,"line":555},[296,4911,4912],{"class":331},"  \"version\": \"1.0.0\",\n",[296,4914,4915],{"class":298,"line":560},[296,4916,4917],{"class":331},"  \"private\": true,\n",[296,4919,4920],{"class":298,"line":570},[296,4921,4922],{"class":331},"  \"packageManager\": \"pnpm@10.10.0\",\n",[296,4924,4925],{"class":298,"line":575},[296,4926,4927],{"class":331},"  \"scripts\": {\n",[296,4929,4930],{"class":298,"line":585},[296,4931,4932],{"class":331},"    \"dev\": \"pnpm --filter nuxt-app dev\",\n",[296,4934,4935],{"class":298,"line":620},[296,4936,4937],{"class":331},"    \"build\": \"pnpm --filter nuxt-app build\",\n",[296,4939,4940],{"class":298,"line":842},[296,4941,4942],{"class":331},"    \"preview\": \"pnpm --filter nuxt-app preview\"\n",[296,4944,4945],{"class":298,"line":859},[296,4946,970],{"class":331},[296,4948,4949],{"class":298,"line":875},[296,4950,2986],{"class":331},[296,4952,4953],{"class":298,"line":881},[296,4954,4955],{"class":327},"EOF\n",[296,4957,4958],{"class":298,"line":886},[296,4959,445],{"emptyLinePlaceholder":444},[296,4961,4962],{"class":298,"line":891},[296,4963,4964],{"class":302},"# pnpm workspace設定\n",[296,4966,4967,4969,4971,4974,4976],{"class":298,"line":899},[296,4968,4885],{"class":359},[296,4970,4888],{"class":349},[296,4972,4973],{"class":331}," pnpm-workspace.yaml",[296,4975,4894],{"class":349},[296,4977,4897],{"class":327},[296,4979,4980],{"class":298,"line":907},[296,4981,4982],{"class":331},"packages:\n",[296,4984,4985],{"class":298,"line":924},[296,4986,4987],{"class":331},"  - apps/*\n",[296,4989,4990],{"class":298,"line":956},[296,4991,4955],{"class":327},[76,4993,4995],{"id":4994},"ステップ2-nuxtアプリケーション作成","ステップ2: Nuxtアプリケーション作成",[130,4997,4999],{"className":4766,"code":4998,"language":4768,"meta":139,"style":139},"# appsディレクトリ作成\nmkdir -p apps\n\n# Nuxt初期化\ncd apps\nnpx nuxi@latest init web\ncd web\n\n# パッケージマネージャーをpnpmに設定\necho \"packageManager=pnpm@10.10.0\" >> .npmrc\n",[137,5000,5001,5006,5016,5020,5025,5031,5045,5051,5055,5060],{"__ignoreMap":139},[296,5002,5003],{"class":298,"line":299},[296,5004,5005],{"class":302},"# appsディレクトリ作成\n",[296,5007,5008,5010,5013],{"class":298,"line":306},[296,5009,4845],{"class":359},[296,5011,5012],{"class":2199}," -p",[296,5014,5015],{"class":331}," apps\n",[296,5017,5018],{"class":298,"line":340},[296,5019,445],{"emptyLinePlaceholder":444},[296,5021,5022],{"class":298,"line":346},[296,5023,5024],{"class":302},"# Nuxt初期化\n",[296,5026,5027,5029],{"class":298,"line":366},[296,5028,4853],{"class":698},[296,5030,5015],{"class":331},[296,5032,5033,5036,5039,5042],{"class":298,"line":441},[296,5034,5035],{"class":359},"npx",[296,5037,5038],{"class":331}," nuxi@latest",[296,5040,5041],{"class":331}," init",[296,5043,5044],{"class":331}," web\n",[296,5046,5047,5049],{"class":298,"line":448},[296,5048,4853],{"class":698},[296,5050,5044],{"class":331},[296,5052,5053],{"class":298,"line":479},[296,5054,445],{"emptyLinePlaceholder":444},[296,5056,5057],{"class":298,"line":504},[296,5058,5059],{"class":302},"# パッケージマネージャーをpnpmに設定\n",[296,5061,5062,5065,5067,5070,5072,5075],{"class":298,"line":526},[296,5063,5064],{"class":698},"echo",[296,5066,1013],{"class":327},[296,5068,5069],{"class":331},"packageManager=pnpm@10.10.0",[296,5071,328],{"class":327},[296,5073,5074],{"class":349}," >>",[296,5076,5077],{"class":331}," .npmrc\n",[76,5079,5081],{"id":5080},"ステップ3-必要なパッケージインストール","ステップ3: 必要なパッケージインストール",[130,5083,5085],{"className":4766,"code":5084,"language":4768,"meta":139,"style":139},"# Nuxt Content + 依存関係\npnpm add @nuxt/content@^3.7.1\n\n# Markdown拡張\npnpm add remark-gfm@^4.0.1 remark-math@^6.0.0\n\n# スキーマバリデーション\npnpm add zod@^3.25.8\n\n# オプション: インタラクティブコンポーネント用\npnpm add chart.js@^4.5.1 hyperformula@^3.1.0 mermaid@^11.12.1\n\n# 開発依存\npnpm add -D wrangler@4 @libsql/client@^0.15.15\n",[137,5086,5087,5092,5102,5106,5111,5123,5127,5132,5141,5145,5150,5165,5169,5174],{"__ignoreMap":139},[296,5088,5089],{"class":298,"line":299},[296,5090,5091],{"class":302},"# Nuxt Content + 依存関係\n",[296,5093,5094,5096,5099],{"class":298,"line":306},[296,5095,4357],{"class":359},[296,5097,5098],{"class":331}," add",[296,5100,5101],{"class":331}," @nuxt/content@^3.7.1\n",[296,5103,5104],{"class":298,"line":340},[296,5105,445],{"emptyLinePlaceholder":444},[296,5107,5108],{"class":298,"line":346},[296,5109,5110],{"class":302},"# Markdown拡張\n",[296,5112,5113,5115,5117,5120],{"class":298,"line":366},[296,5114,4357],{"class":359},[296,5116,5098],{"class":331},[296,5118,5119],{"class":331}," remark-gfm@^4.0.1",[296,5121,5122],{"class":331}," remark-math@^6.0.0\n",[296,5124,5125],{"class":298,"line":441},[296,5126,445],{"emptyLinePlaceholder":444},[296,5128,5129],{"class":298,"line":448},[296,5130,5131],{"class":302},"# スキーマバリデーション\n",[296,5133,5134,5136,5138],{"class":298,"line":479},[296,5135,4357],{"class":359},[296,5137,5098],{"class":331},[296,5139,5140],{"class":331}," zod@^3.25.8\n",[296,5142,5143],{"class":298,"line":504},[296,5144,445],{"emptyLinePlaceholder":444},[296,5146,5147],{"class":298,"line":526},[296,5148,5149],{"class":302},"# オプション: インタラクティブコンポーネント用\n",[296,5151,5152,5154,5156,5159,5162],{"class":298,"line":545},[296,5153,4357],{"class":359},[296,5155,5098],{"class":331},[296,5157,5158],{"class":331}," chart.js@^4.5.1",[296,5160,5161],{"class":331}," hyperformula@^3.1.0",[296,5163,5164],{"class":331}," mermaid@^11.12.1\n",[296,5166,5167],{"class":298,"line":555},[296,5168,445],{"emptyLinePlaceholder":444},[296,5170,5171],{"class":298,"line":560},[296,5172,5173],{"class":302},"# 開発依存\n",[296,5175,5176,5178,5180,5183,5186],{"class":298,"line":570},[296,5177,4357],{"class":359},[296,5179,5098],{"class":331},[296,5181,5182],{"class":2199}," -D",[296,5184,5185],{"class":331}," wrangler@4",[296,5187,5188],{"class":331}," @libsql/client@^0.15.15\n",[76,5190,5192],{"id":5191},"ステップ4-ディレクトリ構造作成","ステップ4: ディレクトリ構造作成",[130,5194,5196],{"className":4766,"code":5195,"language":4768,"meta":139,"style":139},"# アプリケーションディレクトリ\nmkdir -p app/components\nmkdir -p app/pages/blog\nmkdir -p app/composables\n\n# コンテンツディレクトリ\nmkdir -p content/2025-11-29\nmkdir -p content/features\n\n# サーバーディレクトリ\nmkdir -p server/middleware\n",[137,5197,5198,5203,5212,5221,5230,5234,5239,5248,5257,5261,5266],{"__ignoreMap":139},[296,5199,5200],{"class":298,"line":299},[296,5201,5202],{"class":302},"# アプリケーションディレクトリ\n",[296,5204,5205,5207,5209],{"class":298,"line":306},[296,5206,4845],{"class":359},[296,5208,5012],{"class":2199},[296,5210,5211],{"class":331}," app/components\n",[296,5213,5214,5216,5218],{"class":298,"line":340},[296,5215,4845],{"class":359},[296,5217,5012],{"class":2199},[296,5219,5220],{"class":331}," app/pages/blog\n",[296,5222,5223,5225,5227],{"class":298,"line":346},[296,5224,4845],{"class":359},[296,5226,5012],{"class":2199},[296,5228,5229],{"class":331}," app/composables\n",[296,5231,5232],{"class":298,"line":366},[296,5233,445],{"emptyLinePlaceholder":444},[296,5235,5236],{"class":298,"line":441},[296,5237,5238],{"class":302},"# コンテンツディレクトリ\n",[296,5240,5241,5243,5245],{"class":298,"line":448},[296,5242,4845],{"class":359},[296,5244,5012],{"class":2199},[296,5246,5247],{"class":331}," content/2025-11-29\n",[296,5249,5250,5252,5254],{"class":298,"line":479},[296,5251,4845],{"class":359},[296,5253,5012],{"class":2199},[296,5255,5256],{"class":331}," content/features\n",[296,5258,5259],{"class":298,"line":504},[296,5260,445],{"emptyLinePlaceholder":444},[296,5262,5263],{"class":298,"line":526},[296,5264,5265],{"class":302},"# サーバーディレクトリ\n",[296,5267,5268,5270,5272],{"class":298,"line":545},[296,5269,4845],{"class":359},[296,5271,5012],{"class":2199},[296,5273,5274],{"class":331}," server/middleware\n",[76,5276,5278],{"id":5277},"ステップ5-設定ファイル作成","ステップ5: 設定ファイル作成",[182,5280,5282],{"id":5281},"nuxtconfigts",[137,5283,672],{},[130,5285,5287],{"className":675,"code":5286,"language":677,"meta":139,"style":139},"import { resolve } from \"node:path\"\nimport { copyFile, mkdir, readdir } from \"node:fs/promises\"\nimport { existsSync } from \"node:fs\"\nimport { join } from \"node:path\"\n\nexport default defineNuxtConfig({\n  compatibilityDate: \"2025-10-02\",\n\n  app: {\n    head: {\n      htmlAttrs: {\n        lang: 'ja'\n      },\n      charset: 'utf-8',\n      viewport: 'width=device-width, initial-scale=1',\n      title: 'log.eurekapu.com',\n      meta: [\n        { name: 'description', content: '日々の学びや発見を記録していく個人ログサイト。技術メモ、学習記録、気づきなどを綴っています。' },\n        { property: 'og:site_name', content: 'log.eurekapu.com' },\n        { property: 'og:image', content: 'https://log.eurekapu.com/favicon.svg' }\n      ],\n      link: [\n        { rel: 'icon', type: 'image/svg+xml', href: '/favicon.svg' }\n      ]\n    }\n  },\n\n  modules: [\"@nuxt/content\"],\n\n  nitro: {\n    preset: \"cloudflare-pages\"\n  },\n\n  content: {\n    documentDriven: true,\n    database: {\n      type: \"sqlite\"\n    },\n    experimental: {\n      sqliteConnector: \"native\"\n    },\n    build: {\n      markdown: {\n        highlight: {\n          theme: {\n            default: \"vitesse-light\",\n            dark: \"vitesse-light\"\n          },\n          langs: [\n            \"javascript\", \"typescript\", \"vue\", \"css\", \"scss\", \"html\",\n            \"json\", \"yaml\", \"markdown\", \"bash\", \"shell\", \"sql\",\n            \"python\", \"go\", \"rust\"\n          ]\n        }\n      }\n    },\n    markdown: {\n      mdc: true,\n      remarkPlugins: {\n        \"remark-gfm\": {},\n        \"remark-math\": {}\n      },\n      anchorLinks: false\n    },\n    sources: {\n      content: {\n        driver: \"fs\",\n        base: resolve(__dirname, \"content\")\n      }\n    }\n  },\n\n  runtimeConfig: {\n    // Server-side only (private)\n    resendApiKey: process.env.RESEND_API_KEY || '',\n    stockSummaryEmailFrom: process.env.STOCK_SUMMARY_EMAIL_FROM || 'stock-summary@yourdomain.com',\n    stockSummaryEmailTo: process.env.STOCK_SUMMARY_EMAIL_TO || '',\n    // Public (client + server)\n    public: {\n      apiBase: process.env.NUXT_PUBLIC_API_BASE ?? \"http://localhost:4000/api\"\n    }\n  },\n\n  hooks: {\n    'nitro:build:public-assets': async (nitro) => {\n      const contentDir = resolve(__dirname, 'content')\n      const publicDir = resolve(nitro.options.output.publicDir)\n\n      async function copyImages(dir: string, relativePath = '') {\n        const entries = await readdir(dir, { withFileTypes: true })\n\n        for (const entry of entries) {\n          const sourcePath = join(dir, entry.name)\n          const currentRelativePath = join(relativePath, entry.name)\n\n          if (entry.isDirectory()) {\n            await copyImages(sourcePath, currentRelativePath)\n          } else if (/\\.(png|jpg|jpeg|gif|webp|svg|drawio)$/i.test(entry.name)) {\n            const targetPath = join(publicDir, currentRelativePath)\n            const targetDir = join(targetPath, '..')\n\n            if (!existsSync(targetDir)) {\n              await mkdir(targetDir, { recursive: true })\n            }\n\n            await copyFile(sourcePath, targetPath)\n            console.log(`Copied file: ${currentRelativePath}`)\n          }\n        }\n      }\n\n      await copyImages(contentDir)\n      console.log('✓ Content images copied to public directory')\n    }\n  }\n})\n",[137,5288,5289,5308,5338,5358,5376,5380,5390,5406,5410,5417,5424,5431,5445,5450,5466,5482,5498,5506,5538,5568,5599,5604,5611,5657,5662,5666,5671,5675,5689,5693,5700,5714,5719,5724,5731,5742,5749,5762,5767,5774,5787,5792,5800,5808,5816,5824,5841,5855,5861,5869,5925,5979,6007,6013,6019,6024,6029,6036,6047,6054,6066,6078,6083,6094,6099,6106,6113,6128,6151,6156,6161,6166,6171,6179,6185,6211,6241,6266,6272,6280,6309,6314,6319,6324,6331,6350,6375,6404,6409,6436,6469,6474,6495,6523,6549,6554,6572,6590,6661,6685,6712,6717,6737,6761,6767,6772,6789,6817,6823,6828,6833,6838,6851,6872,6877,6882],{"__ignoreMap":139},[296,5290,5291,5293,5295,5297,5299,5301,5303,5306],{"class":298,"line":299},[296,5292,993],{"class":313},[296,5294,996],{"class":309},[296,5296,1933],{"class":317},[296,5298,465],{"class":309},[296,5300,1010],{"class":313},[296,5302,1013],{"class":327},[296,5304,5305],{"class":331},"node:path",[296,5307,1018],{"class":327},[296,5309,5310,5312,5314,5317,5319,5322,5324,5327,5329,5331,5333,5336],{"class":298,"line":306},[296,5311,993],{"class":313},[296,5313,996],{"class":309},[296,5315,5316],{"class":317}," copyFile",[296,5318,1002],{"class":309},[296,5320,5321],{"class":317}," mkdir",[296,5323,1002],{"class":309},[296,5325,5326],{"class":317}," readdir",[296,5328,465],{"class":309},[296,5330,1010],{"class":313},[296,5332,1013],{"class":327},[296,5334,5335],{"class":331},"node:fs/promises",[296,5337,1018],{"class":327},[296,5339,5340,5342,5344,5347,5349,5351,5353,5356],{"class":298,"line":340},[296,5341,993],{"class":313},[296,5343,996],{"class":309},[296,5345,5346],{"class":317}," existsSync",[296,5348,465],{"class":309},[296,5350,1010],{"class":313},[296,5352,1013],{"class":327},[296,5354,5355],{"class":331},"node:fs",[296,5357,1018],{"class":327},[296,5359,5360,5362,5364,5366,5368,5370,5372,5374],{"class":298,"line":346},[296,5361,993],{"class":313},[296,5363,996],{"class":309},[296,5365,2304],{"class":317},[296,5367,465],{"class":309},[296,5369,1010],{"class":313},[296,5371,1013],{"class":327},[296,5373,5305],{"class":331},[296,5375,1018],{"class":327},[296,5377,5378],{"class":298,"line":366},[296,5379,445],{"emptyLinePlaceholder":444},[296,5381,5382,5384,5386,5388],{"class":298,"line":441},[296,5383,684],{"class":313},[296,5385,687],{"class":313},[296,5387,690],{"class":359},[296,5389,693],{"class":309},[296,5391,5392,5395,5397,5399,5402,5404],{"class":298,"line":448},[296,5393,5394],{"class":698},"  compatibilityDate",[296,5396,732],{"class":309},[296,5398,328],{"class":327},[296,5400,5401],{"class":331},"2025-10-02",[296,5403,328],{"class":327},[296,5405,501],{"class":309},[296,5407,5408],{"class":298,"line":479},[296,5409,445],{"emptyLinePlaceholder":444},[296,5411,5412,5415],{"class":298,"line":504},[296,5413,5414],{"class":698},"  app",[296,5416,724],{"class":309},[296,5418,5419,5422],{"class":298,"line":526},[296,5420,5421],{"class":698},"    head",[296,5423,724],{"class":309},[296,5425,5426,5429],{"class":298,"line":545},[296,5427,5428],{"class":698},"      htmlAttrs",[296,5430,724],{"class":309},[296,5432,5433,5436,5438,5440,5443],{"class":298,"line":555},[296,5434,5435],{"class":698},"        lang",[296,5437,732],{"class":309},[296,5439,416],{"class":327},[296,5441,5442],{"class":331},"ja",[296,5444,2735],{"class":327},[296,5446,5447],{"class":298,"line":560},[296,5448,5449],{"class":309},"      },\n",[296,5451,5452,5455,5457,5459,5462,5464],{"class":298,"line":570},[296,5453,5454],{"class":698},"      charset",[296,5456,732],{"class":309},[296,5458,416],{"class":327},[296,5460,5461],{"class":331},"utf-8",[296,5463,416],{"class":327},[296,5465,501],{"class":309},[296,5467,5468,5471,5473,5475,5478,5480],{"class":298,"line":575},[296,5469,5470],{"class":698},"      viewport",[296,5472,732],{"class":309},[296,5474,416],{"class":327},[296,5476,5477],{"class":331},"width=device-width, initial-scale=1",[296,5479,416],{"class":327},[296,5481,501],{"class":309},[296,5483,5484,5487,5489,5491,5494,5496],{"class":298,"line":585},[296,5485,5486],{"class":698},"      title",[296,5488,732],{"class":309},[296,5490,416],{"class":327},[296,5492,5493],{"class":331},"log.eurekapu.com",[296,5495,416],{"class":327},[296,5497,501],{"class":309},[296,5499,5500,5503],{"class":298,"line":620},[296,5501,5502],{"class":698},"      meta",[296,5504,5505],{"class":309},": [\n",[296,5507,5508,5511,5514,5516,5518,5520,5522,5524,5526,5528,5530,5533,5535],{"class":298,"line":842},[296,5509,5510],{"class":309},"        { ",[296,5512,5513],{"class":698},"name",[296,5515,732],{"class":309},[296,5517,416],{"class":327},[296,5519,3312],{"class":331},[296,5521,416],{"class":327},[296,5523,940],{"class":309},[296,5525,945],{"class":698},[296,5527,732],{"class":309},[296,5529,416],{"class":327},[296,5531,5532],{"class":331},"日々の学びや発見を記録していく個人ログサイト。技術メモ、学習記録、気づきなどを綴っています。",[296,5534,416],{"class":327},[296,5536,5537],{"class":309}," },\n",[296,5539,5540,5542,5545,5547,5549,5552,5554,5556,5558,5560,5562,5564,5566],{"class":298,"line":859},[296,5541,5510],{"class":309},[296,5543,5544],{"class":698},"property",[296,5546,732],{"class":309},[296,5548,416],{"class":327},[296,5550,5551],{"class":331},"og:site_name",[296,5553,416],{"class":327},[296,5555,940],{"class":309},[296,5557,945],{"class":698},[296,5559,732],{"class":309},[296,5561,416],{"class":327},[296,5563,5493],{"class":331},[296,5565,416],{"class":327},[296,5567,5537],{"class":309},[296,5569,5570,5572,5574,5576,5578,5581,5583,5585,5587,5589,5591,5594,5596],{"class":298,"line":875},[296,5571,5510],{"class":309},[296,5573,5544],{"class":698},[296,5575,732],{"class":309},[296,5577,416],{"class":327},[296,5579,5580],{"class":331},"og:image",[296,5582,416],{"class":327},[296,5584,940],{"class":309},[296,5586,945],{"class":698},[296,5588,732],{"class":309},[296,5590,416],{"class":327},[296,5592,5593],{"class":331},"https://log.eurekapu.com/favicon.svg",[296,5595,416],{"class":327},[296,5597,5598],{"class":309}," }\n",[296,5600,5601],{"class":298,"line":881},[296,5602,5603],{"class":309},"      ],\n",[296,5605,5606,5609],{"class":298,"line":886},[296,5607,5608],{"class":698},"      link",[296,5610,5505],{"class":309},[296,5612,5613,5615,5618,5620,5622,5625,5627,5629,5632,5634,5636,5639,5641,5643,5646,5648,5650,5653,5655],{"class":298,"line":891},[296,5614,5510],{"class":309},[296,5616,5617],{"class":698},"rel",[296,5619,732],{"class":309},[296,5621,416],{"class":327},[296,5623,5624],{"class":331},"icon",[296,5626,416],{"class":327},[296,5628,940],{"class":309},[296,5630,5631],{"class":698},"type",[296,5633,732],{"class":309},[296,5635,416],{"class":327},[296,5637,5638],{"class":331},"image/svg+xml",[296,5640,416],{"class":327},[296,5642,940],{"class":309},[296,5644,5645],{"class":698},"href",[296,5647,732],{"class":309},[296,5649,416],{"class":327},[296,5651,5652],{"class":331},"/favicon.svg",[296,5654,416],{"class":327},[296,5656,5598],{"class":309},[296,5658,5659],{"class":298,"line":899},[296,5660,5661],{"class":309},"      ]\n",[296,5663,5664],{"class":298,"line":907},[296,5665,964],{"class":309},[296,5667,5668],{"class":298,"line":924},[296,5669,5670],{"class":309},"  },\n",[296,5672,5673],{"class":298,"line":956},[296,5674,445],{"emptyLinePlaceholder":444},[296,5676,5677,5679,5681,5683,5685,5687],{"class":298,"line":961},[296,5678,699],{"class":698},[296,5680,702],{"class":309},[296,5682,328],{"class":327},[296,5684,707],{"class":331},[296,5686,328],{"class":327},[296,5688,712],{"class":309},[296,5690,5691],{"class":298,"line":967},[296,5692,445],{"emptyLinePlaceholder":444},[296,5694,5695,5698],{"class":298,"line":973},[296,5696,5697],{"class":698},"  nitro",[296,5699,724],{"class":309},[296,5701,5703,5706,5708,5710,5712],{"class":298,"line":5702},31,[296,5704,5705],{"class":698},"    preset",[296,5707,732],{"class":309},[296,5709,328],{"class":327},[296,5711,4743],{"class":331},[296,5713,1018],{"class":327},[296,5715,5717],{"class":298,"line":5716},32,[296,5718,5670],{"class":309},[296,5720,5722],{"class":298,"line":5721},33,[296,5723,445],{"emptyLinePlaceholder":444},[296,5725,5727,5729],{"class":298,"line":5726},34,[296,5728,721],{"class":698},[296,5730,724],{"class":309},[296,5732,5734,5736,5738,5740],{"class":298,"line":5733},35,[296,5735,729],{"class":698},[296,5737,732],{"class":309},[296,5739,735],{"class":313},[296,5741,501],{"class":309},[296,5743,5745,5747],{"class":298,"line":5744},36,[296,5746,750],{"class":698},[296,5748,724],{"class":309},[296,5750,5752,5754,5756,5758,5760],{"class":298,"line":5751},37,[296,5753,757],{"class":698},[296,5755,732],{"class":309},[296,5757,328],{"class":327},[296,5759,764],{"class":331},[296,5761,1018],{"class":327},[296,5763,5765],{"class":298,"line":5764},38,[296,5766,774],{"class":309},[296,5768,5770,5772],{"class":298,"line":5769},39,[296,5771,783],{"class":698},[296,5773,724],{"class":309},[296,5775,5777,5779,5781,5783,5785],{"class":298,"line":5776},40,[296,5778,790],{"class":698},[296,5780,732],{"class":309},[296,5782,328],{"class":327},[296,5784,797],{"class":331},[296,5786,1018],{"class":327},[296,5788,5790],{"class":298,"line":5789},41,[296,5791,774],{"class":309},[296,5793,5795,5798],{"class":298,"line":5794},42,[296,5796,5797],{"class":698},"    build",[296,5799,724],{"class":309},[296,5801,5803,5806],{"class":298,"line":5802},43,[296,5804,5805],{"class":698},"      markdown",[296,5807,724],{"class":309},[296,5809,5811,5814],{"class":298,"line":5810},44,[296,5812,5813],{"class":698},"        highlight",[296,5815,724],{"class":309},[296,5817,5819,5822],{"class":298,"line":5818},45,[296,5820,5821],{"class":698},"          theme",[296,5823,724],{"class":309},[296,5825,5827,5830,5832,5834,5837,5839],{"class":298,"line":5826},46,[296,5828,5829],{"class":698},"            default",[296,5831,732],{"class":309},[296,5833,328],{"class":327},[296,5835,5836],{"class":331},"vitesse-light",[296,5838,328],{"class":327},[296,5840,501],{"class":309},[296,5842,5844,5847,5849,5851,5853],{"class":298,"line":5843},47,[296,5845,5846],{"class":698},"            dark",[296,5848,732],{"class":309},[296,5850,328],{"class":327},[296,5852,5836],{"class":331},[296,5854,1018],{"class":327},[296,5856,5858],{"class":298,"line":5857},48,[296,5859,5860],{"class":309},"          },\n",[296,5862,5864,5867],{"class":298,"line":5863},49,[296,5865,5866],{"class":698},"          langs",[296,5868,5505],{"class":309},[296,5870,5872,5875,5878,5880,5882,5884,5886,5888,5890,5892,5894,5896,5898,5900,5903,5905,5907,5909,5912,5914,5916,5918,5921,5923],{"class":298,"line":5871},50,[296,5873,5874],{"class":327},"            \"",[296,5876,5877],{"class":331},"javascript",[296,5879,328],{"class":327},[296,5881,940],{"class":309},[296,5883,328],{"class":327},[296,5885,677],{"class":331},[296,5887,328],{"class":327},[296,5889,940],{"class":309},[296,5891,328],{"class":327},[296,5893,292],{"class":331},[296,5895,328],{"class":327},[296,5897,940],{"class":309},[296,5899,328],{"class":327},[296,5901,5902],{"class":331},"css",[296,5904,328],{"class":327},[296,5906,940],{"class":309},[296,5908,328],{"class":327},[296,5910,5911],{"class":331},"scss",[296,5913,328],{"class":327},[296,5915,940],{"class":309},[296,5917,328],{"class":327},[296,5919,5920],{"class":331},"html",[296,5922,328],{"class":327},[296,5924,501],{"class":309},[296,5926,5928,5930,5933,5935,5937,5939,5942,5944,5946,5948,5950,5952,5954,5956,5958,5960,5962,5964,5967,5969,5971,5973,5975,5977],{"class":298,"line":5927},51,[296,5929,5874],{"class":327},[296,5931,5932],{"class":331},"json",[296,5934,328],{"class":327},[296,5936,940],{"class":309},[296,5938,328],{"class":327},[296,5940,5941],{"class":331},"yaml",[296,5943,328],{"class":327},[296,5945,940],{"class":309},[296,5947,328],{"class":327},[296,5949,1833],{"class":331},[296,5951,328],{"class":327},[296,5953,940],{"class":309},[296,5955,328],{"class":327},[296,5957,4768],{"class":331},[296,5959,328],{"class":327},[296,5961,940],{"class":309},[296,5963,328],{"class":327},[296,5965,5966],{"class":331},"shell",[296,5968,328],{"class":327},[296,5970,940],{"class":309},[296,5972,328],{"class":327},[296,5974,1292],{"class":331},[296,5976,328],{"class":327},[296,5978,501],{"class":309},[296,5980,5982,5984,5987,5989,5991,5993,5996,5998,6000,6002,6005],{"class":298,"line":5981},52,[296,5983,5874],{"class":327},[296,5985,5986],{"class":331},"python",[296,5988,328],{"class":327},[296,5990,940],{"class":309},[296,5992,328],{"class":327},[296,5994,5995],{"class":331},"go",[296,5997,328],{"class":327},[296,5999,940],{"class":309},[296,6001,328],{"class":327},[296,6003,6004],{"class":331},"rust",[296,6006,1018],{"class":327},[296,6008,6010],{"class":298,"line":6009},53,[296,6011,6012],{"class":309},"          ]\n",[296,6014,6016],{"class":298,"line":6015},54,[296,6017,6018],{"class":309},"        }\n",[296,6020,6022],{"class":298,"line":6021},55,[296,6023,878],{"class":309},[296,6025,6027],{"class":298,"line":6026},56,[296,6028,774],{"class":309},[296,6030,6032,6034],{"class":298,"line":6031},57,[296,6033,815],{"class":698},[296,6035,724],{"class":309},[296,6037,6039,6041,6043,6045],{"class":298,"line":6038},58,[296,6040,822],{"class":698},[296,6042,732],{"class":309},[296,6044,735],{"class":313},[296,6046,501],{"class":309},[296,6048,6050,6052],{"class":298,"line":6049},59,[296,6051,837],{"class":698},[296,6053,724],{"class":309},[296,6055,6057,6059,6061,6063],{"class":298,"line":6056},60,[296,6058,845],{"class":327},[296,6060,848],{"class":331},[296,6062,328],{"class":327},[296,6064,6065],{"class":309},": {},\n",[296,6067,6069,6071,6073,6075],{"class":298,"line":6068},61,[296,6070,845],{"class":327},[296,6072,864],{"class":331},[296,6074,328],{"class":327},[296,6076,6077],{"class":309},": {}\n",[296,6079,6081],{"class":298,"line":6080},62,[296,6082,5449],{"class":309},[296,6084,6086,6089,6091],{"class":298,"line":6085},63,[296,6087,6088],{"class":698},"      anchorLinks",[296,6090,732],{"class":309},[296,6092,6093],{"class":313},"false\n",[296,6095,6097],{"class":298,"line":6096},64,[296,6098,774],{"class":309},[296,6100,6102,6104],{"class":298,"line":6101},65,[296,6103,894],{"class":698},[296,6105,724],{"class":309},[296,6107,6109,6111],{"class":298,"line":6108},66,[296,6110,902],{"class":698},[296,6112,724],{"class":309},[296,6114,6116,6118,6120,6122,6124,6126],{"class":298,"line":6115},67,[296,6117,910],{"class":698},[296,6119,732],{"class":309},[296,6121,328],{"class":327},[296,6123,917],{"class":331},[296,6125,328],{"class":327},[296,6127,501],{"class":309},[296,6129,6131,6133,6135,6137,6139,6141,6143,6145,6147,6149],{"class":298,"line":6130},68,[296,6132,927],{"class":698},[296,6134,732],{"class":309},[296,6136,932],{"class":359},[296,6138,413],{"class":309},[296,6140,937],{"class":317},[296,6142,940],{"class":309},[296,6144,328],{"class":327},[296,6146,945],{"class":331},[296,6148,328],{"class":327},[296,6150,438],{"class":309},[296,6152,6154],{"class":298,"line":6153},69,[296,6155,878],{"class":309},[296,6157,6159],{"class":298,"line":6158},70,[296,6160,964],{"class":309},[296,6162,6164],{"class":298,"line":6163},71,[296,6165,5670],{"class":309},[296,6167,6169],{"class":298,"line":6168},72,[296,6170,445],{"emptyLinePlaceholder":444},[296,6172,6174,6177],{"class":298,"line":6173},73,[296,6175,6176],{"class":698},"  runtimeConfig",[296,6178,724],{"class":309},[296,6180,6182],{"class":298,"line":6181},74,[296,6183,6184],{"class":302},"    // Server-side only (private)\n",[296,6186,6188,6191,6193,6195,6197,6200,6202,6205,6207,6209],{"class":298,"line":6187},75,[296,6189,6190],{"class":698},"    resendApiKey",[296,6192,732],{"class":309},[296,6194,2309],{"class":317},[296,6196,396],{"class":309},[296,6198,6199],{"class":317},"env",[296,6201,396],{"class":309},[296,6203,6204],{"class":317},"RESEND_API_KEY",[296,6206,426],{"class":349},[296,6208,429],{"class":327},[296,6210,501],{"class":309},[296,6212,6214,6217,6219,6221,6223,6225,6227,6230,6232,6234,6237,6239],{"class":298,"line":6213},76,[296,6215,6216],{"class":698},"    stockSummaryEmailFrom",[296,6218,732],{"class":309},[296,6220,2309],{"class":317},[296,6222,396],{"class":309},[296,6224,6199],{"class":317},[296,6226,396],{"class":309},[296,6228,6229],{"class":317},"STOCK_SUMMARY_EMAIL_FROM",[296,6231,426],{"class":349},[296,6233,1727],{"class":327},[296,6235,6236],{"class":331},"stock-summary@yourdomain.com",[296,6238,416],{"class":327},[296,6240,501],{"class":309},[296,6242,6244,6247,6249,6251,6253,6255,6257,6260,6262,6264],{"class":298,"line":6243},77,[296,6245,6246],{"class":698},"    stockSummaryEmailTo",[296,6248,732],{"class":309},[296,6250,2309],{"class":317},[296,6252,396],{"class":309},[296,6254,6199],{"class":317},[296,6256,396],{"class":309},[296,6258,6259],{"class":317},"STOCK_SUMMARY_EMAIL_TO",[296,6261,426],{"class":349},[296,6263,429],{"class":327},[296,6265,501],{"class":309},[296,6267,6269],{"class":298,"line":6268},78,[296,6270,6271],{"class":302},"    // Public (client + server)\n",[296,6273,6275,6278],{"class":298,"line":6274},79,[296,6276,6277],{"class":698},"    public",[296,6279,724],{"class":309},[296,6281,6283,6286,6288,6290,6292,6294,6296,6299,6302,6304,6307],{"class":298,"line":6282},80,[296,6284,6285],{"class":698},"      apiBase",[296,6287,732],{"class":309},[296,6289,2309],{"class":317},[296,6291,396],{"class":309},[296,6293,6199],{"class":317},[296,6295,396],{"class":309},[296,6297,6298],{"class":317},"NUXT_PUBLIC_API_BASE",[296,6300,6301],{"class":349}," ??",[296,6303,1013],{"class":327},[296,6305,6306],{"class":331},"http://localhost:4000/api",[296,6308,1018],{"class":327},[296,6310,6312],{"class":298,"line":6311},81,[296,6313,964],{"class":309},[296,6315,6317],{"class":298,"line":6316},82,[296,6318,5670],{"class":309},[296,6320,6322],{"class":298,"line":6321},83,[296,6323,445],{"emptyLinePlaceholder":444},[296,6325,6327,6329],{"class":298,"line":6326},84,[296,6328,1894],{"class":698},[296,6330,724],{"class":309},[296,6332,6334,6336,6338,6340,6342,6344,6346,6348],{"class":298,"line":6333},85,[296,6335,1901],{"class":327},[296,6337,1904],{"class":331},[296,6339,416],{"class":327},[296,6341,732],{"class":309},[296,6343,1911],{"class":349},[296,6345,1914],{"class":309},[296,6347,1917],{"class":317},[296,6349,1920],{"class":309},[296,6351,6353,6355,6357,6359,6361,6363,6365,6367,6369,6371,6373],{"class":298,"line":6352},86,[296,6354,1925],{"class":349},[296,6356,1928],{"class":317},[296,6358,356],{"class":309},[296,6360,1933],{"class":359},[296,6362,413],{"class":309},[296,6364,937],{"class":317},[296,6366,1002],{"class":309},[296,6368,1727],{"class":327},[296,6370,945],{"class":331},[296,6372,416],{"class":327},[296,6374,438],{"class":309},[296,6376,6378,6380,6382,6384,6386,6388,6390,6392,6394,6396,6398,6400,6402],{"class":298,"line":6377},87,[296,6379,1925],{"class":349},[296,6381,1954],{"class":317},[296,6383,356],{"class":309},[296,6385,1933],{"class":359},[296,6387,413],{"class":309},[296,6389,1917],{"class":317},[296,6391,396],{"class":309},[296,6393,1967],{"class":317},[296,6395,396],{"class":309},[296,6397,1972],{"class":317},[296,6399,396],{"class":309},[296,6401,1954],{"class":317},[296,6403,438],{"class":309},[296,6405,6407],{"class":298,"line":6406},88,[296,6408,445],{"emptyLinePlaceholder":444},[296,6410,6412,6414,6416,6418,6420,6422,6424,6426,6428,6430,6432,6434],{"class":298,"line":6411},89,[296,6413,1992],{"class":349},[296,6415,1995],{"class":349},[296,6417,1998],{"class":359},[296,6419,413],{"class":309},[296,6421,2003],{"class":317},[296,6423,732],{"class":309},[296,6425,1136],{"class":2008},[296,6427,940],{"class":309},[296,6429,2013],{"class":317},[296,6431,2016],{"class":309},[296,6433,2019],{"class":327},[296,6435,2022],{"class":309},[296,6437,6439,6442,6445,6447,6449,6451,6453,6455,6457,6460,6463,6465,6467],{"class":298,"line":6438},90,[296,6440,6441],{"class":349},"        const ",[296,6443,6444],{"class":317},"entries",[296,6446,356],{"class":309},[296,6448,470],{"class":313},[296,6450,5326],{"class":359},[296,6452,413],{"class":309},[296,6454,2003],{"class":317},[296,6456,1002],{"class":309},[296,6458,6459],{"class":309}," { ",[296,6461,6462],{"class":698},"withFileTypes",[296,6464,732],{"class":309},[296,6466,735],{"class":313},[296,6468,1599],{"class":309},[296,6470,6472],{"class":298,"line":6471},91,[296,6473,445],{"emptyLinePlaceholder":444},[296,6475,6477,6480,6482,6484,6487,6490,6493],{"class":298,"line":6476},92,[296,6478,6479],{"class":313},"        for",[296,6481,1914],{"class":309},[296,6483,350],{"class":349},[296,6485,6486],{"class":317},"entry",[296,6488,6489],{"class":349}," of",[296,6491,6492],{"class":317}," entries",[296,6494,2022],{"class":309},[296,6496,6498,6501,6504,6506,6508,6510,6512,6514,6517,6519,6521],{"class":298,"line":6497},93,[296,6499,6500],{"class":349},"          const ",[296,6502,6503],{"class":317},"sourcePath",[296,6505,356],{"class":309},[296,6507,2304],{"class":359},[296,6509,413],{"class":309},[296,6511,2003],{"class":317},[296,6513,1002],{"class":309},[296,6515,6516],{"class":317}," entry",[296,6518,396],{"class":309},[296,6520,5513],{"class":317},[296,6522,438],{"class":309},[296,6524,6526,6528,6531,6533,6535,6537,6539,6541,6543,6545,6547],{"class":298,"line":6525},94,[296,6527,6500],{"class":349},[296,6529,6530],{"class":317},"currentRelativePath",[296,6532,356],{"class":309},[296,6534,2304],{"class":359},[296,6536,413],{"class":309},[296,6538,2013],{"class":317},[296,6540,1002],{"class":309},[296,6542,6516],{"class":317},[296,6544,396],{"class":309},[296,6546,5513],{"class":317},[296,6548,438],{"class":309},[296,6550,6552],{"class":298,"line":6551},95,[296,6553,445],{"emptyLinePlaceholder":444},[296,6555,6557,6560,6562,6564,6566,6569],{"class":298,"line":6556},96,[296,6558,6559],{"class":313},"          if",[296,6561,1914],{"class":309},[296,6563,6486],{"class":317},[296,6565,396],{"class":309},[296,6567,6568],{"class":359},"isDirectory",[296,6570,6571],{"class":309},"()) {\n",[296,6573,6575,6578,6580,6582,6584,6586,6588],{"class":298,"line":6574},97,[296,6576,6577],{"class":313},"            await",[296,6579,1998],{"class":359},[296,6581,413],{"class":309},[296,6583,6503],{"class":317},[296,6585,940],{"class":309},[296,6587,6530],{"class":317},[296,6589,438],{"class":309},[296,6591,6593,6596,6599,6602,6604,6606,6608,6610,6612,6614,6616,6618,6620,6622,6624,6626,6628,6630,6632,6634,6637,6639,6641,6643,6645,6647,6650,6652,6654,6656,6658],{"class":298,"line":6592},98,[296,6594,6595],{"class":309},"          } ",[296,6597,6598],{"class":313},"else",[296,6600,6601],{"class":313}," if",[296,6603,1914],{"class":309},[296,6605,388],{"class":327},[296,6607,2208],{"class":2163},[296,6609,413],{"class":309},[296,6611,2213],{"class":2176},[296,6613,2216],{"class":349},[296,6615,2219],{"class":2176},[296,6617,2216],{"class":349},[296,6619,2224],{"class":2176},[296,6621,2216],{"class":349},[296,6623,2229],{"class":2176},[296,6625,2216],{"class":349},[296,6627,2234],{"class":2176},[296,6629,2216],{"class":349},[296,6631,2239],{"class":2176},[296,6633,2216],{"class":349},[296,6635,6636],{"class":2176},"drawio",[296,6638,423],{"class":309},[296,6640,2245],{"class":313},[296,6642,388],{"class":327},[296,6644,2250],{"class":313},[296,6646,396],{"class":309},[296,6648,6649],{"class":359},"test",[296,6651,413],{"class":309},[296,6653,6486],{"class":317},[296,6655,396],{"class":309},[296,6657,5513],{"class":317},[296,6659,6660],{"class":309},")) {\n",[296,6662,6664,6667,6670,6672,6674,6676,6678,6680,6683],{"class":298,"line":6663},99,[296,6665,6666],{"class":349},"            const ",[296,6668,6669],{"class":317},"targetPath",[296,6671,356],{"class":309},[296,6673,2304],{"class":359},[296,6675,413],{"class":309},[296,6677,1954],{"class":317},[296,6679,1002],{"class":309},[296,6681,6682],{"class":317}," currentRelativePath",[296,6684,438],{"class":309},[296,6686,6688,6690,6693,6695,6697,6699,6701,6703,6705,6708,6710],{"class":298,"line":6687},100,[296,6689,6666],{"class":349},[296,6691,6692],{"class":317},"targetDir",[296,6694,356],{"class":309},[296,6696,2304],{"class":359},[296,6698,413],{"class":309},[296,6700,6669],{"class":317},[296,6702,1002],{"class":309},[296,6704,1727],{"class":327},[296,6706,6707],{"class":331},"..",[296,6709,416],{"class":327},[296,6711,438],{"class":309},[296,6713,6715],{"class":298,"line":6714},101,[296,6716,445],{"emptyLinePlaceholder":444},[296,6718,6720,6723,6725,6728,6731,6733,6735],{"class":298,"line":6719},102,[296,6721,6722],{"class":313},"            if",[296,6724,1914],{"class":309},[296,6726,6727],{"class":349},"!",[296,6729,6730],{"class":359},"existsSync",[296,6732,413],{"class":309},[296,6734,6692],{"class":317},[296,6736,6660],{"class":309},[296,6738,6740,6743,6745,6747,6749,6752,6755,6757,6759],{"class":298,"line":6739},103,[296,6741,6742],{"class":313},"              await",[296,6744,5321],{"class":359},[296,6746,413],{"class":309},[296,6748,6692],{"class":317},[296,6750,6751],{"class":309},", { ",[296,6753,6754],{"class":698},"recursive",[296,6756,732],{"class":309},[296,6758,735],{"class":313},[296,6760,1599],{"class":309},[296,6762,6764],{"class":298,"line":6763},104,[296,6765,6766],{"class":309},"            }\n",[296,6768,6770],{"class":298,"line":6769},105,[296,6771,445],{"emptyLinePlaceholder":444},[296,6773,6775,6777,6779,6781,6783,6785,6787],{"class":298,"line":6774},106,[296,6776,6577],{"class":313},[296,6778,5316],{"class":359},[296,6780,413],{"class":309},[296,6782,6503],{"class":317},[296,6784,940],{"class":309},[296,6786,6669],{"class":317},[296,6788,438],{"class":309},[296,6790,6792,6795,6797,6800,6802,6804,6807,6809,6811,6813,6815],{"class":298,"line":6791},107,[296,6793,6794],{"class":317},"            console",[296,6796,396],{"class":309},[296,6798,6799],{"class":359},"log",[296,6801,413],{"class":309},[296,6803,435],{"class":327},[296,6805,6806],{"class":331},"Copied file: ",[296,6808,391],{"class":313},[296,6810,6530],{"class":331},[296,6812,432],{"class":313},[296,6814,435],{"class":327},[296,6816,438],{"class":309},[296,6818,6820],{"class":298,"line":6819},108,[296,6821,6822],{"class":309},"          }\n",[296,6824,6826],{"class":298,"line":6825},109,[296,6827,6018],{"class":309},[296,6829,6831],{"class":298,"line":6830},110,[296,6832,878],{"class":309},[296,6834,6836],{"class":298,"line":6835},111,[296,6837,445],{"emptyLinePlaceholder":444},[296,6839,6841,6843,6845,6847,6849],{"class":298,"line":6840},112,[296,6842,2040],{"class":313},[296,6844,1998],{"class":359},[296,6846,413],{"class":309},[296,6848,1928],{"class":317},[296,6850,438],{"class":309},[296,6852,6854,6857,6859,6861,6863,6865,6868,6870],{"class":298,"line":6853},113,[296,6855,6856],{"class":317},"      console",[296,6858,396],{"class":309},[296,6860,6799],{"class":359},[296,6862,413],{"class":309},[296,6864,416],{"class":327},[296,6866,6867],{"class":331},"✓ Content images copied to public directory",[296,6869,416],{"class":327},[296,6871,438],{"class":309},[296,6873,6875],{"class":298,"line":6874},114,[296,6876,964],{"class":309},[296,6878,6880],{"class":298,"line":6879},115,[296,6881,970],{"class":309},[296,6883,6885],{"class":298,"line":6884},116,[296,6886,976],{"class":309},[182,6888,6890],{"id":6889},"contentconfigts",[137,6891,211],{},[130,6893,6895],{"className":675,"code":6894,"language":677,"meta":139,"style":139},"import { defineCollection, defineContentConfig } from \"@nuxt/content\"\nimport { z } from \"zod\"\n\nexport default defineContentConfig({\n  collections: {\n    pages: defineCollection({\n      type: \"page\",\n      source: \"**/*.{md,mdx,mdc}\",\n      schema: z.object({\n        title: z.string().optional(),\n        description: z.string().optional(),\n        path: z.string().optional(),\n        tags: z.array(z.string()).optional(),\n        publishedAt: z.coerce.date().optional(),\n        updatedAt: z.coerce.date().optional()\n      })\n    })\n  }\n})\n",[137,6896,6897,6919,6937,6941,6951,6957,6967,6981,6995,7009,7027,7045,7063,7089,7111,7133,7137,7141,7145],{"__ignoreMap":139},[296,6898,6899,6901,6903,6905,6907,6909,6911,6913,6915,6917],{"class":298,"line":299},[296,6900,993],{"class":313},[296,6902,996],{"class":309},[296,6904,999],{"class":317},[296,6906,1002],{"class":309},[296,6908,1005],{"class":317},[296,6910,465],{"class":309},[296,6912,1010],{"class":313},[296,6914,1013],{"class":327},[296,6916,707],{"class":331},[296,6918,1018],{"class":327},[296,6920,6921,6923,6925,6927,6929,6931,6933,6935],{"class":298,"line":306},[296,6922,993],{"class":313},[296,6924,996],{"class":309},[296,6926,1027],{"class":317},[296,6928,465],{"class":309},[296,6930,1010],{"class":313},[296,6932,1013],{"class":327},[296,6934,1036],{"class":331},[296,6936,1018],{"class":327},[296,6938,6939],{"class":298,"line":340},[296,6940,445],{"emptyLinePlaceholder":444},[296,6942,6943,6945,6947,6949],{"class":298,"line":346},[296,6944,684],{"class":313},[296,6946,687],{"class":313},[296,6948,1005],{"class":359},[296,6950,693],{"class":309},[296,6952,6953,6955],{"class":298,"line":366},[296,6954,1057],{"class":698},[296,6956,724],{"class":309},[296,6958,6959,6961,6963,6965],{"class":298,"line":441},[296,6960,1064],{"class":698},[296,6962,732],{"class":309},[296,6964,1069],{"class":359},[296,6966,693],{"class":309},[296,6968,6969,6971,6973,6975,6977,6979],{"class":298,"line":448},[296,6970,757],{"class":698},[296,6972,732],{"class":309},[296,6974,328],{"class":327},[296,6976,1082],{"class":331},[296,6978,328],{"class":327},[296,6980,501],{"class":309},[296,6982,6983,6985,6987,6989,6991,6993],{"class":298,"line":479},[296,6984,1091],{"class":698},[296,6986,732],{"class":309},[296,6988,328],{"class":327},[296,6990,1098],{"class":331},[296,6992,328],{"class":327},[296,6994,501],{"class":309},[296,6996,6997,6999,7001,7003,7005,7007],{"class":298,"line":504},[296,6998,1110],{"class":698},[296,7000,732],{"class":309},[296,7002,1115],{"class":317},[296,7004,396],{"class":309},[296,7006,1120],{"class":359},[296,7008,693],{"class":309},[296,7010,7011,7013,7015,7017,7019,7021,7023,7025],{"class":298,"line":526},[296,7012,1127],{"class":698},[296,7014,732],{"class":309},[296,7016,1115],{"class":317},[296,7018,396],{"class":309},[296,7020,1136],{"class":359},[296,7022,1139],{"class":309},[296,7024,1142],{"class":359},[296,7026,1145],{"class":309},[296,7028,7029,7031,7033,7035,7037,7039,7041,7043],{"class":298,"line":545},[296,7030,1150],{"class":698},[296,7032,732],{"class":309},[296,7034,1115],{"class":317},[296,7036,396],{"class":309},[296,7038,1136],{"class":359},[296,7040,1139],{"class":309},[296,7042,1142],{"class":359},[296,7044,1145],{"class":309},[296,7046,7047,7049,7051,7053,7055,7057,7059,7061],{"class":298,"line":555},[296,7048,1169],{"class":698},[296,7050,732],{"class":309},[296,7052,1115],{"class":317},[296,7054,396],{"class":309},[296,7056,1136],{"class":359},[296,7058,1139],{"class":309},[296,7060,1142],{"class":359},[296,7062,1145],{"class":309},[296,7064,7065,7067,7069,7071,7073,7075,7077,7079,7081,7083,7085,7087],{"class":298,"line":560},[296,7066,1188],{"class":698},[296,7068,732],{"class":309},[296,7070,1115],{"class":317},[296,7072,396],{"class":309},[296,7074,1197],{"class":359},[296,7076,413],{"class":309},[296,7078,1115],{"class":317},[296,7080,396],{"class":309},[296,7082,1136],{"class":359},[296,7084,1208],{"class":309},[296,7086,1142],{"class":359},[296,7088,1145],{"class":309},[296,7090,7091,7093,7095,7097,7099,7101,7103,7105,7107,7109],{"class":298,"line":570},[296,7092,1217],{"class":698},[296,7094,732],{"class":309},[296,7096,1115],{"class":317},[296,7098,396],{"class":309},[296,7100,1226],{"class":317},[296,7102,396],{"class":309},[296,7104,1231],{"class":359},[296,7106,1139],{"class":309},[296,7108,1142],{"class":359},[296,7110,1145],{"class":309},[296,7112,7113,7115,7117,7119,7121,7123,7125,7127,7129,7131],{"class":298,"line":575},[296,7114,1246],{"class":698},[296,7116,732],{"class":309},[296,7118,1115],{"class":317},[296,7120,396],{"class":309},[296,7122,1226],{"class":317},[296,7124,396],{"class":309},[296,7126,1231],{"class":359},[296,7128,1139],{"class":309},[296,7130,1142],{"class":359},[296,7132,363],{"class":309},[296,7134,7135],{"class":298,"line":585},[296,7136,1269],{"class":309},[296,7138,7139],{"class":298,"line":620},[296,7140,1274],{"class":309},[296,7142,7143],{"class":298,"line":842},[296,7144,970],{"class":309},[296,7146,7147],{"class":298,"line":859},[296,7148,976],{"class":309},[182,7150,7152],{"id":7151},"servermiddlewarecontent-imagests",[137,7153,2068],{},[130,7155,7157],{"className":675,"code":7156,"language":677,"meta":139,"style":139},"import { defineEventHandler, setResponseHeaders, sendStream } from 'h3'\nimport { createReadStream, existsSync, statSync } from 'node:fs'\nimport { join } from 'node:path'\n\nexport default defineEventHandler(async (event) => {\n  const url = event.node.req.url || ''\n  const pathname = url.split('?')[0]\n\n  const match = pathname.match(/^\\/(\\d{4}-\\d{2}-\\d{2})\\/([^/]+\\.(png|jpg|jpeg|gif|webp|svg|drawio))$/i)\n  if (!match) return\n\n  const [, dateDir, filename, ext] = match\n  const contentPath = join(process.cwd(), 'content', dateDir, filename)\n\n  if (!existsSync(contentPath)) return\n  if (!statSync(contentPath).isFile()) return\n\n  const mimeTypes: Record\u003Cstring, string> = {\n    png: 'image/png',\n    jpg: 'image/jpeg',\n    jpeg: 'image/jpeg',\n    gif: 'image/gif',\n    webp: 'image/webp',\n    svg: 'image/svg+xml',\n    drawio: 'application/xml'\n  }\n\n  const isDev = process.env.NODE_ENV === 'development'\n  const cacheControl = (ext === 'drawio' && isDev)\n    ? 'no-cache, no-store, must-revalidate'\n    : 'public, max-age=31536000'\n\n  setResponseHeaders(event, {\n    'Content-Type': mimeTypes[ext.toLowerCase()] || 'application/octet-stream',\n    'Cache-Control': cacheControl,\n    'X-Content-Type-Options': 'nosniff'\n  })\n\n  return sendStream(event, createReadStream(contentPath))\n})\n",[137,7158,7159,7186,7213,7231,7235,7257,7283,7315,7319,7414,7429,7433,7456,7492,7496,7514,7540,7544,7569,7585,7601,7616,7632,7648,7663,7677,7681,7685,7716,7745,7757,7769,7773,7786,7824,7839,7857,7862,7866,7886],{"__ignoreMap":139},[296,7160,7161,7163,7165,7167,7169,7172,7174,7176,7178,7180,7182,7184],{"class":298,"line":299},[296,7162,993],{"class":313},[296,7164,996],{"class":309},[296,7166,2082],{"class":317},[296,7168,1002],{"class":309},[296,7170,7171],{"class":317}," setResponseHeaders",[296,7173,1002],{"class":309},[296,7175,2350],{"class":317},[296,7177,465],{"class":309},[296,7179,1010],{"class":313},[296,7181,1727],{"class":327},[296,7183,76],{"class":331},[296,7185,2735],{"class":327},[296,7187,7188,7190,7192,7194,7196,7198,7200,7203,7205,7207,7209,7211],{"class":298,"line":306},[296,7189,993],{"class":313},[296,7191,996],{"class":309},[296,7193,2359],{"class":317},[296,7195,1002],{"class":309},[296,7197,5346],{"class":317},[296,7199,1002],{"class":309},[296,7201,7202],{"class":317}," statSync",[296,7204,465],{"class":309},[296,7206,1010],{"class":313},[296,7208,1727],{"class":327},[296,7210,5355],{"class":331},[296,7212,2735],{"class":327},[296,7214,7215,7217,7219,7221,7223,7225,7227,7229],{"class":298,"line":340},[296,7216,993],{"class":313},[296,7218,996],{"class":309},[296,7220,2304],{"class":317},[296,7222,465],{"class":309},[296,7224,1010],{"class":313},[296,7226,1727],{"class":327},[296,7228,5305],{"class":331},[296,7230,2735],{"class":327},[296,7232,7233],{"class":298,"line":346},[296,7234,445],{"emptyLinePlaceholder":444},[296,7236,7237,7239,7241,7243,7245,7247,7249,7251,7253,7255],{"class":298,"line":366},[296,7238,684],{"class":313},[296,7240,687],{"class":313},[296,7242,2082],{"class":359},[296,7244,413],{"class":309},[296,7246,1911],{"class":349},[296,7248,1914],{"class":309},[296,7250,2088],{"class":317},[296,7252,423],{"class":309},[296,7254,382],{"class":309},[296,7256,2095],{"class":309},[296,7258,7259,7261,7263,7265,7267,7269,7271,7273,7275,7277,7279,7281],{"class":298,"line":441},[296,7260,2100],{"class":349},[296,7262,2103],{"class":317},[296,7264,356],{"class":309},[296,7266,2108],{"class":317},[296,7268,396],{"class":309},[296,7270,2113],{"class":317},[296,7272,396],{"class":309},[296,7274,2118],{"class":317},[296,7276,396],{"class":309},[296,7278,2103],{"class":317},[296,7280,2125],{"class":349},[296,7282,2128],{"class":327},[296,7284,7285,7287,7290,7292,7294,7296,7299,7301,7303,7306,7308,7311,7313],{"class":298,"line":448},[296,7286,2100],{"class":349},[296,7288,7289],{"class":317},"pathname",[296,7291,356],{"class":309},[296,7293,2149],{"class":317},[296,7295,396],{"class":309},[296,7297,7298],{"class":359},"split",[296,7300,413],{"class":309},[296,7302,416],{"class":327},[296,7304,7305],{"class":331},"?",[296,7307,416],{"class":327},[296,7309,7310],{"class":309},")[",[296,7312,2970],{"class":1595},[296,7314,2875],{"class":309},[296,7316,7317],{"class":298,"line":479},[296,7318,445],{"emptyLinePlaceholder":444},[296,7320,7321,7323,7325,7327,7330,7332,7334,7336,7338,7340,7342,7344,7346,7348,7350,7352,7354,7356,7358,7360,7362,7364,7366,7368,7370,7372,7374,7376,7378,7380,7382,7384,7386,7388,7390,7392,7394,7396,7398,7400,7402,7404,7406,7408,7410,7412],{"class":298,"line":504},[296,7322,2100],{"class":349},[296,7324,2144],{"class":317},[296,7326,356],{"class":309},[296,7328,7329],{"class":317}," pathname",[296,7331,396],{"class":309},[296,7333,2144],{"class":359},[296,7335,413],{"class":309},[296,7337,388],{"class":327},[296,7339,2160],{"class":313},[296,7341,2164],{"class":2163},[296,7343,413],{"class":309},[296,7345,2170],{"class":2169},[296,7347,2173],{"class":1595},[296,7349,1592],{"class":2176},[296,7351,2170],{"class":2169},[296,7353,2181],{"class":1595},[296,7355,1592],{"class":2176},[296,7357,2170],{"class":2169},[296,7359,2181],{"class":1595},[296,7361,423],{"class":309},[296,7363,2164],{"class":2163},[296,7365,2194],{"class":309},[296,7367,2160],{"class":349},[296,7369,388],{"class":2199},[296,7371,2202],{"class":309},[296,7373,2205],{"class":1595},[296,7375,2208],{"class":2163},[296,7377,413],{"class":309},[296,7379,2213],{"class":2176},[296,7381,2216],{"class":349},[296,7383,2219],{"class":2176},[296,7385,2216],{"class":349},[296,7387,2224],{"class":2176},[296,7389,2216],{"class":349},[296,7391,2229],{"class":2176},[296,7393,2216],{"class":349},[296,7395,2234],{"class":2176},[296,7397,2216],{"class":349},[296,7399,2239],{"class":2176},[296,7401,2216],{"class":349},[296,7403,6636],{"class":2176},[296,7405,2242],{"class":309},[296,7407,2245],{"class":313},[296,7409,388],{"class":327},[296,7411,2250],{"class":313},[296,7413,438],{"class":309},[296,7415,7416,7418,7420,7422,7424,7426],{"class":298,"line":526},[296,7417,2261],{"class":313},[296,7419,1914],{"class":309},[296,7421,6727],{"class":349},[296,7423,2144],{"class":317},[296,7425,423],{"class":309},[296,7427,7428],{"class":313}," return\n",[296,7430,7431],{"class":298,"line":545},[296,7432,445],{"emptyLinePlaceholder":444},[296,7434,7435,7437,7439,7441,7443,7445,7447,7450,7452,7454],{"class":298,"line":555},[296,7436,2100],{"class":349},[296,7438,2277],{"class":309},[296,7440,2280],{"class":317},[296,7442,1002],{"class":309},[296,7444,2285],{"class":317},[296,7446,1002],{"class":309},[296,7448,7449],{"class":317}," ext",[296,7451,2202],{"class":309},[296,7453,356],{"class":309},[296,7455,2292],{"class":317},[296,7457,7458,7460,7462,7464,7466,7468,7470,7472,7474,7476,7478,7480,7482,7484,7486,7488,7490],{"class":298,"line":560},[296,7459,2100],{"class":349},[296,7461,2299],{"class":317},[296,7463,356],{"class":309},[296,7465,2304],{"class":359},[296,7467,413],{"class":309},[296,7469,2309],{"class":317},[296,7471,396],{"class":309},[296,7473,2314],{"class":359},[296,7475,2317],{"class":309},[296,7477,1727],{"class":327},[296,7479,945],{"class":331},[296,7481,416],{"class":327},[296,7483,1002],{"class":309},[296,7485,2280],{"class":317},[296,7487,1002],{"class":309},[296,7489,2285],{"class":317},[296,7491,438],{"class":309},[296,7493,7494],{"class":298,"line":570},[296,7495,445],{"emptyLinePlaceholder":444},[296,7497,7498,7500,7502,7504,7506,7508,7510,7512],{"class":298,"line":575},[296,7499,2261],{"class":313},[296,7501,1914],{"class":309},[296,7503,6727],{"class":349},[296,7505,6730],{"class":359},[296,7507,413],{"class":309},[296,7509,2299],{"class":317},[296,7511,2242],{"class":309},[296,7513,7428],{"class":313},[296,7515,7516,7518,7520,7522,7525,7527,7529,7532,7535,7538],{"class":298,"line":585},[296,7517,2261],{"class":313},[296,7519,1914],{"class":309},[296,7521,6727],{"class":349},[296,7523,7524],{"class":359},"statSync",[296,7526,413],{"class":309},[296,7528,2299],{"class":317},[296,7530,7531],{"class":309},").",[296,7533,7534],{"class":359},"isFile",[296,7536,7537],{"class":309},"())",[296,7539,7428],{"class":313},[296,7541,7542],{"class":298,"line":620},[296,7543,445],{"emptyLinePlaceholder":444},[296,7545,7546,7548,7551,7553,7556,7558,7560,7562,7564,7567],{"class":298,"line":842},[296,7547,2100],{"class":349},[296,7549,7550],{"class":317},"mimeTypes",[296,7552,732],{"class":309},[296,7554,7555],{"class":2008},"Record",[296,7557,310],{"class":309},[296,7559,1136],{"class":2008},[296,7561,940],{"class":309},[296,7563,1136],{"class":2008},[296,7565,7566],{"class":309},"> =",[296,7568,2095],{"class":309},[296,7570,7571,7574,7576,7578,7581,7583],{"class":298,"line":859},[296,7572,7573],{"class":698},"    png",[296,7575,732],{"class":309},[296,7577,416],{"class":327},[296,7579,7580],{"class":331},"image/png",[296,7582,416],{"class":327},[296,7584,501],{"class":309},[296,7586,7587,7590,7592,7594,7597,7599],{"class":298,"line":875},[296,7588,7589],{"class":698},"    jpg",[296,7591,732],{"class":309},[296,7593,416],{"class":327},[296,7595,7596],{"class":331},"image/jpeg",[296,7598,416],{"class":327},[296,7600,501],{"class":309},[296,7602,7603,7606,7608,7610,7612,7614],{"class":298,"line":881},[296,7604,7605],{"class":698},"    jpeg",[296,7607,732],{"class":309},[296,7609,416],{"class":327},[296,7611,7596],{"class":331},[296,7613,416],{"class":327},[296,7615,501],{"class":309},[296,7617,7618,7621,7623,7625,7628,7630],{"class":298,"line":886},[296,7619,7620],{"class":698},"    gif",[296,7622,732],{"class":309},[296,7624,416],{"class":327},[296,7626,7627],{"class":331},"image/gif",[296,7629,416],{"class":327},[296,7631,501],{"class":309},[296,7633,7634,7637,7639,7641,7644,7646],{"class":298,"line":891},[296,7635,7636],{"class":698},"    webp",[296,7638,732],{"class":309},[296,7640,416],{"class":327},[296,7642,7643],{"class":331},"image/webp",[296,7645,416],{"class":327},[296,7647,501],{"class":309},[296,7649,7650,7653,7655,7657,7659,7661],{"class":298,"line":899},[296,7651,7652],{"class":698},"    svg",[296,7654,732],{"class":309},[296,7656,416],{"class":327},[296,7658,5638],{"class":331},[296,7660,416],{"class":327},[296,7662,501],{"class":309},[296,7664,7665,7668,7670,7672,7675],{"class":298,"line":907},[296,7666,7667],{"class":698},"    drawio",[296,7669,732],{"class":309},[296,7671,416],{"class":327},[296,7673,7674],{"class":331},"application/xml",[296,7676,2735],{"class":327},[296,7678,7679],{"class":298,"line":924},[296,7680,970],{"class":309},[296,7682,7683],{"class":298,"line":956},[296,7684,445],{"emptyLinePlaceholder":444},[296,7686,7687,7689,7692,7694,7697,7699,7701,7703,7706,7709,7711,7714],{"class":298,"line":961},[296,7688,2100],{"class":349},[296,7690,7691],{"class":317},"isDev",[296,7693,356],{"class":309},[296,7695,7696],{"class":317}," process",[296,7698,396],{"class":309},[296,7700,6199],{"class":317},[296,7702,396],{"class":309},[296,7704,7705],{"class":317},"NODE_ENV",[296,7707,7708],{"class":349}," === ",[296,7710,416],{"class":327},[296,7712,7713],{"class":331},"development",[296,7715,2735],{"class":327},[296,7717,7718,7720,7723,7725,7727,7730,7732,7734,7736,7738,7741,7743],{"class":298,"line":967},[296,7719,2100],{"class":349},[296,7721,7722],{"class":317},"cacheControl",[296,7724,356],{"class":309},[296,7726,1914],{"class":309},[296,7728,7729],{"class":317},"ext",[296,7731,7708],{"class":349},[296,7733,416],{"class":327},[296,7735,6636],{"class":331},[296,7737,416],{"class":327},[296,7739,7740],{"class":349}," && ",[296,7742,7691],{"class":317},[296,7744,438],{"class":309},[296,7746,7747,7750,7752,7755],{"class":298,"line":973},[296,7748,7749],{"class":349},"    ?",[296,7751,1727],{"class":327},[296,7753,7754],{"class":331},"no-cache, no-store, must-revalidate",[296,7756,2735],{"class":327},[296,7758,7759,7762,7764,7767],{"class":298,"line":5702},[296,7760,7761],{"class":349},"    :",[296,7763,1727],{"class":327},[296,7765,7766],{"class":331},"public, max-age=31536000",[296,7768,2735],{"class":327},[296,7770,7771],{"class":298,"line":5716},[296,7772,445],{"emptyLinePlaceholder":444},[296,7774,7775,7778,7780,7782,7784],{"class":298,"line":5721},[296,7776,7777],{"class":359},"  setResponseHeaders",[296,7779,413],{"class":309},[296,7781,2088],{"class":317},[296,7783,1002],{"class":309},[296,7785,2095],{"class":309},[296,7787,7788,7790,7793,7795,7797,7799,7802,7804,7806,7809,7812,7815,7817,7820,7822],{"class":298,"line":5726},[296,7789,1901],{"class":327},[296,7791,7792],{"class":331},"Content-Type",[296,7794,416],{"class":327},[296,7796,732],{"class":309},[296,7798,7550],{"class":317},[296,7800,7801],{"class":309},"[",[296,7803,7729],{"class":317},[296,7805,396],{"class":309},[296,7807,7808],{"class":359},"toLowerCase",[296,7810,7811],{"class":309},"()] ",[296,7813,7814],{"class":349},"||",[296,7816,1727],{"class":327},[296,7818,7819],{"class":331},"application/octet-stream",[296,7821,416],{"class":327},[296,7823,501],{"class":309},[296,7825,7826,7828,7831,7833,7835,7837],{"class":298,"line":5733},[296,7827,1901],{"class":327},[296,7829,7830],{"class":331},"Cache-Control",[296,7832,416],{"class":327},[296,7834,732],{"class":309},[296,7836,7722],{"class":317},[296,7838,501],{"class":309},[296,7840,7841,7843,7846,7848,7850,7852,7855],{"class":298,"line":5744},[296,7842,1901],{"class":327},[296,7844,7845],{"class":331},"X-Content-Type-Options",[296,7847,416],{"class":327},[296,7849,732],{"class":309},[296,7851,416],{"class":327},[296,7853,7854],{"class":331},"nosniff",[296,7856,2735],{"class":327},[296,7858,7859],{"class":298,"line":5751},[296,7860,7861],{"class":309},"  })\n",[296,7863,7864],{"class":298,"line":5764},[296,7865,445],{"emptyLinePlaceholder":444},[296,7867,7868,7870,7872,7874,7876,7878,7880,7882,7884],{"class":298,"line":5769},[296,7869,2953],{"class":313},[296,7871,2350],{"class":359},[296,7873,413],{"class":309},[296,7875,2088],{"class":317},[296,7877,1002],{"class":309},[296,7879,2359],{"class":359},[296,7881,413],{"class":309},[296,7883,2299],{"class":317},[296,7885,2366],{"class":309},[296,7887,7888],{"class":298,"line":5776},[296,7889,976],{"class":309},[76,7891,7893],{"id":7892},"ステップ6-コンポーネント作成","ステップ6: コンポーネント作成",[182,7895,7897],{"id":7896},"appcomponentsbreadcrumbvue",[137,7898,7899],{},"app/components/Breadcrumb.vue",[130,7901,7903],{"className":290,"code":7902,"language":292,"meta":139,"style":139},"\u003Cscript setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nconst route = useRoute();\n\ninterface BreadcrumbItem {\n  label: string;\n  path: string;\n}\n\nconst breadcrumbs = computed\u003CBreadcrumbItem[]>(() => {\n  const path = route.path;\n  const segments = path.split('/').filter(Boolean);\n\n  const items: BreadcrumbItem[] = [\n    { label: 'Home', path: '/' }\n  ];\n\n  let currentPath = '';\n  segments.forEach((segment) => {\n    currentPath += `/${segment}`;\n    items.push({\n      label: decodeURIComponent(segment),\n      path: currentPath\n    });\n  });\n\n  return items;\n});\n\u003C/script>\n\n\u003Ctemplate>\n  \u003Cnav class=\"breadcrumb\" aria-label=\"パンくずリスト\">\n    \u003Col class=\"breadcrumb-list\">\n      \u003Cli v-for=\"(item, index) in breadcrumbs\" :key=\"item.path\" class=\"breadcrumb-item\">\n        \u003CNuxtLink\n          v-if=\"index \u003C breadcrumbs.length - 1\"\n          :to=\"item.path\"\n          class=\"breadcrumb-link\"\n        >\n          {{ item.label }}\n        \u003C/NuxtLink>\n        \u003Cspan v-else class=\"breadcrumb-current\" aria-current=\"page\">\n          {{ item.label }}\n        \u003C/span>\n        \u003Cspan v-if=\"index \u003C breadcrumbs.length - 1\" class=\"breadcrumb-separator\" aria-hidden=\"true\">/\u003C/span>\n      \u003C/li>\n    \u003C/ol>\n  \u003C/nav>\n\u003C/template>\n\n\u003Cstyle scoped>\n.breadcrumb {\n  margin-bottom: 1.5rem;\n}\n\n.breadcrumb-list {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  gap: 0.5rem;\n  list-style: none;\n  margin: 0;\n  padding: 0;\n  font-size: 0.9rem;\n}\n\n.breadcrumb-item {\n  display: flex;\n  align-items: center;\n  gap: 0.5rem;\n}\n\n.breadcrumb-link {\n  color: #2563eb;\n  text-decoration: none;\n  transition: color 0.2s;\n}\n\n.breadcrumb-link:hover {\n  color: #1d4ed8;\n  text-decoration: underline;\n}\n\n.breadcrumb-current {\n  color: #6b7280;\n  font-weight: 500;\n}\n\n.breadcrumb-separator {\n  color: #9ca3af;\n  user-select: none;\n}\n\u003C/style>\n",[137,7904,7905,7925,7945,7949,7962,7966,7976,7987,7997,8001,8005,8028,8045,8080,8084,8101,8132,8137,8141,8155,8176,8198,8210,8227,8237,8242,8247,8251,8260,8265,8273,8277,8285,8318,8337,8378,8385,8399,8412,8426,8431,8436,8444,8477,8481,8489,8537,8545,8553,8561,8569,8573,8585,8593,8608,8612,8616,8624,8636,8648,8660,8674,8686,8698,8709,8723,8727,8731,8739,8749,8759,8771,8775,8779,8787,8802,8813,8831,8835,8839,8852,8865,8876,8880,8884,8892,8905,8917,8921,8925,8933,8946,8957,8961],{"__ignoreMap":139},[296,7906,7907,7909,7911,7913,7915,7917,7919,7921,7923],{"class":298,"line":299},[296,7908,310],{"class":309},[296,7910,314],{"class":313},[296,7912,318],{"class":317},[296,7914,321],{"class":317},[296,7916,324],{"class":309},[296,7918,328],{"class":327},[296,7920,332],{"class":331},[296,7922,328],{"class":327},[296,7924,337],{"class":309},[296,7926,7927,7929,7931,7933,7935,7937,7939,7941,7943],{"class":298,"line":306},[296,7928,993],{"class":313},[296,7930,996],{"class":309},[296,7932,376],{"class":317},[296,7934,465],{"class":309},[296,7936,1010],{"class":313},[296,7938,1013],{"class":327},[296,7940,292],{"class":331},[296,7942,328],{"class":327},[296,7944,1740],{"class":309},[296,7946,7947],{"class":298,"line":340},[296,7948,445],{"emptyLinePlaceholder":444},[296,7950,7951,7953,7955,7957,7959],{"class":298,"line":346},[296,7952,350],{"class":349},[296,7954,353],{"class":317},[296,7956,356],{"class":309},[296,7958,360],{"class":359},[296,7960,7961],{"class":309},"();\n",[296,7963,7964],{"class":298,"line":366},[296,7965,445],{"emptyLinePlaceholder":444},[296,7967,7968,7971,7974],{"class":298,"line":441},[296,7969,7970],{"class":349},"interface",[296,7972,7973],{"class":2008}," BreadcrumbItem",[296,7975,2095],{"class":309},[296,7977,7978,7981,7983,7985],{"class":298,"line":448},[296,7979,7980],{"class":317},"  label",[296,7982,732],{"class":309},[296,7984,1136],{"class":2008},[296,7986,1740],{"class":309},[296,7988,7989,7991,7993,7995],{"class":298,"line":479},[296,7990,1347],{"class":317},[296,7992,732],{"class":309},[296,7994,1136],{"class":2008},[296,7996,1740],{"class":309},[296,7998,7999],{"class":298,"line":504},[296,8000,2986],{"class":309},[296,8002,8003],{"class":298,"line":526},[296,8004,445],{"emptyLinePlaceholder":444},[296,8006,8007,8009,8012,8014,8016,8018,8021,8024,8026],{"class":298,"line":545},[296,8008,350],{"class":349},[296,8010,8011],{"class":317},"breadcrumbs",[296,8013,356],{"class":309},[296,8015,376],{"class":359},[296,8017,310],{"class":309},[296,8019,8020],{"class":2008},"BreadcrumbItem",[296,8022,8023],{"class":309},"[]>(()",[296,8025,382],{"class":309},[296,8027,2095],{"class":309},[296,8029,8030,8032,8034,8036,8039,8041,8043],{"class":298,"line":555},[296,8031,2100],{"class":349},[296,8033,532],{"class":317},[296,8035,356],{"class":309},[296,8037,8038],{"class":317}," route",[296,8040,396],{"class":309},[296,8042,532],{"class":317},[296,8044,1740],{"class":309},[296,8046,8047,8049,8052,8054,8056,8058,8060,8062,8064,8066,8068,8070,8073,8075,8078],{"class":298,"line":560},[296,8048,2100],{"class":349},[296,8050,8051],{"class":317},"segments",[296,8053,356],{"class":309},[296,8055,1722],{"class":317},[296,8057,396],{"class":309},[296,8059,7298],{"class":359},[296,8061,413],{"class":309},[296,8063,416],{"class":327},[296,8065,388],{"class":331},[296,8067,416],{"class":327},[296,8069,7531],{"class":309},[296,8071,8072],{"class":359},"filter",[296,8074,413],{"class":309},[296,8076,8077],{"class":317},"Boolean",[296,8079,1410],{"class":309},[296,8081,8082],{"class":298,"line":570},[296,8083,445],{"emptyLinePlaceholder":444},[296,8085,8086,8088,8091,8093,8095,8098],{"class":298,"line":575},[296,8087,2100],{"class":349},[296,8089,8090],{"class":317},"items",[296,8092,732],{"class":309},[296,8094,8020],{"class":2008},[296,8096,8097],{"class":309},"[] =",[296,8099,8100],{"class":309}," [\n",[296,8102,8103,8106,8109,8111,8113,8116,8118,8120,8122,8124,8126,8128,8130],{"class":298,"line":585},[296,8104,8105],{"class":309},"    { ",[296,8107,8108],{"class":698},"label",[296,8110,732],{"class":309},[296,8112,416],{"class":327},[296,8114,8115],{"class":331},"Home",[296,8117,416],{"class":327},[296,8119,940],{"class":309},[296,8121,532],{"class":698},[296,8123,732],{"class":309},[296,8125,416],{"class":327},[296,8127,388],{"class":331},[296,8129,416],{"class":327},[296,8131,5598],{"class":309},[296,8133,8134],{"class":298,"line":620},[296,8135,8136],{"class":309},"  ];\n",[296,8138,8139],{"class":298,"line":842},[296,8140,445],{"emptyLinePlaceholder":444},[296,8142,8143,8146,8149,8151,8153],{"class":298,"line":859},[296,8144,8145],{"class":349},"  let ",[296,8147,8148],{"class":317},"currentPath",[296,8150,356],{"class":309},[296,8152,429],{"class":327},[296,8154,1740],{"class":309},[296,8156,8157,8160,8162,8165,8167,8170,8172,8174],{"class":298,"line":875},[296,8158,8159],{"class":317},"  segments",[296,8161,396],{"class":309},[296,8163,8164],{"class":359},"forEach",[296,8166,2085],{"class":309},[296,8168,8169],{"class":317},"segment",[296,8171,423],{"class":309},[296,8173,382],{"class":309},[296,8175,2095],{"class":309},[296,8177,8178,8181,8184,8186,8188,8190,8192,8194,8196],{"class":298,"line":881},[296,8179,8180],{"class":317},"    currentPath",[296,8182,8183],{"class":349}," += ",[296,8185,435],{"class":327},[296,8187,388],{"class":331},[296,8189,391],{"class":313},[296,8191,8169],{"class":331},[296,8193,432],{"class":313},[296,8195,435],{"class":327},[296,8197,1740],{"class":309},[296,8199,8200,8203,8205,8208],{"class":298,"line":886},[296,8201,8202],{"class":317},"    items",[296,8204,396],{"class":309},[296,8206,8207],{"class":359},"push",[296,8209,693],{"class":309},[296,8211,8212,8215,8217,8220,8222,8224],{"class":298,"line":891},[296,8213,8214],{"class":698},"      label",[296,8216,732],{"class":309},[296,8218,8219],{"class":359},"decodeURIComponent",[296,8221,413],{"class":309},[296,8223,8169],{"class":317},[296,8225,8226],{"class":309},"),\n",[296,8228,8229,8232,8234],{"class":298,"line":899},[296,8230,8231],{"class":698},"      path",[296,8233,732],{"class":309},[296,8235,8236],{"class":317},"currentPath\n",[296,8238,8239],{"class":298,"line":907},[296,8240,8241],{"class":309},"    });\n",[296,8243,8244],{"class":298,"line":924},[296,8245,8246],{"class":309},"  });\n",[296,8248,8249],{"class":298,"line":956},[296,8250,445],{"emptyLinePlaceholder":444},[296,8252,8253,8255,8258],{"class":298,"line":961},[296,8254,2953],{"class":313},[296,8256,8257],{"class":317}," items",[296,8259,1740],{"class":309},[296,8261,8262],{"class":298,"line":967},[296,8263,8264],{"class":309},"});\n",[296,8266,8267,8269,8271],{"class":298,"line":973},[296,8268,563],{"class":309},[296,8270,314],{"class":313},[296,8272,337],{"class":309},[296,8274,8275],{"class":298,"line":5702},[296,8276,445],{"emptyLinePlaceholder":444},[296,8278,8279,8281,8283],{"class":298,"line":5716},[296,8280,310],{"class":309},[296,8282,580],{"class":313},[296,8284,337],{"class":309},[296,8286,8287,8289,8292,8295,8297,8299,8302,8304,8307,8309,8311,8314,8316],{"class":298,"line":5721},[296,8288,588],{"class":309},[296,8290,8291],{"class":313},"nav",[296,8293,8294],{"class":317}," class",[296,8296,324],{"class":309},[296,8298,328],{"class":327},[296,8300,8301],{"class":331},"breadcrumb",[296,8303,328],{"class":327},[296,8305,8306],{"class":317}," aria-label",[296,8308,324],{"class":309},[296,8310,328],{"class":327},[296,8312,8313],{"class":331},"パンくずリスト",[296,8315,328],{"class":327},[296,8317,337],{"class":309},[296,8319,8320,8322,8324,8326,8328,8330,8333,8335],{"class":298,"line":5726},[296,8321,2634],{"class":309},[296,8323,18],{"class":313},[296,8325,8294],{"class":317},[296,8327,324],{"class":309},[296,8329,328],{"class":327},[296,8331,8332],{"class":331},"breadcrumb-list",[296,8334,328],{"class":327},[296,8336,337],{"class":309},[296,8338,8339,8341,8343,8345,8347,8349,8352,8354,8356,8358,8360,8363,8365,8367,8369,8371,8374,8376],{"class":298,"line":5733},[296,8340,3044],{"class":309},[296,8342,21],{"class":313},[296,8344,3049],{"class":317},[296,8346,324],{"class":309},[296,8348,328],{"class":327},[296,8350,8351],{"class":331},"(item, index) in breadcrumbs",[296,8353,328],{"class":327},[296,8355,3061],{"class":317},[296,8357,324],{"class":309},[296,8359,328],{"class":327},[296,8361,8362],{"class":331},"item.path",[296,8364,328],{"class":327},[296,8366,8294],{"class":317},[296,8368,324],{"class":309},[296,8370,328],{"class":327},[296,8372,8373],{"class":331},"breadcrumb-item",[296,8375,328],{"class":327},[296,8377,337],{"class":309},[296,8379,8380,8382],{"class":298,"line":5744},[296,8381,3076],{"class":309},[296,8383,8384],{"class":313},"NuxtLink\n",[296,8386,8387,8390,8392,8394,8397],{"class":298,"line":5751},[296,8388,8389],{"class":317},"          v-if",[296,8391,324],{"class":309},[296,8393,328],{"class":327},[296,8395,8396],{"class":331},"index \u003C breadcrumbs.length - 1",[296,8398,1018],{"class":327},[296,8400,8401,8404,8406,8408,8410],{"class":298,"line":5764},[296,8402,8403],{"class":317},"          :to",[296,8405,324],{"class":309},[296,8407,328],{"class":327},[296,8409,8362],{"class":331},[296,8411,1018],{"class":327},[296,8413,8414,8417,8419,8421,8424],{"class":298,"line":5769},[296,8415,8416],{"class":317},"          class",[296,8418,324],{"class":309},[296,8420,328],{"class":327},[296,8422,8423],{"class":331},"breadcrumb-link",[296,8425,1018],{"class":327},[296,8427,8428],{"class":298,"line":5776},[296,8429,8430],{"class":309},"        >\n",[296,8432,8433],{"class":298,"line":5789},[296,8434,8435],{"class":1308},"          {{ item.label }}\n",[296,8437,8438,8440,8442],{"class":298,"line":5794},[296,8439,3112],{"class":309},[296,8441,4056],{"class":313},[296,8443,337],{"class":309},[296,8445,8446,8448,8450,8453,8455,8457,8459,8462,8464,8467,8469,8471,8473,8475],{"class":298,"line":5802},[296,8447,3076],{"class":309},[296,8449,296],{"class":313},[296,8451,8452],{"class":317}," v-else",[296,8454,8294],{"class":317},[296,8456,324],{"class":309},[296,8458,328],{"class":327},[296,8460,8461],{"class":331},"breadcrumb-current",[296,8463,328],{"class":327},[296,8465,8466],{"class":317}," aria-current",[296,8468,324],{"class":309},[296,8470,328],{"class":327},[296,8472,1082],{"class":331},[296,8474,328],{"class":327},[296,8476,337],{"class":309},[296,8478,8479],{"class":298,"line":5810},[296,8480,8435],{"class":1308},[296,8482,8483,8485,8487],{"class":298,"line":5818},[296,8484,3112],{"class":309},[296,8486,296],{"class":313},[296,8488,337],{"class":309},[296,8490,8491,8493,8495,8497,8499,8501,8503,8505,8507,8509,8511,8514,8516,8519,8521,8523,8525,8527,8529,8531,8533,8535],{"class":298,"line":5826},[296,8492,3076],{"class":309},[296,8494,296],{"class":313},[296,8496,594],{"class":317},[296,8498,324],{"class":309},[296,8500,328],{"class":327},[296,8502,8396],{"class":331},[296,8504,328],{"class":327},[296,8506,8294],{"class":317},[296,8508,324],{"class":309},[296,8510,328],{"class":327},[296,8512,8513],{"class":331},"breadcrumb-separator",[296,8515,328],{"class":327},[296,8517,8518],{"class":317}," aria-hidden",[296,8520,324],{"class":309},[296,8522,328],{"class":327},[296,8524,735],{"class":331},[296,8526,328],{"class":327},[296,8528,2639],{"class":309},[296,8530,388],{"class":1308},[296,8532,563],{"class":309},[296,8534,296],{"class":313},[296,8536,337],{"class":309},[296,8538,8539,8541,8543],{"class":298,"line":5843},[296,8540,3121],{"class":309},[296,8542,21],{"class":313},[296,8544,337],{"class":309},[296,8546,8547,8549,8551],{"class":298,"line":5857},[296,8548,3130],{"class":309},[296,8550,18],{"class":313},[296,8552,337],{"class":309},[296,8554,8555,8557,8559],{"class":298,"line":5863},[296,8556,2670],{"class":309},[296,8558,8291],{"class":313},[296,8560,337],{"class":309},[296,8562,8563,8565,8567],{"class":298,"line":5871},[296,8564,563],{"class":309},[296,8566,580],{"class":313},[296,8568,337],{"class":309},[296,8570,8571],{"class":298,"line":5927},[296,8572,445],{"emptyLinePlaceholder":444},[296,8574,8575,8577,8580,8583],{"class":298,"line":5981},[296,8576,310],{"class":309},[296,8578,8579],{"class":313},"style",[296,8581,8582],{"class":317}," scoped",[296,8584,337],{"class":309},[296,8586,8587,8589,8591],{"class":298,"line":6009},[296,8588,396],{"class":309},[296,8590,8301],{"class":317},[296,8592,2095],{"class":309},[296,8594,8595,8598,8600,8603,8606],{"class":298,"line":6015},[296,8596,8597],{"class":698},"  margin-bottom",[296,8599,459],{"class":309},[296,8601,8602],{"class":1595}," 1.5",[296,8604,8605],{"class":349},"rem",[296,8607,1740],{"class":309},[296,8609,8610],{"class":298,"line":6021},[296,8611,2986],{"class":309},[296,8613,8614],{"class":298,"line":6026},[296,8615,445],{"emptyLinePlaceholder":444},[296,8617,8618,8620,8622],{"class":298,"line":6031},[296,8619,396],{"class":309},[296,8621,8332],{"class":317},[296,8623,2095],{"class":309},[296,8625,8626,8629,8631,8634],{"class":298,"line":6038},[296,8627,8628],{"class":698},"  display",[296,8630,459],{"class":309},[296,8632,8633],{"class":2199}," flex",[296,8635,1740],{"class":309},[296,8637,8638,8641,8643,8646],{"class":298,"line":6049},[296,8639,8640],{"class":698},"  flex-wrap",[296,8642,459],{"class":309},[296,8644,8645],{"class":2199}," wrap",[296,8647,1740],{"class":309},[296,8649,8650,8653,8655,8658],{"class":298,"line":6056},[296,8651,8652],{"class":698},"  align-items",[296,8654,459],{"class":309},[296,8656,8657],{"class":2199}," center",[296,8659,1740],{"class":309},[296,8661,8662,8665,8667,8670,8672],{"class":298,"line":6068},[296,8663,8664],{"class":698},"  gap",[296,8666,459],{"class":309},[296,8668,8669],{"class":1595}," 0.5",[296,8671,8605],{"class":349},[296,8673,1740],{"class":309},[296,8675,8676,8679,8681,8684],{"class":298,"line":6080},[296,8677,8678],{"class":698},"  list-style",[296,8680,459],{"class":309},[296,8682,8683],{"class":2199}," none",[296,8685,1740],{"class":309},[296,8687,8688,8691,8693,8696],{"class":298,"line":6085},[296,8689,8690],{"class":698},"  margin",[296,8692,459],{"class":309},[296,8694,8695],{"class":1595}," 0",[296,8697,1740],{"class":309},[296,8699,8700,8703,8705,8707],{"class":298,"line":6096},[296,8701,8702],{"class":698},"  padding",[296,8704,459],{"class":309},[296,8706,8695],{"class":1595},[296,8708,1740],{"class":309},[296,8710,8711,8714,8716,8719,8721],{"class":298,"line":6101},[296,8712,8713],{"class":698},"  font-size",[296,8715,459],{"class":309},[296,8717,8718],{"class":1595}," 0.9",[296,8720,8605],{"class":349},[296,8722,1740],{"class":309},[296,8724,8725],{"class":298,"line":6108},[296,8726,2986],{"class":309},[296,8728,8729],{"class":298,"line":6115},[296,8730,445],{"emptyLinePlaceholder":444},[296,8732,8733,8735,8737],{"class":298,"line":6130},[296,8734,396],{"class":309},[296,8736,8373],{"class":317},[296,8738,2095],{"class":309},[296,8740,8741,8743,8745,8747],{"class":298,"line":6153},[296,8742,8628],{"class":698},[296,8744,459],{"class":309},[296,8746,8633],{"class":2199},[296,8748,1740],{"class":309},[296,8750,8751,8753,8755,8757],{"class":298,"line":6158},[296,8752,8652],{"class":698},[296,8754,459],{"class":309},[296,8756,8657],{"class":2199},[296,8758,1740],{"class":309},[296,8760,8761,8763,8765,8767,8769],{"class":298,"line":6163},[296,8762,8664],{"class":698},[296,8764,459],{"class":309},[296,8766,8669],{"class":1595},[296,8768,8605],{"class":349},[296,8770,1740],{"class":309},[296,8772,8773],{"class":298,"line":6168},[296,8774,2986],{"class":309},[296,8776,8777],{"class":298,"line":6173},[296,8778,445],{"emptyLinePlaceholder":444},[296,8780,8781,8783,8785],{"class":298,"line":6181},[296,8782,396],{"class":309},[296,8784,8423],{"class":317},[296,8786,2095],{"class":309},[296,8788,8789,8792,8794,8797,8800],{"class":298,"line":6187},[296,8790,8791],{"class":698},"  color",[296,8793,459],{"class":309},[296,8795,8796],{"class":309}," #",[296,8798,8799],{"class":2199},"2563eb",[296,8801,1740],{"class":309},[296,8803,8804,8807,8809,8811],{"class":298,"line":6213},[296,8805,8806],{"class":698},"  text-decoration",[296,8808,459],{"class":309},[296,8810,8683],{"class":2199},[296,8812,1740],{"class":309},[296,8814,8815,8818,8820,8823,8826,8829],{"class":298,"line":6243},[296,8816,8817],{"class":698},"  transition",[296,8819,459],{"class":309},[296,8821,8822],{"class":2199}," color",[296,8824,8825],{"class":1595}," 0.2",[296,8827,8828],{"class":349},"s",[296,8830,1740],{"class":309},[296,8832,8833],{"class":298,"line":6268},[296,8834,2986],{"class":309},[296,8836,8837],{"class":298,"line":6274},[296,8838,445],{"emptyLinePlaceholder":444},[296,8840,8841,8843,8845,8847,8850],{"class":298,"line":6282},[296,8842,396],{"class":309},[296,8844,8423],{"class":317},[296,8846,459],{"class":309},[296,8848,8849],{"class":317},"hover",[296,8851,2095],{"class":309},[296,8853,8854,8856,8858,8860,8863],{"class":298,"line":6311},[296,8855,8791],{"class":698},[296,8857,459],{"class":309},[296,8859,8796],{"class":309},[296,8861,8862],{"class":2199},"1d4ed8",[296,8864,1740],{"class":309},[296,8866,8867,8869,8871,8874],{"class":298,"line":6316},[296,8868,8806],{"class":698},[296,8870,459],{"class":309},[296,8872,8873],{"class":2199}," underline",[296,8875,1740],{"class":309},[296,8877,8878],{"class":298,"line":6321},[296,8879,2986],{"class":309},[296,8881,8882],{"class":298,"line":6326},[296,8883,445],{"emptyLinePlaceholder":444},[296,8885,8886,8888,8890],{"class":298,"line":6333},[296,8887,396],{"class":309},[296,8889,8461],{"class":317},[296,8891,2095],{"class":309},[296,8893,8894,8896,8898,8900,8903],{"class":298,"line":6352},[296,8895,8791],{"class":698},[296,8897,459],{"class":309},[296,8899,8796],{"class":309},[296,8901,8902],{"class":2199},"6b7280",[296,8904,1740],{"class":309},[296,8906,8907,8910,8912,8915],{"class":298,"line":6377},[296,8908,8909],{"class":698},"  font-weight",[296,8911,459],{"class":309},[296,8913,8914],{"class":1595}," 500",[296,8916,1740],{"class":309},[296,8918,8919],{"class":298,"line":6406},[296,8920,2986],{"class":309},[296,8922,8923],{"class":298,"line":6411},[296,8924,445],{"emptyLinePlaceholder":444},[296,8926,8927,8929,8931],{"class":298,"line":6438},[296,8928,396],{"class":309},[296,8930,8513],{"class":317},[296,8932,2095],{"class":309},[296,8934,8935,8937,8939,8941,8944],{"class":298,"line":6471},[296,8936,8791],{"class":698},[296,8938,459],{"class":309},[296,8940,8796],{"class":309},[296,8942,8943],{"class":2199},"9ca3af",[296,8945,1740],{"class":309},[296,8947,8948,8951,8953,8955],{"class":298,"line":6476},[296,8949,8950],{"class":698},"  user-select",[296,8952,459],{"class":309},[296,8954,8683],{"class":2199},[296,8956,1740],{"class":309},[296,8958,8959],{"class":298,"line":6497},[296,8960,2986],{"class":309},[296,8962,8963,8965,8967],{"class":298,"line":6525},[296,8964,563],{"class":309},[296,8966,8579],{"class":313},[296,8968,337],{"class":309},[182,8970,8972],{"id":8971},"appcomponentsarticletablevue",[137,8973,8974],{},"app/components/ArticleTable.vue",[130,8976,8978],{"className":290,"code":8977,"language":292,"meta":139,"style":139},"\u003Ctemplate>\n  \u003Cdiv>\n    \u003Ctable class=\"article-table\">\n      \u003Cthead>\n        \u003Ctr>\n          \u003Cth>タイトル\u003C/th>\n          \u003Cth>作成日\u003C/th>\n          \u003Cth>タグ\u003C/th>\n        \u003C/tr>\n      \u003C/thead>\n      \u003Ctbody>\n        \u003Ctr v-for=\"article in paginatedArticles\" :key=\"article.path\">\n          \u003Ctd>\n            \u003CNuxtLink :to=\"article.path\" class=\"article-link\">\n              {{ article.title || article.path }}\n            \u003C/NuxtLink>\n          \u003C/td>\n          \u003Ctd class=\"date\">\n            {{ formatDate(article.publishedAt || article.date) }}\n          \u003C/td>\n          \u003Ctd>\n            \u003Cdiv class=\"tags\">\n              \u003Cspan v-for=\"tag in article.tags\" :key=\"tag\" class=\"tag\">\n                {{ tag }}\n              \u003C/span>\n            \u003C/div>\n          \u003C/td>\n        \u003C/tr>\n      \u003C/tbody>\n    \u003C/table>\n\n    \u003C!-- ページネーション -->\n    \u003Cdiv v-if=\"totalPages > 1\" class=\"pagination\">\n      \u003Cbutton\n        @click=\"currentPage--\"\n        :disabled=\"currentPage === 1\"\n        class=\"pagination-btn\"\n      >\n        前へ\n      \u003C/button>\n\n      \u003Cspan class=\"page-info\">\n        {{ currentPage }} / {{ totalPages }}\n      \u003C/span>\n\n      \u003Cbutton\n        @click=\"currentPage++\"\n        :disabled=\"currentPage === totalPages\"\n        class=\"pagination-btn\"\n      >\n        次へ\n      \u003C/button>\n    \u003C/div>\n  \u003C/div>\n\u003C/template>\n\n\u003Cscript setup lang=\"ts\">\nimport { computed, ref } from 'vue';\n\nconst props = defineProps({\n  articles: {\n    type: Array,\n    required: true,\n    default: () => []\n  },\n  itemsPerPage: {\n    type: Number,\n    default: 20\n  }\n});\n\nconst currentPage = ref(1);\n\nconst totalPages = computed(() => {\n  if (!props.articles) return 1;\n  return Math.ceil(props.articles.length / props.itemsPerPage);\n});\n\nconst paginatedArticles = computed(() => {\n  const allArticles = props.articles;\n  if (!allArticles || allArticles.length === 0) return [];\n\n  // 日付順にソート（新しい順）\n  const sorted = [...allArticles].sort((a, b) => {\n    const dateA = a.publishedAt || a.date || '';\n    const dateB = b.publishedAt || b.date || '';\n    return dateB.localeCompare(dateA);\n  });\n\n  const start = (currentPage.value - 1) * props.itemsPerPage;\n  const end = start + props.itemsPerPage;\n  return sorted.slice(start, end);\n});\n\nconst formatDate = (date: string | Date | undefined): string => {\n  if (!date) return '-';\n  const d = new Date(date);\n  if (isNaN(d.getTime())) return '-';\n  return d.toLocaleDateString('ja-JP', {\n    year: 'numeric',\n    month: '2-digit',\n    day: '2-digit'\n  });\n};\n\u003C/script>\n\n\u003Cstyle scoped>\n.article-table {\n  width: 100%;\n  border-collapse: collapse;\n  margin-top: 1rem;\n}\n\n.article-table th {\n  background: #f3f4f6;\n  padding: 0.75rem;\n  text-align: left;\n  font-weight: 600;\n  color: #374151;\n  border-bottom: 2px solid #e5e7eb;\n}\n\n.article-table td {\n  padding: 0.75rem;\n  border-bottom: 1px solid #e5e7eb;\n}\n\n.article-link {\n  color: #3b82f6;\n  text-decoration: none;\n  font-weight: 500;\n}\n\n.article-link:hover {\n  text-decoration: underline;\n}\n\n.date {\n  color: #6b7280;\n  white-space: nowrap;\n  width: 120px;\n}\n\n.tags {\n  display: flex;\n  gap: 0.25rem;\n  flex-wrap: wrap;\n}\n\n.tag {\n  padding: 0.125rem 0.5rem;\n  background: #eff6ff;\n  color: #3b82f6;\n  border-radius: 0.25rem;\n  font-size: 0.75rem;\n}\n\n.pagination {\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  gap: 1rem;\n  margin-top: 2rem;\n  padding: 1rem;\n}\n\n.pagination-btn {\n  padding: 0.5rem 1rem;\n  background: #3b82f6;\n  color: white;\n  border: none;\n  border-radius: 0.25rem;\n  cursor: pointer;\n  font-weight: 500;\n}\n\n.pagination-btn:hover:not(:disabled) {\n  background: #2563eb;\n}\n\n.pagination-btn:disabled {\n  background: #d1d5db;\n  cursor: not-allowed;\n}\n\n.page-info {\n  color: #6b7280;\n  font-weight: 500;\n}\n\u003C/style>\n",[137,8979,8980,8988,8996,9015,9023,9031,9049,9066,9083,9091,9099,9107,9136,9144,9174,9179,9188,9197,9215,9220,9228,9236,9254,9295,9300,9309,9317,9325,9333,9341,9349,9353,9358,9388,9395,9409,9423,9437,9442,9447,9456,9460,9479,9484,9492,9496,9502,9515,9528,9540,9544,9549,9557,9565,9573,9581,9585,9605,9629,9633,9647,9654,9666,9677,9685,9689,9696,9707,9716,9720,9724,9728,9745,9749,9766,9789,9826,9830,9834,9851,9869,9898,9902,9907,9941,9971,10001,10019,10023,10027,10062,10085,10108,10112,10116,10154,10176,10196,10227,10252,10268,10284,10297,10301,10306,10314,10318,10328,10336,10350,10362,10375,10379,10383,10394,10408,10421,10434,10446,10460,10484,10489,10494,10506,10519,10538,10543,10548,10557,10571,10582,10593,10598,10603,10616,10627,10632,10637,10646,10659,10672,10686,10691,10696,10705,10716,10730,10741,10746,10751,10760,10778,10792,10805,10819,10832,10837,10842,10851,10862,10874,10885,10898,10911,10924,10929,10934,10943,10960,10973,10985,10997,11010,11023,11034,11039,11044,11070,11083,11088,11093,11106,11120,11132,11137,11142,11151,11164,11175,11180],{"__ignoreMap":139},[296,8981,8982,8984,8986],{"class":298,"line":299},[296,8983,310],{"class":309},[296,8985,580],{"class":313},[296,8987,337],{"class":309},[296,8989,8990,8992,8994],{"class":298,"line":306},[296,8991,588],{"class":309},[296,8993,2627],{"class":313},[296,8995,337],{"class":309},[296,8997,8998,9000,9002,9004,9006,9008,9011,9013],{"class":298,"line":340},[296,8999,2634],{"class":309},[296,9001,2387],{"class":313},[296,9003,8294],{"class":317},[296,9005,324],{"class":309},[296,9007,328],{"class":327},[296,9009,9010],{"class":331},"article-table",[296,9012,328],{"class":327},[296,9014,337],{"class":309},[296,9016,9017,9019,9021],{"class":298,"line":346},[296,9018,3044],{"class":309},[296,9020,2390],{"class":313},[296,9022,337],{"class":309},[296,9024,9025,9027,9029],{"class":298,"line":366},[296,9026,3076],{"class":309},[296,9028,2393],{"class":313},[296,9030,337],{"class":309},[296,9032,9033,9036,9038,9040,9043,9045,9047],{"class":298,"line":441},[296,9034,9035],{"class":309},"          \u003C",[296,9037,2396],{"class":313},[296,9039,2639],{"class":309},[296,9041,9042],{"class":1308},"タイトル",[296,9044,563],{"class":309},[296,9046,2396],{"class":313},[296,9048,337],{"class":309},[296,9050,9051,9053,9055,9057,9060,9062,9064],{"class":298,"line":448},[296,9052,9035],{"class":309},[296,9054,2396],{"class":313},[296,9056,2639],{"class":309},[296,9058,9059],{"class":1308},"作成日",[296,9061,563],{"class":309},[296,9063,2396],{"class":313},[296,9065,337],{"class":309},[296,9067,9068,9070,9072,9074,9077,9079,9081],{"class":298,"line":479},[296,9069,9035],{"class":309},[296,9071,2396],{"class":313},[296,9073,2639],{"class":309},[296,9075,9076],{"class":1308},"タグ",[296,9078,563],{"class":309},[296,9080,2396],{"class":313},[296,9082,337],{"class":309},[296,9084,9085,9087,9089],{"class":298,"line":504},[296,9086,3112],{"class":309},[296,9088,2393],{"class":313},[296,9090,337],{"class":309},[296,9092,9093,9095,9097],{"class":298,"line":526},[296,9094,3121],{"class":309},[296,9096,2390],{"class":313},[296,9098,337],{"class":309},[296,9100,9101,9103,9105],{"class":298,"line":545},[296,9102,3044],{"class":309},[296,9104,2405],{"class":313},[296,9106,337],{"class":309},[296,9108,9109,9111,9113,9115,9117,9119,9122,9124,9126,9128,9130,9132,9134],{"class":298,"line":555},[296,9110,3076],{"class":309},[296,9112,2393],{"class":313},[296,9114,3049],{"class":317},[296,9116,324],{"class":309},[296,9118,328],{"class":327},[296,9120,9121],{"class":331},"article in paginatedArticles",[296,9123,328],{"class":327},[296,9125,3061],{"class":317},[296,9127,324],{"class":309},[296,9129,328],{"class":327},[296,9131,4066],{"class":331},[296,9133,328],{"class":327},[296,9135,337],{"class":309},[296,9137,9138,9140,9142],{"class":298,"line":560},[296,9139,9035],{"class":309},[296,9141,2410],{"class":313},[296,9143,337],{"class":309},[296,9145,9146,9149,9151,9153,9155,9157,9159,9161,9163,9165,9167,9170,9172],{"class":298,"line":570},[296,9147,9148],{"class":309},"            \u003C",[296,9150,4056],{"class":313},[296,9152,4059],{"class":317},[296,9154,324],{"class":309},[296,9156,328],{"class":327},[296,9158,4066],{"class":331},[296,9160,328],{"class":327},[296,9162,8294],{"class":317},[296,9164,324],{"class":309},[296,9166,328],{"class":327},[296,9168,9169],{"class":331},"article-link",[296,9171,328],{"class":327},[296,9173,337],{"class":309},[296,9175,9176],{"class":298,"line":575},[296,9177,9178],{"class":1308},"              {{ article.title || article.path }}\n",[296,9180,9181,9184,9186],{"class":298,"line":585},[296,9182,9183],{"class":309},"            \u003C/",[296,9185,4056],{"class":313},[296,9187,337],{"class":309},[296,9189,9190,9193,9195],{"class":298,"line":620},[296,9191,9192],{"class":309},"          \u003C/",[296,9194,2410],{"class":313},[296,9196,337],{"class":309},[296,9198,9199,9201,9203,9205,9207,9209,9211,9213],{"class":298,"line":842},[296,9200,9035],{"class":309},[296,9202,2410],{"class":313},[296,9204,8294],{"class":317},[296,9206,324],{"class":309},[296,9208,328],{"class":327},[296,9210,1231],{"class":331},[296,9212,328],{"class":327},[296,9214,337],{"class":309},[296,9216,9217],{"class":298,"line":859},[296,9218,9219],{"class":1308},"            {{ formatDate(article.publishedAt || article.date) }}\n",[296,9221,9222,9224,9226],{"class":298,"line":875},[296,9223,9192],{"class":309},[296,9225,2410],{"class":313},[296,9227,337],{"class":309},[296,9229,9230,9232,9234],{"class":298,"line":881},[296,9231,9035],{"class":309},[296,9233,2410],{"class":313},[296,9235,337],{"class":309},[296,9237,9238,9240,9242,9244,9246,9248,9250,9252],{"class":298,"line":886},[296,9239,9148],{"class":309},[296,9241,2627],{"class":313},[296,9243,8294],{"class":317},[296,9245,324],{"class":309},[296,9247,328],{"class":327},[296,9249,1516],{"class":331},[296,9251,328],{"class":327},[296,9253,337],{"class":309},[296,9255,9256,9259,9261,9263,9265,9267,9270,9272,9274,9276,9278,9281,9283,9285,9287,9289,9291,9293],{"class":298,"line":891},[296,9257,9258],{"class":309},"              \u003C",[296,9260,296],{"class":313},[296,9262,3049],{"class":317},[296,9264,324],{"class":309},[296,9266,328],{"class":327},[296,9268,9269],{"class":331},"tag in article.tags",[296,9271,328],{"class":327},[296,9273,3061],{"class":317},[296,9275,324],{"class":309},[296,9277,328],{"class":327},[296,9279,9280],{"class":331},"tag",[296,9282,328],{"class":327},[296,9284,8294],{"class":317},[296,9286,324],{"class":309},[296,9288,328],{"class":327},[296,9290,9280],{"class":331},[296,9292,328],{"class":327},[296,9294,337],{"class":309},[296,9296,9297],{"class":298,"line":899},[296,9298,9299],{"class":1308},"                {{ tag }}\n",[296,9301,9302,9305,9307],{"class":298,"line":907},[296,9303,9304],{"class":309},"              \u003C/",[296,9306,296],{"class":313},[296,9308,337],{"class":309},[296,9310,9311,9313,9315],{"class":298,"line":924},[296,9312,9183],{"class":309},[296,9314,2627],{"class":313},[296,9316,337],{"class":309},[296,9318,9319,9321,9323],{"class":298,"line":956},[296,9320,9192],{"class":309},[296,9322,2410],{"class":313},[296,9324,337],{"class":309},[296,9326,9327,9329,9331],{"class":298,"line":961},[296,9328,3112],{"class":309},[296,9330,2393],{"class":313},[296,9332,337],{"class":309},[296,9334,9335,9337,9339],{"class":298,"line":967},[296,9336,3121],{"class":309},[296,9338,2405],{"class":313},[296,9340,337],{"class":309},[296,9342,9343,9345,9347],{"class":298,"line":973},[296,9344,3130],{"class":309},[296,9346,2387],{"class":313},[296,9348,337],{"class":309},[296,9350,9351],{"class":298,"line":5702},[296,9352,445],{"emptyLinePlaceholder":444},[296,9354,9355],{"class":298,"line":5716},[296,9356,9357],{"class":302},"    \u003C!-- ページネーション -->\n",[296,9359,9360,9362,9364,9366,9368,9370,9373,9375,9377,9379,9381,9384,9386],{"class":298,"line":5721},[296,9361,2634],{"class":309},[296,9363,2627],{"class":313},[296,9365,594],{"class":317},[296,9367,324],{"class":309},[296,9369,328],{"class":327},[296,9371,9372],{"class":331},"totalPages > 1",[296,9374,328],{"class":327},[296,9376,8294],{"class":317},[296,9378,324],{"class":309},[296,9380,328],{"class":327},[296,9382,9383],{"class":331},"pagination",[296,9385,328],{"class":327},[296,9387,337],{"class":309},[296,9389,9390,9392],{"class":298,"line":5726},[296,9391,3044],{"class":309},[296,9393,9394],{"class":313},"button\n",[296,9396,9397,9400,9402,9404,9407],{"class":298,"line":5733},[296,9398,9399],{"class":317},"        @click",[296,9401,324],{"class":309},[296,9403,328],{"class":327},[296,9405,9406],{"class":331},"currentPage--",[296,9408,1018],{"class":327},[296,9410,9411,9414,9416,9418,9421],{"class":298,"line":5744},[296,9412,9413],{"class":317},"        :disabled",[296,9415,324],{"class":309},[296,9417,328],{"class":327},[296,9419,9420],{"class":331},"currentPage === 1",[296,9422,1018],{"class":327},[296,9424,9425,9428,9430,9432,9435],{"class":298,"line":5751},[296,9426,9427],{"class":317},"        class",[296,9429,324],{"class":309},[296,9431,328],{"class":327},[296,9433,9434],{"class":331},"pagination-btn",[296,9436,1018],{"class":327},[296,9438,9439],{"class":298,"line":5764},[296,9440,9441],{"class":309},"      >\n",[296,9443,9444],{"class":298,"line":5769},[296,9445,9446],{"class":1308},"        前へ\n",[296,9448,9449,9451,9454],{"class":298,"line":5776},[296,9450,3121],{"class":309},[296,9452,9453],{"class":313},"button",[296,9455,337],{"class":309},[296,9457,9458],{"class":298,"line":5789},[296,9459,445],{"emptyLinePlaceholder":444},[296,9461,9462,9464,9466,9468,9470,9472,9475,9477],{"class":298,"line":5794},[296,9463,3044],{"class":309},[296,9465,296],{"class":313},[296,9467,8294],{"class":317},[296,9469,324],{"class":309},[296,9471,328],{"class":327},[296,9473,9474],{"class":331},"page-info",[296,9476,328],{"class":327},[296,9478,337],{"class":309},[296,9480,9481],{"class":298,"line":5802},[296,9482,9483],{"class":1308},"        {{ currentPage }} / {{ totalPages }}\n",[296,9485,9486,9488,9490],{"class":298,"line":5810},[296,9487,3121],{"class":309},[296,9489,296],{"class":313},[296,9491,337],{"class":309},[296,9493,9494],{"class":298,"line":5818},[296,9495,445],{"emptyLinePlaceholder":444},[296,9497,9498,9500],{"class":298,"line":5826},[296,9499,3044],{"class":309},[296,9501,9394],{"class":313},[296,9503,9504,9506,9508,9510,9513],{"class":298,"line":5843},[296,9505,9399],{"class":317},[296,9507,324],{"class":309},[296,9509,328],{"class":327},[296,9511,9512],{"class":331},"currentPage++",[296,9514,1018],{"class":327},[296,9516,9517,9519,9521,9523,9526],{"class":298,"line":5857},[296,9518,9413],{"class":317},[296,9520,324],{"class":309},[296,9522,328],{"class":327},[296,9524,9525],{"class":331},"currentPage === totalPages",[296,9527,1018],{"class":327},[296,9529,9530,9532,9534,9536,9538],{"class":298,"line":5863},[296,9531,9427],{"class":317},[296,9533,324],{"class":309},[296,9535,328],{"class":327},[296,9537,9434],{"class":331},[296,9539,1018],{"class":327},[296,9541,9542],{"class":298,"line":5871},[296,9543,9441],{"class":309},[296,9545,9546],{"class":298,"line":5927},[296,9547,9548],{"class":1308},"        次へ\n",[296,9550,9551,9553,9555],{"class":298,"line":5981},[296,9552,3121],{"class":309},[296,9554,9453],{"class":313},[296,9556,337],{"class":309},[296,9558,9559,9561,9563],{"class":298,"line":6009},[296,9560,3130],{"class":309},[296,9562,2627],{"class":313},[296,9564,337],{"class":309},[296,9566,9567,9569,9571],{"class":298,"line":6015},[296,9568,2670],{"class":309},[296,9570,2627],{"class":313},[296,9572,337],{"class":309},[296,9574,9575,9577,9579],{"class":298,"line":6021},[296,9576,563],{"class":309},[296,9578,580],{"class":313},[296,9580,337],{"class":309},[296,9582,9583],{"class":298,"line":6026},[296,9584,445],{"emptyLinePlaceholder":444},[296,9586,9587,9589,9591,9593,9595,9597,9599,9601,9603],{"class":298,"line":6031},[296,9588,310],{"class":309},[296,9590,314],{"class":313},[296,9592,318],{"class":317},[296,9594,321],{"class":317},[296,9596,324],{"class":309},[296,9598,328],{"class":327},[296,9600,332],{"class":331},[296,9602,328],{"class":327},[296,9604,337],{"class":309},[296,9606,9607,9609,9611,9613,9615,9617,9619,9621,9623,9625,9627],{"class":298,"line":6038},[296,9608,993],{"class":313},[296,9610,996],{"class":309},[296,9612,376],{"class":317},[296,9614,1002],{"class":309},[296,9616,2724],{"class":317},[296,9618,465],{"class":309},[296,9620,1010],{"class":313},[296,9622,1727],{"class":327},[296,9624,292],{"class":331},[296,9626,416],{"class":327},[296,9628,1740],{"class":309},[296,9630,9631],{"class":298,"line":6049},[296,9632,445],{"emptyLinePlaceholder":444},[296,9634,9635,9637,9640,9642,9645],{"class":298,"line":6056},[296,9636,350],{"class":349},[296,9638,9639],{"class":317},"props",[296,9641,356],{"class":309},[296,9643,9644],{"class":359}," defineProps",[296,9646,693],{"class":309},[296,9648,9649,9652],{"class":298,"line":6068},[296,9650,9651],{"class":698},"  articles",[296,9653,724],{"class":309},[296,9655,9656,9659,9661,9664],{"class":298,"line":6080},[296,9657,9658],{"class":698},"    type",[296,9660,732],{"class":309},[296,9662,9663],{"class":317},"Array",[296,9665,501],{"class":309},[296,9667,9668,9671,9673,9675],{"class":298,"line":6085},[296,9669,9670],{"class":698},"    required",[296,9672,732],{"class":309},[296,9674,735],{"class":313},[296,9676,501],{"class":309},[296,9678,9679,9682],{"class":298,"line":6096},[296,9680,9681],{"class":359},"    default",[296,9683,9684],{"class":309},": () => []\n",[296,9686,9687],{"class":298,"line":6101},[296,9688,5670],{"class":309},[296,9690,9691,9694],{"class":298,"line":6108},[296,9692,9693],{"class":698},"  itemsPerPage",[296,9695,724],{"class":309},[296,9697,9698,9700,9702,9705],{"class":298,"line":6115},[296,9699,9658],{"class":698},[296,9701,732],{"class":309},[296,9703,9704],{"class":317},"Number",[296,9706,501],{"class":309},[296,9708,9709,9711,9713],{"class":298,"line":6130},[296,9710,9681],{"class":698},[296,9712,732],{"class":309},[296,9714,9715],{"class":1595},"20\n",[296,9717,9718],{"class":298,"line":6153},[296,9719,970],{"class":309},[296,9721,9722],{"class":298,"line":6158},[296,9723,8264],{"class":309},[296,9725,9726],{"class":298,"line":6163},[296,9727,445],{"emptyLinePlaceholder":444},[296,9729,9730,9732,9735,9737,9739,9741,9743],{"class":298,"line":6168},[296,9731,350],{"class":349},[296,9733,9734],{"class":317},"currentPage",[296,9736,356],{"class":309},[296,9738,2724],{"class":359},[296,9740,413],{"class":309},[296,9742,1596],{"class":1595},[296,9744,1410],{"class":309},[296,9746,9747],{"class":298,"line":6173},[296,9748,445],{"emptyLinePlaceholder":444},[296,9750,9751,9753,9756,9758,9760,9762,9764],{"class":298,"line":6181},[296,9752,350],{"class":349},[296,9754,9755],{"class":317},"totalPages",[296,9757,356],{"class":309},[296,9759,376],{"class":359},[296,9761,379],{"class":309},[296,9763,382],{"class":309},[296,9765,2095],{"class":309},[296,9767,9768,9770,9772,9774,9776,9778,9780,9782,9785,9787],{"class":298,"line":6187},[296,9769,2261],{"class":313},[296,9771,1914],{"class":309},[296,9773,6727],{"class":349},[296,9775,9639],{"class":317},[296,9777,396],{"class":309},[296,9779,3907],{"class":317},[296,9781,423],{"class":309},[296,9783,9784],{"class":313}," return",[296,9786,1737],{"class":1595},[296,9788,1740],{"class":309},[296,9790,9791,9793,9796,9798,9801,9803,9805,9807,9809,9811,9814,9817,9819,9821,9824],{"class":298,"line":6213},[296,9792,2953],{"class":313},[296,9794,9795],{"class":317}," Math",[296,9797,396],{"class":309},[296,9799,9800],{"class":359},"ceil",[296,9802,413],{"class":309},[296,9804,9639],{"class":317},[296,9806,396],{"class":309},[296,9808,3907],{"class":317},[296,9810,396],{"class":309},[296,9812,9813],{"class":698},"length",[296,9815,9816],{"class":349}," / ",[296,9818,9639],{"class":317},[296,9820,396],{"class":309},[296,9822,9823],{"class":317},"itemsPerPage",[296,9825,1410],{"class":309},[296,9827,9828],{"class":298,"line":6243},[296,9829,8264],{"class":309},[296,9831,9832],{"class":298,"line":6268},[296,9833,445],{"emptyLinePlaceholder":444},[296,9835,9836,9838,9841,9843,9845,9847,9849],{"class":298,"line":6274},[296,9837,350],{"class":349},[296,9839,9840],{"class":317},"paginatedArticles",[296,9842,356],{"class":309},[296,9844,376],{"class":359},[296,9846,379],{"class":309},[296,9848,382],{"class":309},[296,9850,2095],{"class":309},[296,9852,9853,9855,9858,9860,9863,9865,9867],{"class":298,"line":6282},[296,9854,2100],{"class":349},[296,9856,9857],{"class":317},"allArticles",[296,9859,356],{"class":309},[296,9861,9862],{"class":317}," props",[296,9864,396],{"class":309},[296,9866,3907],{"class":317},[296,9868,1740],{"class":309},[296,9870,9871,9873,9875,9877,9879,9881,9883,9885,9887,9889,9891,9893,9895],{"class":298,"line":6311},[296,9872,2261],{"class":313},[296,9874,1914],{"class":309},[296,9876,6727],{"class":349},[296,9878,9857],{"class":317},[296,9880,2125],{"class":349},[296,9882,9857],{"class":317},[296,9884,396],{"class":309},[296,9886,9813],{"class":698},[296,9888,7708],{"class":349},[296,9890,2970],{"class":1595},[296,9892,423],{"class":309},[296,9894,9784],{"class":313},[296,9896,9897],{"class":309}," [];\n",[296,9899,9900],{"class":298,"line":6316},[296,9901,445],{"emptyLinePlaceholder":444},[296,9903,9904],{"class":298,"line":6321},[296,9905,9906],{"class":302},"  // 日付順にソート（新しい順）\n",[296,9908,9909,9911,9914,9916,9919,9921,9924,9926,9928,9930,9932,9935,9937,9939],{"class":298,"line":6326},[296,9910,2100],{"class":349},[296,9912,9913],{"class":317},"sorted",[296,9915,356],{"class":309},[296,9917,9918],{"class":309}," [...",[296,9920,9857],{"class":317},[296,9922,9923],{"class":309},"].",[296,9925,1582],{"class":359},[296,9927,2085],{"class":309},[296,9929,24],{"class":317},[296,9931,1002],{"class":309},[296,9933,9934],{"class":317}," b",[296,9936,423],{"class":309},[296,9938,382],{"class":309},[296,9940,2095],{"class":309},[296,9942,9943,9945,9948,9950,9953,9955,9957,9959,9961,9963,9965,9967,9969],{"class":298,"line":6333},[296,9944,2274],{"class":349},[296,9946,9947],{"class":317},"dateA",[296,9949,356],{"class":309},[296,9951,9952],{"class":317}," a",[296,9954,396],{"class":309},[296,9956,1587],{"class":317},[296,9958,2125],{"class":349},[296,9960,24],{"class":317},[296,9962,396],{"class":309},[296,9964,1231],{"class":317},[296,9966,2125],{"class":349},[296,9968,2019],{"class":327},[296,9970,1740],{"class":309},[296,9972,9973,9975,9978,9980,9982,9984,9986,9988,9991,9993,9995,9997,9999],{"class":298,"line":6352},[296,9974,2274],{"class":349},[296,9976,9977],{"class":317},"dateB",[296,9979,356],{"class":309},[296,9981,9934],{"class":317},[296,9983,396],{"class":309},[296,9985,1587],{"class":317},[296,9987,2125],{"class":349},[296,9989,9990],{"class":317},"b",[296,9992,396],{"class":309},[296,9994,1231],{"class":317},[296,9996,2125],{"class":349},[296,9998,2019],{"class":327},[296,10000,1740],{"class":309},[296,10002,10003,10005,10008,10010,10013,10015,10017],{"class":298,"line":6377},[296,10004,2347],{"class":313},[296,10006,10007],{"class":317}," dateB",[296,10009,396],{"class":309},[296,10011,10012],{"class":359},"localeCompare",[296,10014,413],{"class":309},[296,10016,9947],{"class":317},[296,10018,1410],{"class":309},[296,10020,10021],{"class":298,"line":6406},[296,10022,8246],{"class":309},[296,10024,10025],{"class":298,"line":6411},[296,10026,445],{"emptyLinePlaceholder":444},[296,10028,10029,10031,10034,10036,10038,10040,10042,10044,10047,10049,10051,10054,10056,10058,10060],{"class":298,"line":6438},[296,10030,2100],{"class":349},[296,10032,10033],{"class":317},"start",[296,10035,356],{"class":309},[296,10037,1914],{"class":309},[296,10039,9734],{"class":317},[296,10041,396],{"class":309},[296,10043,494],{"class":317},[296,10045,10046],{"class":349}," - ",[296,10048,1596],{"class":1595},[296,10050,423],{"class":309},[296,10052,10053],{"class":349}," * ",[296,10055,9639],{"class":317},[296,10057,396],{"class":309},[296,10059,9823],{"class":317},[296,10061,1740],{"class":309},[296,10063,10064,10066,10069,10071,10074,10077,10079,10081,10083],{"class":298,"line":6471},[296,10065,2100],{"class":349},[296,10067,10068],{"class":317},"end",[296,10070,356],{"class":309},[296,10072,10073],{"class":317}," start",[296,10075,10076],{"class":349}," + ",[296,10078,9639],{"class":317},[296,10080,396],{"class":309},[296,10082,9823],{"class":317},[296,10084,1740],{"class":309},[296,10086,10087,10089,10092,10094,10097,10099,10101,10103,10106],{"class":298,"line":6476},[296,10088,2953],{"class":313},[296,10090,10091],{"class":317}," sorted",[296,10093,396],{"class":309},[296,10095,10096],{"class":359},"slice",[296,10098,413],{"class":309},[296,10100,10033],{"class":317},[296,10102,1002],{"class":309},[296,10104,10105],{"class":317}," end",[296,10107,1410],{"class":309},[296,10109,10110],{"class":298,"line":6497},[296,10111,8264],{"class":309},[296,10113,10114],{"class":298,"line":6525},[296,10115,445],{"emptyLinePlaceholder":444},[296,10117,10118,10120,10123,10125,10127,10129,10131,10133,10136,10139,10141,10144,10147,10150,10152],{"class":298,"line":6551},[296,10119,350],{"class":349},[296,10121,10122],{"class":359},"formatDate",[296,10124,356],{"class":309},[296,10126,1914],{"class":309},[296,10128,1231],{"class":317},[296,10130,732],{"class":309},[296,10132,1136],{"class":2008},[296,10134,10135],{"class":309}," | ",[296,10137,10138],{"class":2008},"Date",[296,10140,10135],{"class":309},[296,10142,10143],{"class":349},"undefined",[296,10145,10146],{"class":309},"):",[296,10148,10149],{"class":2008}," string",[296,10151,382],{"class":309},[296,10153,2095],{"class":309},[296,10155,10156,10158,10160,10162,10164,10166,10168,10170,10172,10174],{"class":298,"line":6556},[296,10157,2261],{"class":313},[296,10159,1914],{"class":309},[296,10161,6727],{"class":349},[296,10163,1231],{"class":317},[296,10165,423],{"class":309},[296,10167,9784],{"class":313},[296,10169,1727],{"class":327},[296,10171,1592],{"class":331},[296,10173,416],{"class":327},[296,10175,1740],{"class":309},[296,10177,10178,10180,10183,10185,10188,10190,10192,10194],{"class":298,"line":6574},[296,10179,2100],{"class":349},[296,10181,10182],{"class":317},"d",[296,10184,356],{"class":309},[296,10186,10187],{"class":349}," new ",[296,10189,10138],{"class":359},[296,10191,413],{"class":309},[296,10193,1231],{"class":317},[296,10195,1410],{"class":309},[296,10197,10198,10200,10202,10205,10207,10209,10211,10214,10217,10219,10221,10223,10225],{"class":298,"line":6592},[296,10199,2261],{"class":313},[296,10201,1914],{"class":309},[296,10203,10204],{"class":359},"isNaN",[296,10206,413],{"class":309},[296,10208,10182],{"class":317},[296,10210,396],{"class":309},[296,10212,10213],{"class":359},"getTime",[296,10215,10216],{"class":309},"()))",[296,10218,9784],{"class":313},[296,10220,1727],{"class":327},[296,10222,1592],{"class":331},[296,10224,416],{"class":327},[296,10226,1740],{"class":309},[296,10228,10229,10231,10234,10236,10239,10241,10243,10246,10248,10250],{"class":298,"line":6663},[296,10230,2953],{"class":313},[296,10232,10233],{"class":317}," d",[296,10235,396],{"class":309},[296,10237,10238],{"class":359},"toLocaleDateString",[296,10240,413],{"class":309},[296,10242,416],{"class":327},[296,10244,10245],{"class":331},"ja-JP",[296,10247,416],{"class":327},[296,10249,1002],{"class":309},[296,10251,2095],{"class":309},[296,10253,10254,10257,10259,10261,10264,10266],{"class":298,"line":6687},[296,10255,10256],{"class":698},"    year",[296,10258,732],{"class":309},[296,10260,416],{"class":327},[296,10262,10263],{"class":331},"numeric",[296,10265,416],{"class":327},[296,10267,501],{"class":309},[296,10269,10270,10273,10275,10277,10280,10282],{"class":298,"line":6714},[296,10271,10272],{"class":698},"    month",[296,10274,732],{"class":309},[296,10276,416],{"class":327},[296,10278,10279],{"class":331},"2-digit",[296,10281,416],{"class":327},[296,10283,501],{"class":309},[296,10285,10286,10289,10291,10293,10295],{"class":298,"line":6719},[296,10287,10288],{"class":698},"    day",[296,10290,732],{"class":309},[296,10292,416],{"class":327},[296,10294,10279],{"class":331},[296,10296,2735],{"class":327},[296,10298,10299],{"class":298,"line":6739},[296,10300,8246],{"class":309},[296,10302,10303],{"class":298,"line":6763},[296,10304,10305],{"class":309},"};\n",[296,10307,10308,10310,10312],{"class":298,"line":6769},[296,10309,563],{"class":309},[296,10311,314],{"class":313},[296,10313,337],{"class":309},[296,10315,10316],{"class":298,"line":6774},[296,10317,445],{"emptyLinePlaceholder":444},[296,10319,10320,10322,10324,10326],{"class":298,"line":6791},[296,10321,310],{"class":309},[296,10323,8579],{"class":313},[296,10325,8582],{"class":317},[296,10327,337],{"class":309},[296,10329,10330,10332,10334],{"class":298,"line":6819},[296,10331,396],{"class":309},[296,10333,9010],{"class":317},[296,10335,2095],{"class":309},[296,10337,10338,10341,10343,10345,10348],{"class":298,"line":6825},[296,10339,10340],{"class":698},"  width",[296,10342,459],{"class":309},[296,10344,2826],{"class":1595},[296,10346,10347],{"class":349},"%",[296,10349,1740],{"class":309},[296,10351,10352,10355,10357,10360],{"class":298,"line":6830},[296,10353,10354],{"class":698},"  border-collapse",[296,10356,459],{"class":309},[296,10358,10359],{"class":2199}," collapse",[296,10361,1740],{"class":309},[296,10363,10364,10367,10369,10371,10373],{"class":298,"line":6835},[296,10365,10366],{"class":698},"  margin-top",[296,10368,459],{"class":309},[296,10370,1737],{"class":1595},[296,10372,8605],{"class":349},[296,10374,1740],{"class":309},[296,10376,10377],{"class":298,"line":6840},[296,10378,2986],{"class":309},[296,10380,10381],{"class":298,"line":6853},[296,10382,445],{"emptyLinePlaceholder":444},[296,10384,10385,10387,10389,10392],{"class":298,"line":6874},[296,10386,396],{"class":309},[296,10388,9010],{"class":317},[296,10390,10391],{"class":313}," th",[296,10393,2095],{"class":309},[296,10395,10396,10399,10401,10403,10406],{"class":298,"line":6879},[296,10397,10398],{"class":698},"  background",[296,10400,459],{"class":309},[296,10402,8796],{"class":309},[296,10404,10405],{"class":2199},"f3f4f6",[296,10407,1740],{"class":309},[296,10409,10410,10412,10414,10417,10419],{"class":298,"line":6884},[296,10411,8702],{"class":698},[296,10413,459],{"class":309},[296,10415,10416],{"class":1595}," 0.75",[296,10418,8605],{"class":349},[296,10420,1740],{"class":309},[296,10422,10424,10427,10429,10432],{"class":298,"line":10423},117,[296,10425,10426],{"class":698},"  text-align",[296,10428,459],{"class":309},[296,10430,10431],{"class":2199}," left",[296,10433,1740],{"class":309},[296,10435,10437,10439,10441,10444],{"class":298,"line":10436},118,[296,10438,8909],{"class":698},[296,10440,459],{"class":309},[296,10442,10443],{"class":1595}," 600",[296,10445,1740],{"class":309},[296,10447,10449,10451,10453,10455,10458],{"class":298,"line":10448},119,[296,10450,8791],{"class":698},[296,10452,459],{"class":309},[296,10454,8796],{"class":309},[296,10456,10457],{"class":2199},"374151",[296,10459,1740],{"class":309},[296,10461,10463,10466,10468,10471,10474,10477,10479,10482],{"class":298,"line":10462},120,[296,10464,10465],{"class":698},"  border-bottom",[296,10467,459],{"class":309},[296,10469,10470],{"class":1595}," 2",[296,10472,10473],{"class":349},"px",[296,10475,10476],{"class":2199}," solid",[296,10478,8796],{"class":309},[296,10480,10481],{"class":2199},"e5e7eb",[296,10483,1740],{"class":309},[296,10485,10487],{"class":298,"line":10486},121,[296,10488,2986],{"class":309},[296,10490,10492],{"class":298,"line":10491},122,[296,10493,445],{"emptyLinePlaceholder":444},[296,10495,10497,10499,10501,10504],{"class":298,"line":10496},123,[296,10498,396],{"class":309},[296,10500,9010],{"class":317},[296,10502,10503],{"class":313}," td",[296,10505,2095],{"class":309},[296,10507,10509,10511,10513,10515,10517],{"class":298,"line":10508},124,[296,10510,8702],{"class":698},[296,10512,459],{"class":309},[296,10514,10416],{"class":1595},[296,10516,8605],{"class":349},[296,10518,1740],{"class":309},[296,10520,10522,10524,10526,10528,10530,10532,10534,10536],{"class":298,"line":10521},125,[296,10523,10465],{"class":698},[296,10525,459],{"class":309},[296,10527,1737],{"class":1595},[296,10529,10473],{"class":349},[296,10531,10476],{"class":2199},[296,10533,8796],{"class":309},[296,10535,10481],{"class":2199},[296,10537,1740],{"class":309},[296,10539,10541],{"class":298,"line":10540},126,[296,10542,2986],{"class":309},[296,10544,10546],{"class":298,"line":10545},127,[296,10547,445],{"emptyLinePlaceholder":444},[296,10549,10551,10553,10555],{"class":298,"line":10550},128,[296,10552,396],{"class":309},[296,10554,9169],{"class":317},[296,10556,2095],{"class":309},[296,10558,10560,10562,10564,10566,10569],{"class":298,"line":10559},129,[296,10561,8791],{"class":698},[296,10563,459],{"class":309},[296,10565,8796],{"class":309},[296,10567,10568],{"class":2199},"3b82f6",[296,10570,1740],{"class":309},[296,10572,10574,10576,10578,10580],{"class":298,"line":10573},130,[296,10575,8806],{"class":698},[296,10577,459],{"class":309},[296,10579,8683],{"class":2199},[296,10581,1740],{"class":309},[296,10583,10585,10587,10589,10591],{"class":298,"line":10584},131,[296,10586,8909],{"class":698},[296,10588,459],{"class":309},[296,10590,8914],{"class":1595},[296,10592,1740],{"class":309},[296,10594,10596],{"class":298,"line":10595},132,[296,10597,2986],{"class":309},[296,10599,10601],{"class":298,"line":10600},133,[296,10602,445],{"emptyLinePlaceholder":444},[296,10604,10606,10608,10610,10612,10614],{"class":298,"line":10605},134,[296,10607,396],{"class":309},[296,10609,9169],{"class":317},[296,10611,459],{"class":309},[296,10613,8849],{"class":317},[296,10615,2095],{"class":309},[296,10617,10619,10621,10623,10625],{"class":298,"line":10618},135,[296,10620,8806],{"class":698},[296,10622,459],{"class":309},[296,10624,8873],{"class":2199},[296,10626,1740],{"class":309},[296,10628,10630],{"class":298,"line":10629},136,[296,10631,2986],{"class":309},[296,10633,10635],{"class":298,"line":10634},137,[296,10636,445],{"emptyLinePlaceholder":444},[296,10638,10640,10642,10644],{"class":298,"line":10639},138,[296,10641,396],{"class":309},[296,10643,1231],{"class":317},[296,10645,2095],{"class":309},[296,10647,10649,10651,10653,10655,10657],{"class":298,"line":10648},139,[296,10650,8791],{"class":698},[296,10652,459],{"class":309},[296,10654,8796],{"class":309},[296,10656,8902],{"class":2199},[296,10658,1740],{"class":309},[296,10660,10662,10665,10667,10670],{"class":298,"line":10661},140,[296,10663,10664],{"class":698},"  white-space",[296,10666,459],{"class":309},[296,10668,10669],{"class":2199}," nowrap",[296,10671,1740],{"class":309},[296,10673,10675,10677,10679,10682,10684],{"class":298,"line":10674},141,[296,10676,10340],{"class":698},[296,10678,459],{"class":309},[296,10680,10681],{"class":1595}," 120",[296,10683,10473],{"class":349},[296,10685,1740],{"class":309},[296,10687,10689],{"class":298,"line":10688},142,[296,10690,2986],{"class":309},[296,10692,10694],{"class":298,"line":10693},143,[296,10695,445],{"emptyLinePlaceholder":444},[296,10697,10699,10701,10703],{"class":298,"line":10698},144,[296,10700,396],{"class":309},[296,10702,1516],{"class":317},[296,10704,2095],{"class":309},[296,10706,10708,10710,10712,10714],{"class":298,"line":10707},145,[296,10709,8628],{"class":698},[296,10711,459],{"class":309},[296,10713,8633],{"class":2199},[296,10715,1740],{"class":309},[296,10717,10719,10721,10723,10726,10728],{"class":298,"line":10718},146,[296,10720,8664],{"class":698},[296,10722,459],{"class":309},[296,10724,10725],{"class":1595}," 0.25",[296,10727,8605],{"class":349},[296,10729,1740],{"class":309},[296,10731,10733,10735,10737,10739],{"class":298,"line":10732},147,[296,10734,8640],{"class":698},[296,10736,459],{"class":309},[296,10738,8645],{"class":2199},[296,10740,1740],{"class":309},[296,10742,10744],{"class":298,"line":10743},148,[296,10745,2986],{"class":309},[296,10747,10749],{"class":298,"line":10748},149,[296,10750,445],{"emptyLinePlaceholder":444},[296,10752,10754,10756,10758],{"class":298,"line":10753},150,[296,10755,396],{"class":309},[296,10757,9280],{"class":317},[296,10759,2095],{"class":309},[296,10761,10763,10765,10767,10770,10772,10774,10776],{"class":298,"line":10762},151,[296,10764,8702],{"class":698},[296,10766,459],{"class":309},[296,10768,10769],{"class":1595}," 0.125",[296,10771,8605],{"class":349},[296,10773,8669],{"class":1595},[296,10775,8605],{"class":349},[296,10777,1740],{"class":309},[296,10779,10781,10783,10785,10787,10790],{"class":298,"line":10780},152,[296,10782,10398],{"class":698},[296,10784,459],{"class":309},[296,10786,8796],{"class":309},[296,10788,10789],{"class":2199},"eff6ff",[296,10791,1740],{"class":309},[296,10793,10795,10797,10799,10801,10803],{"class":298,"line":10794},153,[296,10796,8791],{"class":698},[296,10798,459],{"class":309},[296,10800,8796],{"class":309},[296,10802,10568],{"class":2199},[296,10804,1740],{"class":309},[296,10806,10808,10811,10813,10815,10817],{"class":298,"line":10807},154,[296,10809,10810],{"class":698},"  border-radius",[296,10812,459],{"class":309},[296,10814,10725],{"class":1595},[296,10816,8605],{"class":349},[296,10818,1740],{"class":309},[296,10820,10822,10824,10826,10828,10830],{"class":298,"line":10821},155,[296,10823,8713],{"class":698},[296,10825,459],{"class":309},[296,10827,10416],{"class":1595},[296,10829,8605],{"class":349},[296,10831,1740],{"class":309},[296,10833,10835],{"class":298,"line":10834},156,[296,10836,2986],{"class":309},[296,10838,10840],{"class":298,"line":10839},157,[296,10841,445],{"emptyLinePlaceholder":444},[296,10843,10845,10847,10849],{"class":298,"line":10844},158,[296,10846,396],{"class":309},[296,10848,9383],{"class":317},[296,10850,2095],{"class":309},[296,10852,10854,10856,10858,10860],{"class":298,"line":10853},159,[296,10855,8628],{"class":698},[296,10857,459],{"class":309},[296,10859,8633],{"class":2199},[296,10861,1740],{"class":309},[296,10863,10865,10868,10870,10872],{"class":298,"line":10864},160,[296,10866,10867],{"class":698},"  justify-content",[296,10869,459],{"class":309},[296,10871,8657],{"class":2199},[296,10873,1740],{"class":309},[296,10875,10877,10879,10881,10883],{"class":298,"line":10876},161,[296,10878,8652],{"class":698},[296,10880,459],{"class":309},[296,10882,8657],{"class":2199},[296,10884,1740],{"class":309},[296,10886,10888,10890,10892,10894,10896],{"class":298,"line":10887},162,[296,10889,8664],{"class":698},[296,10891,459],{"class":309},[296,10893,1737],{"class":1595},[296,10895,8605],{"class":349},[296,10897,1740],{"class":309},[296,10899,10901,10903,10905,10907,10909],{"class":298,"line":10900},163,[296,10902,10366],{"class":698},[296,10904,459],{"class":309},[296,10906,10470],{"class":1595},[296,10908,8605],{"class":349},[296,10910,1740],{"class":309},[296,10912,10914,10916,10918,10920,10922],{"class":298,"line":10913},164,[296,10915,8702],{"class":698},[296,10917,459],{"class":309},[296,10919,1737],{"class":1595},[296,10921,8605],{"class":349},[296,10923,1740],{"class":309},[296,10925,10927],{"class":298,"line":10926},165,[296,10928,2986],{"class":309},[296,10930,10932],{"class":298,"line":10931},166,[296,10933,445],{"emptyLinePlaceholder":444},[296,10935,10937,10939,10941],{"class":298,"line":10936},167,[296,10938,396],{"class":309},[296,10940,9434],{"class":317},[296,10942,2095],{"class":309},[296,10944,10946,10948,10950,10952,10954,10956,10958],{"class":298,"line":10945},168,[296,10947,8702],{"class":698},[296,10949,459],{"class":309},[296,10951,8669],{"class":1595},[296,10953,8605],{"class":349},[296,10955,1737],{"class":1595},[296,10957,8605],{"class":349},[296,10959,1740],{"class":309},[296,10961,10963,10965,10967,10969,10971],{"class":298,"line":10962},169,[296,10964,10398],{"class":698},[296,10966,459],{"class":309},[296,10968,8796],{"class":309},[296,10970,10568],{"class":2199},[296,10972,1740],{"class":309},[296,10974,10976,10978,10980,10983],{"class":298,"line":10975},170,[296,10977,8791],{"class":698},[296,10979,459],{"class":309},[296,10981,10982],{"class":2199}," white",[296,10984,1740],{"class":309},[296,10986,10988,10991,10993,10995],{"class":298,"line":10987},171,[296,10989,10990],{"class":698},"  border",[296,10992,459],{"class":309},[296,10994,8683],{"class":2199},[296,10996,1740],{"class":309},[296,10998,11000,11002,11004,11006,11008],{"class":298,"line":10999},172,[296,11001,10810],{"class":698},[296,11003,459],{"class":309},[296,11005,10725],{"class":1595},[296,11007,8605],{"class":349},[296,11009,1740],{"class":309},[296,11011,11013,11016,11018,11021],{"class":298,"line":11012},173,[296,11014,11015],{"class":698},"  cursor",[296,11017,459],{"class":309},[296,11019,11020],{"class":2199}," pointer",[296,11022,1740],{"class":309},[296,11024,11026,11028,11030,11032],{"class":298,"line":11025},174,[296,11027,8909],{"class":698},[296,11029,459],{"class":309},[296,11031,8914],{"class":1595},[296,11033,1740],{"class":309},[296,11035,11037],{"class":298,"line":11036},175,[296,11038,2986],{"class":309},[296,11040,11042],{"class":298,"line":11041},176,[296,11043,445],{"emptyLinePlaceholder":444},[296,11045,11047,11049,11051,11053,11055,11057,11060,11063,11066,11068],{"class":298,"line":11046},177,[296,11048,396],{"class":309},[296,11050,9434],{"class":317},[296,11052,459],{"class":309},[296,11054,8849],{"class":317},[296,11056,459],{"class":309},[296,11058,11059],{"class":317},"not",[296,11061,11062],{"class":309},"(:",[296,11064,11065],{"class":317},"disabled",[296,11067,423],{"class":309},[296,11069,2095],{"class":309},[296,11071,11073,11075,11077,11079,11081],{"class":298,"line":11072},178,[296,11074,10398],{"class":698},[296,11076,459],{"class":309},[296,11078,8796],{"class":309},[296,11080,8799],{"class":2199},[296,11082,1740],{"class":309},[296,11084,11086],{"class":298,"line":11085},179,[296,11087,2986],{"class":309},[296,11089,11091],{"class":298,"line":11090},180,[296,11092,445],{"emptyLinePlaceholder":444},[296,11094,11096,11098,11100,11102,11104],{"class":298,"line":11095},181,[296,11097,396],{"class":309},[296,11099,9434],{"class":317},[296,11101,459],{"class":309},[296,11103,11065],{"class":317},[296,11105,2095],{"class":309},[296,11107,11109,11111,11113,11115,11118],{"class":298,"line":11108},182,[296,11110,10398],{"class":698},[296,11112,459],{"class":309},[296,11114,8796],{"class":309},[296,11116,11117],{"class":2199},"d1d5db",[296,11119,1740],{"class":309},[296,11121,11123,11125,11127,11130],{"class":298,"line":11122},183,[296,11124,11015],{"class":698},[296,11126,459],{"class":309},[296,11128,11129],{"class":2199}," not-allowed",[296,11131,1740],{"class":309},[296,11133,11135],{"class":298,"line":11134},184,[296,11136,2986],{"class":309},[296,11138,11140],{"class":298,"line":11139},185,[296,11141,445],{"emptyLinePlaceholder":444},[296,11143,11145,11147,11149],{"class":298,"line":11144},186,[296,11146,396],{"class":309},[296,11148,9474],{"class":317},[296,11150,2095],{"class":309},[296,11152,11154,11156,11158,11160,11162],{"class":298,"line":11153},187,[296,11155,8791],{"class":698},[296,11157,459],{"class":309},[296,11159,8796],{"class":309},[296,11161,8902],{"class":2199},[296,11163,1740],{"class":309},[296,11165,11167,11169,11171,11173],{"class":298,"line":11166},188,[296,11168,8909],{"class":698},[296,11170,459],{"class":309},[296,11172,8914],{"class":1595},[296,11174,1740],{"class":309},[296,11176,11178],{"class":298,"line":11177},189,[296,11179,2986],{"class":309},[296,11181,11183,11185,11187],{"class":298,"line":11182},190,[296,11184,563],{"class":309},[296,11186,8579],{"class":313},[296,11188,337],{"class":309},[76,11190,11192],{"id":11191},"ステップ7-ページ作成","ステップ7: ページ作成",[182,11194,11196,11199],{"id":11195},"apppagesslugvuecatch-all",[137,11197,11198],{},"app/pages/[...slug].vue","（Catch-all）",[130,11201,11203],{"className":290,"code":11202,"language":292,"meta":139,"style":139},"\u003Cscript setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport { queryCollection } from \"#imports\";\n\nconst route = useRoute();\nconst docPath = computed(() => {\n  const normalized = route.path.replace(/\\/$/, \"\");\n  return normalized === \"\" ? \"/\" : normalized;\n});\n\n// 単一ドキュメントを取得\nconst { data: doc } = await useAsyncData(\n  `content-${docPath.value}`,\n  () => queryCollection(\"pages\").path(docPath.value).first(),\n  { watch: [docPath] }\n);\n\n// ディレクトリ内の記事一覧を取得\nconst { data: allPages } = await useAsyncData(\n  'all-pages-for-dir',\n  () => queryCollection(\"pages\").all()\n);\n\nconst articles = computed(() => {\n  if (!allPages.value) return [];\n  return allPages.value.filter(page => {\n    const pagePath = page.path || page._path;\n    if (!pagePath) return false;\n    return pagePath.startsWith(docPath.value + \"/\") && pagePath !== docPath.value;\n  });\n});\n\nconst isDirectoryListing = computed(() => !doc.value && articles.value.length > 0);\n\n// SEO設定\nuseSeoMeta({\n  title: () => {\n    if (doc.value?.title) return doc.value.title;\n    if (isDirectoryListing.value) return `${docPath.value} の記事一覧`;\n    return 'ページが見つかりません';\n  },\n  description: () => {\n    if (doc.value?.description) return doc.value.description;\n    if (isDirectoryListing.value) return `${docPath.value} 配下の記事一覧を表示しています。`;\n    return '指定されたページが存在しません。';\n  },\n});\n\u003C/script>\n\n\u003Ctemplate>\n  \u003Cmain>\n    \u003CBreadcrumb />\n    \u003Ctemplate v-if=\"isDirectoryListing\">\n      \u003Csection class=\"directory-listing\">\n        \u003Ch1>{{ docPath }} の記事一覧\u003C/h1>\n        \u003CArticleTable :articles=\"articles\" :items-per-page=\"20\" />\n      \u003C/section>\n    \u003C/template>\n    \u003Ctemplate v-else-if=\"doc\">\n      \u003C!-- DocPageコンポーネントがある場合はそれを使用、なければContentRenderer -->\n      \u003CContentRenderer :value=\"doc\" />\n    \u003C/template>\n    \u003Ctemplate v-else>\n      \u003Csection class=\"state\">\n        \u003Ch1>Not Found\u003C/h1>\n        \u003Cp>指定されたドキュメントが存在しません。\u003C/p>\n        \u003CNuxtLink to=\"/\">トップページに戻る\u003C/NuxtLink>\n      \u003C/section>\n    \u003C/template>\n  \u003C/main>\n\u003C/template>\n\n\u003Cstyle scoped>\nmain {\n  max-width: 1300px;\n  margin: 0 auto;\n  padding: 2rem 0.75rem;\n  line-height: 1.7;\n}\n\n@media (min-width: 768px) {\n  main {\n    padding: 3rem 1.5rem;\n  }\n}\n\n.state {\n  text-align: center;\n  color: #555;\n}\n\n.directory-listing {\n  max-width: 900px;\n  margin: 0 auto;\n}\n\u003C/style>\n",[137,11204,11205,11225,11245,11266,11270,11282,11298,11335,11363,11367,11371,11376,11398,11418,11452,11467,11471,11475,11480,11503,11515,11537,11541,11545,11561,11582,11604,11631,11651,11696,11700,11704,11708,11750,11754,11759,11766,11774,11808,11843,11856,11860,11866,11898,11933,11946,11950,11954,11962,11966,11974,11983,11992,12010,12030,12047,12079,12087,12095,12114,12119,12137,12145,12155,12174,12191,12208,12236,12244,12252,12260,12268,12272,12282,12288,12302,12315,12331,12343,12347,12351,12375,12382,12399,12403,12407,12411,12419,12429,12442,12446,12450,12458,12471,12483,12487],{"__ignoreMap":139},[296,11206,11207,11209,11211,11213,11215,11217,11219,11221,11223],{"class":298,"line":299},[296,11208,310],{"class":309},[296,11210,314],{"class":313},[296,11212,318],{"class":317},[296,11214,321],{"class":317},[296,11216,324],{"class":309},[296,11218,328],{"class":327},[296,11220,332],{"class":331},[296,11222,328],{"class":327},[296,11224,337],{"class":309},[296,11226,11227,11229,11231,11233,11235,11237,11239,11241,11243],{"class":298,"line":306},[296,11228,993],{"class":313},[296,11230,996],{"class":309},[296,11232,376],{"class":317},[296,11234,465],{"class":309},[296,11236,1010],{"class":313},[296,11238,1013],{"class":327},[296,11240,292],{"class":331},[296,11242,328],{"class":327},[296,11244,1740],{"class":309},[296,11246,11247,11249,11251,11253,11255,11257,11259,11262,11264],{"class":298,"line":340},[296,11248,993],{"class":313},[296,11250,996],{"class":309},[296,11252,512],{"class":317},[296,11254,465],{"class":309},[296,11256,1010],{"class":313},[296,11258,1013],{"class":327},[296,11260,11261],{"class":331},"#imports",[296,11263,328],{"class":327},[296,11265,1740],{"class":309},[296,11267,11268],{"class":298,"line":346},[296,11269,445],{"emptyLinePlaceholder":444},[296,11271,11272,11274,11276,11278,11280],{"class":298,"line":366},[296,11273,350],{"class":349},[296,11275,353],{"class":317},[296,11277,356],{"class":309},[296,11279,360],{"class":359},[296,11281,7961],{"class":309},[296,11283,11284,11286,11288,11290,11292,11294,11296],{"class":298,"line":441},[296,11285,350],{"class":349},[296,11287,371],{"class":317},[296,11289,356],{"class":309},[296,11291,376],{"class":359},[296,11293,379],{"class":309},[296,11295,382],{"class":309},[296,11297,2095],{"class":309},[296,11299,11300,11302,11305,11307,11309,11311,11313,11315,11318,11320,11322,11324,11326,11328,11330,11333],{"class":298,"line":448},[296,11301,2100],{"class":349},[296,11303,11304],{"class":317},"normalized",[296,11306,356],{"class":309},[296,11308,8038],{"class":317},[296,11310,396],{"class":309},[296,11312,532],{"class":317},[296,11314,396],{"class":309},[296,11316,11317],{"class":359},"replace",[296,11319,413],{"class":309},[296,11321,388],{"class":327},[296,11323,2164],{"class":2163},[296,11325,2245],{"class":313},[296,11327,388],{"class":327},[296,11329,1002],{"class":309},[296,11331,11332],{"class":327}," \"\"",[296,11334,1410],{"class":309},[296,11336,11337,11339,11342,11344,11347,11350,11352,11354,11356,11359,11361],{"class":298,"line":479},[296,11338,2953],{"class":313},[296,11340,11341],{"class":317}," normalized",[296,11343,7708],{"class":349},[296,11345,11346],{"class":327},"\"\"",[296,11348,11349],{"class":349}," ? ",[296,11351,328],{"class":327},[296,11353,388],{"class":331},[296,11355,328],{"class":327},[296,11357,11358],{"class":349}," : ",[296,11360,11304],{"class":317},[296,11362,1740],{"class":309},[296,11364,11365],{"class":298,"line":504},[296,11366,8264],{"class":309},[296,11368,11369],{"class":298,"line":526},[296,11370,445],{"emptyLinePlaceholder":444},[296,11372,11373],{"class":298,"line":545},[296,11374,11375],{"class":302},"// 単一ドキュメントを取得\n",[296,11377,11378,11380,11382,11384,11386,11388,11390,11392,11394,11396],{"class":298,"line":555},[296,11379,350],{"class":349},[296,11381,453],{"class":309},[296,11383,456],{"class":317},[296,11385,459],{"class":309},[296,11387,462],{"class":317},[296,11389,465],{"class":309},[296,11391,356],{"class":309},[296,11393,470],{"class":313},[296,11395,473],{"class":359},[296,11397,476],{"class":309},[296,11399,11400,11402,11404,11406,11408,11410,11412,11414,11416],{"class":298,"line":560},[296,11401,482],{"class":327},[296,11403,485],{"class":331},[296,11405,391],{"class":313},[296,11407,371],{"class":331},[296,11409,396],{"class":309},[296,11411,494],{"class":331},[296,11413,432],{"class":313},[296,11415,435],{"class":327},[296,11417,501],{"class":309},[296,11419,11420,11422,11424,11426,11428,11430,11432,11434,11436,11438,11440,11442,11444,11446,11448,11450],{"class":298,"line":570},[296,11421,507],{"class":309},[296,11423,382],{"class":309},[296,11425,512],{"class":359},[296,11427,413],{"class":309},[296,11429,328],{"class":327},[296,11431,519],{"class":331},[296,11433,328],{"class":327},[296,11435,7531],{"class":309},[296,11437,532],{"class":359},[296,11439,413],{"class":309},[296,11441,371],{"class":317},[296,11443,396],{"class":309},[296,11445,494],{"class":317},[296,11447,7531],{"class":309},[296,11449,550],{"class":359},[296,11451,1145],{"class":309},[296,11453,11454,11457,11460,11462,11464],{"class":298,"line":575},[296,11455,11456],{"class":309},"  { ",[296,11458,11459],{"class":698},"watch",[296,11461,702],{"class":309},[296,11463,371],{"class":317},[296,11465,11466],{"class":309},"] }\n",[296,11468,11469],{"class":298,"line":585},[296,11470,1410],{"class":309},[296,11472,11473],{"class":298,"line":620},[296,11474,445],{"emptyLinePlaceholder":444},[296,11476,11477],{"class":298,"line":842},[296,11478,11479],{"class":302},"// ディレクトリ内の記事一覧を取得\n",[296,11481,11482,11484,11486,11488,11490,11493,11495,11497,11499,11501],{"class":298,"line":859},[296,11483,350],{"class":349},[296,11485,453],{"class":309},[296,11487,456],{"class":317},[296,11489,459],{"class":309},[296,11491,11492],{"class":317}," allPages",[296,11494,465],{"class":309},[296,11496,356],{"class":309},[296,11498,470],{"class":313},[296,11500,473],{"class":359},[296,11502,476],{"class":309},[296,11504,11505,11508,11511,11513],{"class":298,"line":875},[296,11506,11507],{"class":327},"  '",[296,11509,11510],{"class":331},"all-pages-for-dir",[296,11512,416],{"class":327},[296,11514,501],{"class":309},[296,11516,11517,11519,11521,11523,11525,11527,11529,11531,11533,11535],{"class":298,"line":881},[296,11518,507],{"class":309},[296,11520,382],{"class":309},[296,11522,512],{"class":359},[296,11524,413],{"class":309},[296,11526,328],{"class":327},[296,11528,519],{"class":331},[296,11530,328],{"class":327},[296,11532,7531],{"class":309},[296,11534,1541],{"class":359},[296,11536,363],{"class":309},[296,11538,11539],{"class":298,"line":886},[296,11540,1410],{"class":309},[296,11542,11543],{"class":298,"line":891},[296,11544,445],{"emptyLinePlaceholder":444},[296,11546,11547,11549,11551,11553,11555,11557,11559],{"class":298,"line":899},[296,11548,350],{"class":349},[296,11550,3907],{"class":317},[296,11552,356],{"class":309},[296,11554,376],{"class":359},[296,11556,379],{"class":309},[296,11558,382],{"class":309},[296,11560,2095],{"class":309},[296,11562,11563,11565,11567,11569,11572,11574,11576,11578,11580],{"class":298,"line":907},[296,11564,2261],{"class":313},[296,11566,1914],{"class":309},[296,11568,6727],{"class":349},[296,11570,11571],{"class":317},"allPages",[296,11573,396],{"class":309},[296,11575,494],{"class":317},[296,11577,423],{"class":309},[296,11579,9784],{"class":313},[296,11581,9897],{"class":309},[296,11583,11584,11586,11588,11590,11592,11594,11596,11598,11600,11602],{"class":298,"line":924},[296,11585,2953],{"class":313},[296,11587,11492],{"class":317},[296,11589,396],{"class":309},[296,11591,494],{"class":317},[296,11593,396],{"class":309},[296,11595,8072],{"class":359},[296,11597,413],{"class":309},[296,11599,1082],{"class":317},[296,11601,382],{"class":309},[296,11603,2095],{"class":309},[296,11605,11606,11608,11611,11613,11616,11618,11620,11622,11624,11626,11629],{"class":298,"line":956},[296,11607,2274],{"class":349},[296,11609,11610],{"class":317},"pagePath",[296,11612,356],{"class":309},[296,11614,11615],{"class":317}," page",[296,11617,396],{"class":309},[296,11619,532],{"class":317},[296,11621,2125],{"class":349},[296,11623,1082],{"class":317},[296,11625,396],{"class":309},[296,11627,11628],{"class":317},"_path",[296,11630,1740],{"class":309},[296,11632,11633,11636,11638,11640,11642,11644,11646,11649],{"class":298,"line":961},[296,11634,11635],{"class":313},"    if",[296,11637,1914],{"class":309},[296,11639,6727],{"class":349},[296,11641,11610],{"class":317},[296,11643,423],{"class":309},[296,11645,9784],{"class":313},[296,11647,11648],{"class":313}," false",[296,11650,1740],{"class":309},[296,11652,11653,11655,11658,11660,11663,11665,11667,11669,11671,11673,11675,11677,11679,11681,11683,11685,11688,11690,11692,11694],{"class":298,"line":967},[296,11654,2347],{"class":313},[296,11656,11657],{"class":317}," pagePath",[296,11659,396],{"class":309},[296,11661,11662],{"class":359},"startsWith",[296,11664,413],{"class":309},[296,11666,371],{"class":317},[296,11668,396],{"class":309},[296,11670,494],{"class":317},[296,11672,10076],{"class":349},[296,11674,328],{"class":327},[296,11676,388],{"class":331},[296,11678,328],{"class":327},[296,11680,423],{"class":309},[296,11682,7740],{"class":349},[296,11684,11610],{"class":317},[296,11686,11687],{"class":349}," !== ",[296,11689,371],{"class":317},[296,11691,396],{"class":309},[296,11693,494],{"class":317},[296,11695,1740],{"class":309},[296,11697,11698],{"class":298,"line":973},[296,11699,8246],{"class":309},[296,11701,11702],{"class":298,"line":5702},[296,11703,8264],{"class":309},[296,11705,11706],{"class":298,"line":5716},[296,11707,445],{"emptyLinePlaceholder":444},[296,11709,11710,11712,11715,11717,11719,11721,11723,11726,11728,11730,11732,11734,11736,11738,11740,11742,11744,11746,11748],{"class":298,"line":5721},[296,11711,350],{"class":349},[296,11713,11714],{"class":317},"isDirectoryListing",[296,11716,356],{"class":309},[296,11718,376],{"class":359},[296,11720,379],{"class":309},[296,11722,382],{"class":309},[296,11724,11725],{"class":349}," !",[296,11727,601],{"class":317},[296,11729,396],{"class":309},[296,11731,494],{"class":317},[296,11733,7740],{"class":349},[296,11735,3907],{"class":317},[296,11737,396],{"class":309},[296,11739,494],{"class":317},[296,11741,396],{"class":309},[296,11743,9813],{"class":698},[296,11745,4888],{"class":309},[296,11747,8695],{"class":1595},[296,11749,1410],{"class":309},[296,11751,11752],{"class":298,"line":5726},[296,11753,445],{"emptyLinePlaceholder":444},[296,11755,11756],{"class":298,"line":5733},[296,11757,11758],{"class":302},"// SEO設定\n",[296,11760,11761,11764],{"class":298,"line":5744},[296,11762,11763],{"class":359},"useSeoMeta",[296,11765,693],{"class":309},[296,11767,11768,11771],{"class":298,"line":5751},[296,11769,11770],{"class":359},"  title",[296,11772,11773],{"class":309},": () => {\n",[296,11775,11776,11778,11780,11782,11784,11786,11788,11790,11793,11796,11798,11800,11802,11804,11806],{"class":298,"line":5764},[296,11777,11635],{"class":313},[296,11779,1914],{"class":309},[296,11781,601],{"class":317},[296,11783,396],{"class":309},[296,11785,494],{"class":317},[296,11787,407],{"class":309},[296,11789,3302],{"class":317},[296,11791,11792],{"class":309},") ",[296,11794,11795],{"class":313},"return",[296,11797,462],{"class":317},[296,11799,396],{"class":309},[296,11801,494],{"class":317},[296,11803,396],{"class":309},[296,11805,3302],{"class":317},[296,11807,1740],{"class":309},[296,11809,11810,11812,11814,11816,11818,11820,11822,11824,11826,11828,11830,11832,11834,11836,11839,11841],{"class":298,"line":5769},[296,11811,11635],{"class":313},[296,11813,1914],{"class":309},[296,11815,11714],{"class":317},[296,11817,396],{"class":309},[296,11819,494],{"class":317},[296,11821,11792],{"class":309},[296,11823,11795],{"class":313},[296,11825,385],{"class":327},[296,11827,391],{"class":313},[296,11829,371],{"class":331},[296,11831,396],{"class":309},[296,11833,494],{"class":331},[296,11835,432],{"class":313},[296,11837,11838],{"class":331}," の記事一覧",[296,11840,435],{"class":327},[296,11842,1740],{"class":309},[296,11844,11845,11847,11849,11852,11854],{"class":298,"line":5776},[296,11846,2347],{"class":313},[296,11848,1727],{"class":327},[296,11850,11851],{"class":331},"ページが見つかりません",[296,11853,416],{"class":327},[296,11855,1740],{"class":309},[296,11857,11858],{"class":298,"line":5789},[296,11859,5670],{"class":309},[296,11861,11862,11864],{"class":298,"line":5794},[296,11863,1337],{"class":359},[296,11865,11773],{"class":309},[296,11867,11868,11870,11872,11874,11876,11878,11880,11882,11884,11886,11888,11890,11892,11894,11896],{"class":298,"line":5802},[296,11869,11635],{"class":313},[296,11871,1914],{"class":309},[296,11873,601],{"class":317},[296,11875,396],{"class":309},[296,11877,494],{"class":317},[296,11879,407],{"class":309},[296,11881,3312],{"class":317},[296,11883,11792],{"class":309},[296,11885,11795],{"class":313},[296,11887,462],{"class":317},[296,11889,396],{"class":309},[296,11891,494],{"class":317},[296,11893,396],{"class":309},[296,11895,3312],{"class":317},[296,11897,1740],{"class":309},[296,11899,11900,11902,11904,11906,11908,11910,11912,11914,11916,11918,11920,11922,11924,11926,11929,11931],{"class":298,"line":5810},[296,11901,11635],{"class":313},[296,11903,1914],{"class":309},[296,11905,11714],{"class":317},[296,11907,396],{"class":309},[296,11909,494],{"class":317},[296,11911,11792],{"class":309},[296,11913,11795],{"class":313},[296,11915,385],{"class":327},[296,11917,391],{"class":313},[296,11919,371],{"class":331},[296,11921,396],{"class":309},[296,11923,494],{"class":331},[296,11925,432],{"class":313},[296,11927,11928],{"class":331}," 配下の記事一覧を表示しています。",[296,11930,435],{"class":327},[296,11932,1740],{"class":309},[296,11934,11935,11937,11939,11942,11944],{"class":298,"line":5818},[296,11936,2347],{"class":313},[296,11938,1727],{"class":327},[296,11940,11941],{"class":331},"指定されたページが存在しません。",[296,11943,416],{"class":327},[296,11945,1740],{"class":309},[296,11947,11948],{"class":298,"line":5826},[296,11949,5670],{"class":309},[296,11951,11952],{"class":298,"line":5843},[296,11953,8264],{"class":309},[296,11955,11956,11958,11960],{"class":298,"line":5857},[296,11957,563],{"class":309},[296,11959,314],{"class":313},[296,11961,337],{"class":309},[296,11963,11964],{"class":298,"line":5863},[296,11965,445],{"emptyLinePlaceholder":444},[296,11967,11968,11970,11972],{"class":298,"line":5871},[296,11969,310],{"class":309},[296,11971,580],{"class":313},[296,11973,337],{"class":309},[296,11975,11976,11978,11981],{"class":298,"line":5927},[296,11977,588],{"class":309},[296,11979,11980],{"class":313},"main",[296,11982,337],{"class":309},[296,11984,11985,11987,11990],{"class":298,"line":5981},[296,11986,2634],{"class":309},[296,11988,11989],{"class":313},"Breadcrumb",[296,11991,617],{"class":309},[296,11993,11994,11996,11998,12000,12002,12004,12006,12008],{"class":298,"line":6009},[296,11995,2634],{"class":309},[296,11997,580],{"class":313},[296,11999,594],{"class":313},[296,12001,324],{"class":309},[296,12003,328],{"class":309},[296,12005,11714],{"class":317},[296,12007,328],{"class":309},[296,12009,337],{"class":309},[296,12011,12012,12014,12017,12019,12021,12023,12026,12028],{"class":298,"line":6015},[296,12013,3044],{"class":309},[296,12015,12016],{"class":313},"section",[296,12018,8294],{"class":317},[296,12020,324],{"class":309},[296,12022,328],{"class":327},[296,12024,12025],{"class":331},"directory-listing",[296,12027,328],{"class":327},[296,12029,337],{"class":309},[296,12031,12032,12034,12036,12038,12041,12043,12045],{"class":298,"line":6021},[296,12033,3076],{"class":309},[296,12035,10],{"class":313},[296,12037,2639],{"class":309},[296,12039,12040],{"class":1308},"{{ docPath }} の記事一覧",[296,12042,563],{"class":309},[296,12044,10],{"class":313},[296,12046,337],{"class":309},[296,12048,12049,12051,12054,12057,12059,12061,12063,12065,12068,12070,12072,12075,12077],{"class":298,"line":6026},[296,12050,3076],{"class":309},[296,12052,12053],{"class":313},"ArticleTable",[296,12055,12056],{"class":317}," :articles",[296,12058,324],{"class":309},[296,12060,328],{"class":327},[296,12062,3907],{"class":331},[296,12064,328],{"class":327},[296,12066,12067],{"class":317}," :items-per-page",[296,12069,324],{"class":309},[296,12071,328],{"class":327},[296,12073,12074],{"class":331},"20",[296,12076,328],{"class":327},[296,12078,617],{"class":309},[296,12080,12081,12083,12085],{"class":298,"line":6031},[296,12082,3121],{"class":309},[296,12084,12016],{"class":313},[296,12086,337],{"class":309},[296,12088,12089,12091,12093],{"class":298,"line":6038},[296,12090,3130],{"class":309},[296,12092,580],{"class":313},[296,12094,337],{"class":309},[296,12096,12097,12099,12101,12104,12106,12108,12110,12112],{"class":298,"line":6049},[296,12098,2634],{"class":309},[296,12100,580],{"class":313},[296,12102,12103],{"class":313}," v-else-if",[296,12105,324],{"class":309},[296,12107,328],{"class":309},[296,12109,601],{"class":317},[296,12111,328],{"class":309},[296,12113,337],{"class":309},[296,12115,12116],{"class":298,"line":6056},[296,12117,12118],{"class":302},"      \u003C!-- DocPageコンポーネントがある場合はそれを使用、なければContentRenderer -->\n",[296,12120,12121,12123,12125,12127,12129,12131,12133,12135],{"class":298,"line":6068},[296,12122,3044],{"class":309},[296,12124,591],{"class":313},[296,12126,606],{"class":317},[296,12128,324],{"class":309},[296,12130,328],{"class":327},[296,12132,601],{"class":331},[296,12134,328],{"class":327},[296,12136,617],{"class":309},[296,12138,12139,12141,12143],{"class":298,"line":6080},[296,12140,3130],{"class":309},[296,12142,580],{"class":313},[296,12144,337],{"class":309},[296,12146,12147,12149,12151,12153],{"class":298,"line":6085},[296,12148,2634],{"class":309},[296,12150,580],{"class":313},[296,12152,8452],{"class":313},[296,12154,337],{"class":309},[296,12156,12157,12159,12161,12163,12165,12167,12170,12172],{"class":298,"line":6096},[296,12158,3044],{"class":309},[296,12160,12016],{"class":313},[296,12162,8294],{"class":317},[296,12164,324],{"class":309},[296,12166,328],{"class":327},[296,12168,12169],{"class":331},"state",[296,12171,328],{"class":327},[296,12173,337],{"class":309},[296,12175,12176,12178,12180,12182,12185,12187,12189],{"class":298,"line":6101},[296,12177,3076],{"class":309},[296,12179,10],{"class":313},[296,12181,2639],{"class":309},[296,12183,12184],{"class":1308},"Not Found",[296,12186,563],{"class":309},[296,12188,10],{"class":313},[296,12190,337],{"class":309},[296,12192,12193,12195,12197,12199,12202,12204,12206],{"class":298,"line":6108},[296,12194,3076],{"class":309},[296,12196,80],{"class":313},[296,12198,2639],{"class":309},[296,12200,12201],{"class":1308},"指定されたドキュメントが存在しません。",[296,12203,563],{"class":309},[296,12205,80],{"class":313},[296,12207,337],{"class":309},[296,12209,12210,12212,12214,12217,12219,12221,12223,12225,12227,12230,12232,12234],{"class":298,"line":6115},[296,12211,3076],{"class":309},[296,12213,4056],{"class":313},[296,12215,12216],{"class":317}," to",[296,12218,324],{"class":309},[296,12220,328],{"class":327},[296,12222,388],{"class":331},[296,12224,328],{"class":327},[296,12226,2639],{"class":309},[296,12228,12229],{"class":1308},"トップページに戻る",[296,12231,563],{"class":309},[296,12233,4056],{"class":313},[296,12235,337],{"class":309},[296,12237,12238,12240,12242],{"class":298,"line":6130},[296,12239,3121],{"class":309},[296,12241,12016],{"class":313},[296,12243,337],{"class":309},[296,12245,12246,12248,12250],{"class":298,"line":6153},[296,12247,3130],{"class":309},[296,12249,580],{"class":313},[296,12251,337],{"class":309},[296,12253,12254,12256,12258],{"class":298,"line":6158},[296,12255,2670],{"class":309},[296,12257,11980],{"class":313},[296,12259,337],{"class":309},[296,12261,12262,12264,12266],{"class":298,"line":6163},[296,12263,563],{"class":309},[296,12265,580],{"class":313},[296,12267,337],{"class":309},[296,12269,12270],{"class":298,"line":6168},[296,12271,445],{"emptyLinePlaceholder":444},[296,12273,12274,12276,12278,12280],{"class":298,"line":6173},[296,12275,310],{"class":309},[296,12277,8579],{"class":313},[296,12279,8582],{"class":317},[296,12281,337],{"class":309},[296,12283,12284,12286],{"class":298,"line":6181},[296,12285,11980],{"class":313},[296,12287,2095],{"class":309},[296,12289,12290,12293,12295,12298,12300],{"class":298,"line":6187},[296,12291,12292],{"class":698},"  max-width",[296,12294,459],{"class":309},[296,12296,12297],{"class":1595}," 1300",[296,12299,10473],{"class":349},[296,12301,1740],{"class":309},[296,12303,12304,12306,12308,12310,12313],{"class":298,"line":6213},[296,12305,8690],{"class":698},[296,12307,459],{"class":309},[296,12309,8695],{"class":1595},[296,12311,12312],{"class":2199}," auto",[296,12314,1740],{"class":309},[296,12316,12317,12319,12321,12323,12325,12327,12329],{"class":298,"line":6243},[296,12318,8702],{"class":698},[296,12320,459],{"class":309},[296,12322,10470],{"class":1595},[296,12324,8605],{"class":349},[296,12326,10416],{"class":1595},[296,12328,8605],{"class":349},[296,12330,1740],{"class":309},[296,12332,12333,12336,12338,12341],{"class":298,"line":6268},[296,12334,12335],{"class":698},"  line-height",[296,12337,459],{"class":309},[296,12339,12340],{"class":1595}," 1.7",[296,12342,1740],{"class":309},[296,12344,12345],{"class":298,"line":6274},[296,12346,2986],{"class":309},[296,12348,12349],{"class":298,"line":6282},[296,12350,445],{"emptyLinePlaceholder":444},[296,12352,12353,12356,12359,12361,12364,12366,12369,12371,12373],{"class":298,"line":6311},[296,12354,12355],{"class":309},"@",[296,12357,12358],{"class":313},"media",[296,12360,1914],{"class":309},[296,12362,12363],{"class":698},"min-width",[296,12365,459],{"class":309},[296,12367,12368],{"class":1595}," 768",[296,12370,10473],{"class":349},[296,12372,423],{"class":309},[296,12374,2095],{"class":309},[296,12376,12377,12380],{"class":298,"line":6316},[296,12378,12379],{"class":313},"  main",[296,12381,2095],{"class":309},[296,12383,12384,12387,12389,12391,12393,12395,12397],{"class":298,"line":6321},[296,12385,12386],{"class":698},"    padding",[296,12388,459],{"class":309},[296,12390,2863],{"class":1595},[296,12392,8605],{"class":349},[296,12394,8602],{"class":1595},[296,12396,8605],{"class":349},[296,12398,1740],{"class":309},[296,12400,12401],{"class":298,"line":6326},[296,12402,970],{"class":309},[296,12404,12405],{"class":298,"line":6333},[296,12406,2986],{"class":309},[296,12408,12409],{"class":298,"line":6352},[296,12410,445],{"emptyLinePlaceholder":444},[296,12412,12413,12415,12417],{"class":298,"line":6377},[296,12414,396],{"class":309},[296,12416,12169],{"class":317},[296,12418,2095],{"class":309},[296,12420,12421,12423,12425,12427],{"class":298,"line":6406},[296,12422,10426],{"class":698},[296,12424,459],{"class":309},[296,12426,8657],{"class":2199},[296,12428,1740],{"class":309},[296,12430,12431,12433,12435,12437,12440],{"class":298,"line":6411},[296,12432,8791],{"class":698},[296,12434,459],{"class":309},[296,12436,8796],{"class":309},[296,12438,12439],{"class":2199},"555",[296,12441,1740],{"class":309},[296,12443,12444],{"class":298,"line":6438},[296,12445,2986],{"class":309},[296,12447,12448],{"class":298,"line":6471},[296,12449,445],{"emptyLinePlaceholder":444},[296,12451,12452,12454,12456],{"class":298,"line":6476},[296,12453,396],{"class":309},[296,12455,12025],{"class":317},[296,12457,2095],{"class":309},[296,12459,12460,12462,12464,12467,12469],{"class":298,"line":6497},[296,12461,12292],{"class":698},[296,12463,459],{"class":309},[296,12465,12466],{"class":1595}," 900",[296,12468,10473],{"class":349},[296,12470,1740],{"class":309},[296,12472,12473,12475,12477,12479,12481],{"class":298,"line":6525},[296,12474,8690],{"class":698},[296,12476,459],{"class":309},[296,12478,8695],{"class":1595},[296,12480,12312],{"class":2199},[296,12482,1740],{"class":309},[296,12484,12485],{"class":298,"line":6551},[296,12486,2986],{"class":309},[296,12488,12489,12491,12493],{"class":298,"line":6556},[296,12490,563],{"class":309},[296,12492,8579],{"class":313},[296,12494,337],{"class":309},[76,12496,12498],{"id":12497},"ステップ7-サンプルコンテンツ作成","ステップ7: サンプルコンテンツ作成",[182,12500,12502],{"id":12501},"content2025-11-29first-articlemd",[137,12503,12504],{},"content/2025-11-29/first-article.md",[130,12506,12508],{"className":1831,"code":12507,"language":1833,"meta":139,"style":139},"---\ntitle: はじめての記事\ndescription: Nuxt Content + Pagesハイブリッドシステムのテスト記事\ntags:\n  - nuxt\n  - content\n  - markdown\npublishedAt: 2025-11-29\nupdatedAt: 2025-11-29\n---\n\n# はじめての記事\n\nこれはNuxt Contentで管理されるMarkdown記事です。\n\n## 特徴\n\n- SQLiteに自動保存\n- リアルタイム更新\n- クエリAPIでの取得\n\n## コードブロック例\n\n\\`\\`\\`typescript\nconst greeting = \"Hello, Nuxt Content!\"\nconsole.log(greeting)\n\\`\\`\\`\n",[137,12509,12510,12514,12523,12532,12539,12547,12554,12561,12569,12578,12582,12586,12592,12596,12601,12605,12611,12615,12622,12629,12636,12640,12647,12651,12658,12663,12668],{"__ignoreMap":139},[296,12511,12512],{"class":298,"line":299},[296,12513,3297],{"class":309},[296,12515,12516,12518,12520],{"class":298,"line":306},[296,12517,3302],{"class":698},[296,12519,459],{"class":309},[296,12521,12522],{"class":331}," はじめての記事\n",[296,12524,12525,12527,12529],{"class":298,"line":340},[296,12526,3312],{"class":698},[296,12528,459],{"class":309},[296,12530,12531],{"class":331}," Nuxt Content + Pagesハイブリッドシステムのテスト記事\n",[296,12533,12534,12536],{"class":298,"line":346},[296,12535,1516],{"class":698},[296,12537,12538],{"class":309},":\n",[296,12540,12541,12544],{"class":298,"line":366},[296,12542,12543],{"class":309},"  -",[296,12545,12546],{"class":331}," nuxt\n",[296,12548,12549,12551],{"class":298,"line":441},[296,12550,12543],{"class":309},[296,12552,12553],{"class":331}," content\n",[296,12555,12556,12558],{"class":298,"line":448},[296,12557,12543],{"class":309},[296,12559,12560],{"class":331}," markdown\n",[296,12562,12563,12565,12567],{"class":298,"line":479},[296,12564,1587],{"class":698},[296,12566,459],{"class":309},[296,12568,3349],{"class":2199},[296,12570,12571,12574,12576],{"class":298,"line":504},[296,12572,12573],{"class":698},"updatedAt",[296,12575,459],{"class":309},[296,12577,3349],{"class":2199},[296,12579,12580],{"class":298,"line":526},[296,12581,3297],{"class":309},[296,12583,12584],{"class":298,"line":545},[296,12585,445],{"emptyLinePlaceholder":444},[296,12587,12588,12590],{"class":298,"line":555},[296,12589,3363],{"class":3362},[296,12591,12522],{"class":3366},[296,12593,12594],{"class":298,"line":560},[296,12595,445],{"emptyLinePlaceholder":444},[296,12597,12598],{"class":298,"line":570},[296,12599,12600],{"class":1308},"これはNuxt Contentで管理されるMarkdown記事です。\n",[296,12602,12603],{"class":298,"line":575},[296,12604,445],{"emptyLinePlaceholder":444},[296,12606,12607,12609],{"class":298,"line":585},[296,12608,3384],{"class":3362},[296,12610,3420],{"class":3366},[296,12612,12613],{"class":298,"line":620},[296,12614,445],{"emptyLinePlaceholder":444},[296,12616,12617,12619],{"class":298,"line":842},[296,12618,1592],{"class":2199},[296,12620,12621],{"class":1308}," SQLiteに自動保存\n",[296,12623,12624,12626],{"class":298,"line":859},[296,12625,1592],{"class":2199},[296,12627,12628],{"class":1308}," リアルタイム更新\n",[296,12630,12631,12633],{"class":298,"line":875},[296,12632,1592],{"class":2199},[296,12634,12635],{"class":1308}," クエリAPIでの取得\n",[296,12637,12638],{"class":298,"line":881},[296,12639,445],{"emptyLinePlaceholder":444},[296,12641,12642,12644],{"class":298,"line":886},[296,12643,3384],{"class":3362},[296,12645,12646],{"class":3366}," コードブロック例\n",[296,12648,12649],{"class":298,"line":891},[296,12650,445],{"emptyLinePlaceholder":444},[296,12652,12653,12655],{"class":298,"line":899},[296,12654,3396],{"class":2199},[296,12656,12657],{"class":1308},"typescript\n",[296,12659,12660],{"class":298,"line":907},[296,12661,12662],{"class":1308},"const greeting = \"Hello, Nuxt Content!\"\n",[296,12664,12665],{"class":298,"line":924},[296,12666,12667],{"class":1308},"console.log(greeting)\n",[296,12669,12670],{"class":298,"line":956},[296,12671,3409],{"class":2199},[182,12673,12675,12678],{"id":12674},"apppagesblogchart-demovueインタラクティブページの例",[137,12676,12677],{},"app/pages/blog/chart-demo.vue","（インタラクティブページの例）",[130,12680,12682],{"className":290,"code":12681,"language":292,"meta":139,"style":139},"\u003Cscript setup lang=\"ts\">\nimport { ref, onMounted } from 'vue'\nimport { Chart, registerables } from 'chart.js'\n\nChart.register(...registerables)\n\nconst chartRef = ref\u003CHTMLCanvasElement | null>(null)\n\nonMounted(() => {\n  if (chartRef.value) {\n    new Chart(chartRef.value, {\n      type: 'bar',\n      data: {\n        labels: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'],\n        datasets: [{\n          label: 'Sales',\n          data: [12, 19, 3, 5, 2, 3],\n          backgroundColor: 'rgba(54, 162, 235, 0.2)',\n          borderColor: 'rgba(54, 162, 235, 1)',\n          borderWidth: 1\n        }]\n      },\n      options: {\n        responsive: true,\n        scales: {\n          y: {\n            beginAtZero: true\n          }\n        }\n      }\n    })\n  }\n})\n\nuseSeoMeta({\n  title: 'インタラクティブチャートデモ',\n  description: 'Chart.jsを使用したVueコンポーネントのデモページ'\n})\n\u003C/script>\n\n\u003Ctemplate>\n  \u003Cmain>\n    \u003CBreadcrumb />\n    \u003Cdiv class=\"chart-container\">\n      \u003Ch1>インタラクティブチャートデモ\u003C/h1>\n      \u003Cp>これは \u003Ccode>pages/\u003C/code> ディレクトリに配置されたVueコンポーネントです。\u003C/p>\n      \u003Ccanvas ref=\"chartRef\">\u003C/canvas>\n    \u003C/div>\n  \u003C/main>\n\u003C/template>\n\n\u003Cstyle scoped>\nmain {\n  max-width: 800px;\n  margin: 0 auto;\n  padding: 2rem;\n}\n.chart-container {\n  margin-top: 2rem;\n}\n\u003C/style>\n",[137,12683,12684,12704,12726,12748,12752,12766,12770,12794,12798,12808,12824,12842,12856,12862,12919,12925,12939,12971,12987,13003,13013,13017,13021,13028,13039,13046,13053,13063,13067,13071,13075,13079,13083,13087,13091,13097,13112,13125,13129,13137,13141,13149,13157,13165,13184,13200,13234,13256,13264,13272,13280,13284,13294,13300,13313,13325,13337,13341,13349,13361,13365],{"__ignoreMap":139},[296,12685,12686,12688,12690,12692,12694,12696,12698,12700,12702],{"class":298,"line":299},[296,12687,310],{"class":309},[296,12689,314],{"class":313},[296,12691,318],{"class":317},[296,12693,321],{"class":317},[296,12695,324],{"class":309},[296,12697,328],{"class":327},[296,12699,332],{"class":331},[296,12701,328],{"class":327},[296,12703,337],{"class":309},[296,12705,12706,12708,12710,12712,12714,12716,12718,12720,12722,12724],{"class":298,"line":306},[296,12707,993],{"class":313},[296,12709,996],{"class":309},[296,12711,2724],{"class":317},[296,12713,1002],{"class":309},[296,12715,3502],{"class":317},[296,12717,465],{"class":309},[296,12719,1010],{"class":313},[296,12721,1727],{"class":327},[296,12723,292],{"class":331},[296,12725,2735],{"class":327},[296,12727,12728,12730,12732,12734,12736,12738,12740,12742,12744,12746],{"class":298,"line":340},[296,12729,993],{"class":313},[296,12731,996],{"class":309},[296,12733,3521],{"class":317},[296,12735,1002],{"class":309},[296,12737,3526],{"class":317},[296,12739,465],{"class":309},[296,12741,1010],{"class":313},[296,12743,1727],{"class":327},[296,12745,3535],{"class":331},[296,12747,2735],{"class":327},[296,12749,12750],{"class":298,"line":346},[296,12751,445],{"emptyLinePlaceholder":444},[296,12753,12754,12756,12758,12760,12762,12764],{"class":298,"line":366},[296,12755,3546],{"class":317},[296,12757,396],{"class":309},[296,12759,3551],{"class":359},[296,12761,3554],{"class":309},[296,12763,3557],{"class":317},[296,12765,438],{"class":309},[296,12767,12768],{"class":298,"line":441},[296,12769,445],{"emptyLinePlaceholder":444},[296,12771,12772,12774,12776,12778,12780,12782,12784,12786,12788,12790,12792],{"class":298,"line":448},[296,12773,350],{"class":349},[296,12775,3570],{"class":317},[296,12777,356],{"class":309},[296,12779,2724],{"class":359},[296,12781,310],{"class":309},[296,12783,3579],{"class":2008},[296,12785,3582],{"class":309},[296,12787,3585],{"class":349},[296,12789,3588],{"class":309},[296,12791,3591],{"class":349},[296,12793,438],{"class":309},[296,12795,12796],{"class":298,"line":479},[296,12797,445],{"emptyLinePlaceholder":444},[296,12799,12800,12802,12804,12806],{"class":298,"line":504},[296,12801,3602],{"class":359},[296,12803,379],{"class":309},[296,12805,382],{"class":309},[296,12807,2095],{"class":309},[296,12809,12810,12812,12814,12816,12818,12820,12822],{"class":298,"line":526},[296,12811,2261],{"class":313},[296,12813,1914],{"class":309},[296,12815,3570],{"class":317},[296,12817,396],{"class":309},[296,12819,494],{"class":317},[296,12821,423],{"class":309},[296,12823,2095],{"class":309},[296,12825,12826,12828,12830,12832,12834,12836,12838,12840],{"class":298,"line":545},[296,12827,3629],{"class":349},[296,12829,3521],{"class":359},[296,12831,413],{"class":309},[296,12833,3570],{"class":317},[296,12835,396],{"class":309},[296,12837,494],{"class":317},[296,12839,1002],{"class":309},[296,12841,2095],{"class":309},[296,12843,12844,12846,12848,12850,12852,12854],{"class":298,"line":555},[296,12845,757],{"class":698},[296,12847,732],{"class":309},[296,12849,416],{"class":327},[296,12851,3654],{"class":331},[296,12853,416],{"class":327},[296,12855,501],{"class":309},[296,12857,12858,12860],{"class":298,"line":560},[296,12859,3663],{"class":698},[296,12861,724],{"class":309},[296,12863,12864,12866,12868,12870,12872,12874,12876,12878,12880,12882,12884,12886,12888,12890,12892,12894,12897,12899,12901,12903,12906,12908,12910,12912,12915,12917],{"class":298,"line":570},[296,12865,3670],{"class":698},[296,12867,702],{"class":309},[296,12869,416],{"class":327},[296,12871,3677],{"class":331},[296,12873,416],{"class":327},[296,12875,940],{"class":309},[296,12877,416],{"class":327},[296,12879,3686],{"class":331},[296,12881,416],{"class":327},[296,12883,940],{"class":309},[296,12885,416],{"class":327},[296,12887,3695],{"class":331},[296,12889,416],{"class":327},[296,12891,940],{"class":309},[296,12893,416],{"class":327},[296,12895,12896],{"class":331},"Apr",[296,12898,416],{"class":327},[296,12900,940],{"class":309},[296,12902,416],{"class":327},[296,12904,12905],{"class":331},"May",[296,12907,416],{"class":327},[296,12909,940],{"class":309},[296,12911,416],{"class":327},[296,12913,12914],{"class":331},"Jun",[296,12916,416],{"class":327},[296,12918,712],{"class":309},[296,12920,12921,12923],{"class":298,"line":575},[296,12922,3704],{"class":698},[296,12924,3707],{"class":309},[296,12926,12927,12929,12931,12933,12935,12937],{"class":298,"line":585},[296,12928,3712],{"class":698},[296,12930,732],{"class":309},[296,12932,416],{"class":327},[296,12934,3719],{"class":331},[296,12936,416],{"class":327},[296,12938,501],{"class":309},[296,12940,12941,12943,12945,12947,12949,12951,12953,12955,12957,12960,12962,12965,12967,12969],{"class":298,"line":620},[296,12942,3728],{"class":698},[296,12944,702],{"class":309},[296,12946,3733],{"class":1595},[296,12948,940],{"class":309},[296,12950,3738],{"class":1595},[296,12952,940],{"class":309},[296,12954,3743],{"class":1595},[296,12956,940],{"class":309},[296,12958,12959],{"class":1595},"5",[296,12961,940],{"class":309},[296,12963,12964],{"class":1595},"2",[296,12966,940],{"class":309},[296,12968,3743],{"class":1595},[296,12970,712],{"class":309},[296,12972,12973,12976,12978,12980,12983,12985],{"class":298,"line":842},[296,12974,12975],{"class":698},"          backgroundColor",[296,12977,732],{"class":309},[296,12979,416],{"class":327},[296,12981,12982],{"class":331},"rgba(54, 162, 235, 0.2)",[296,12984,416],{"class":327},[296,12986,501],{"class":309},[296,12988,12989,12992,12994,12996,12999,13001],{"class":298,"line":859},[296,12990,12991],{"class":698},"          borderColor",[296,12993,732],{"class":309},[296,12995,416],{"class":327},[296,12997,12998],{"class":331},"rgba(54, 162, 235, 1)",[296,13000,416],{"class":327},[296,13002,501],{"class":309},[296,13004,13005,13008,13010],{"class":298,"line":875},[296,13006,13007],{"class":698},"          borderWidth",[296,13009,732],{"class":309},[296,13011,13012],{"class":1595},"1\n",[296,13014,13015],{"class":298,"line":881},[296,13016,3750],{"class":309},[296,13018,13019],{"class":298,"line":886},[296,13020,5449],{"class":309},[296,13022,13023,13026],{"class":298,"line":891},[296,13024,13025],{"class":698},"      options",[296,13027,724],{"class":309},[296,13029,13030,13033,13035,13037],{"class":298,"line":899},[296,13031,13032],{"class":698},"        responsive",[296,13034,732],{"class":309},[296,13036,735],{"class":313},[296,13038,501],{"class":309},[296,13040,13041,13044],{"class":298,"line":907},[296,13042,13043],{"class":698},"        scales",[296,13045,724],{"class":309},[296,13047,13048,13051],{"class":298,"line":924},[296,13049,13050],{"class":698},"          y",[296,13052,724],{"class":309},[296,13054,13055,13058,13060],{"class":298,"line":956},[296,13056,13057],{"class":698},"            beginAtZero",[296,13059,732],{"class":309},[296,13061,13062],{"class":313},"true\n",[296,13064,13065],{"class":298,"line":961},[296,13066,6822],{"class":309},[296,13068,13069],{"class":298,"line":967},[296,13070,6018],{"class":309},[296,13072,13073],{"class":298,"line":973},[296,13074,878],{"class":309},[296,13076,13077],{"class":298,"line":5702},[296,13078,1274],{"class":309},[296,13080,13081],{"class":298,"line":5716},[296,13082,970],{"class":309},[296,13084,13085],{"class":298,"line":5721},[296,13086,976],{"class":309},[296,13088,13089],{"class":298,"line":5726},[296,13090,445],{"emptyLinePlaceholder":444},[296,13092,13093,13095],{"class":298,"line":5733},[296,13094,11763],{"class":359},[296,13096,693],{"class":309},[296,13098,13099,13101,13103,13105,13108,13110],{"class":298,"line":5744},[296,13100,11770],{"class":698},[296,13102,732],{"class":309},[296,13104,416],{"class":327},[296,13106,13107],{"class":331},"インタラクティブチャートデモ",[296,13109,416],{"class":327},[296,13111,501],{"class":309},[296,13113,13114,13116,13118,13120,13123],{"class":298,"line":5751},[296,13115,1337],{"class":698},[296,13117,732],{"class":309},[296,13119,416],{"class":327},[296,13121,13122],{"class":331},"Chart.jsを使用したVueコンポーネントのデモページ",[296,13124,2735],{"class":327},[296,13126,13127],{"class":298,"line":5764},[296,13128,976],{"class":309},[296,13130,13131,13133,13135],{"class":298,"line":5769},[296,13132,563],{"class":309},[296,13134,314],{"class":313},[296,13136,337],{"class":309},[296,13138,13139],{"class":298,"line":5776},[296,13140,445],{"emptyLinePlaceholder":444},[296,13142,13143,13145,13147],{"class":298,"line":5789},[296,13144,310],{"class":309},[296,13146,580],{"class":313},[296,13148,337],{"class":309},[296,13150,13151,13153,13155],{"class":298,"line":5794},[296,13152,588],{"class":309},[296,13154,11980],{"class":313},[296,13156,337],{"class":309},[296,13158,13159,13161,13163],{"class":298,"line":5802},[296,13160,2634],{"class":309},[296,13162,11989],{"class":313},[296,13164,617],{"class":309},[296,13166,13167,13169,13171,13173,13175,13177,13180,13182],{"class":298,"line":5810},[296,13168,2634],{"class":309},[296,13170,2627],{"class":313},[296,13172,8294],{"class":317},[296,13174,324],{"class":309},[296,13176,328],{"class":327},[296,13178,13179],{"class":331},"chart-container",[296,13181,328],{"class":327},[296,13183,337],{"class":309},[296,13185,13186,13188,13190,13192,13194,13196,13198],{"class":298,"line":5818},[296,13187,3044],{"class":309},[296,13189,10],{"class":313},[296,13191,2639],{"class":309},[296,13193,13107],{"class":1308},[296,13195,563],{"class":309},[296,13197,10],{"class":313},[296,13199,337],{"class":309},[296,13201,13202,13204,13206,13208,13211,13213,13215,13217,13219,13221,13223,13225,13228,13230,13232],{"class":298,"line":5826},[296,13203,3044],{"class":309},[296,13205,80],{"class":313},[296,13207,2639],{"class":309},[296,13209,13210],{"class":1308},"これは ",[296,13212,310],{"class":309},[296,13214,137],{"class":313},[296,13216,2639],{"class":309},[296,13218,164],{"class":1308},[296,13220,563],{"class":309},[296,13222,137],{"class":313},[296,13224,2639],{"class":309},[296,13226,13227],{"class":1308}," ディレクトリに配置されたVueコンポーネントです。",[296,13229,563],{"class":309},[296,13231,80],{"class":313},[296,13233,337],{"class":309},[296,13235,13236,13238,13240,13242,13244,13246,13248,13250,13252,13254],{"class":298,"line":5843},[296,13237,3044],{"class":309},[296,13239,3818],{"class":313},[296,13241,2724],{"class":317},[296,13243,324],{"class":309},[296,13245,328],{"class":327},[296,13247,3570],{"class":331},[296,13249,328],{"class":327},[296,13251,3831],{"class":309},[296,13253,3818],{"class":313},[296,13255,337],{"class":309},[296,13257,13258,13260,13262],{"class":298,"line":5857},[296,13259,3130],{"class":309},[296,13261,2627],{"class":313},[296,13263,337],{"class":309},[296,13265,13266,13268,13270],{"class":298,"line":5863},[296,13267,2670],{"class":309},[296,13269,11980],{"class":313},[296,13271,337],{"class":309},[296,13273,13274,13276,13278],{"class":298,"line":5871},[296,13275,563],{"class":309},[296,13277,580],{"class":313},[296,13279,337],{"class":309},[296,13281,13282],{"class":298,"line":5927},[296,13283,445],{"emptyLinePlaceholder":444},[296,13285,13286,13288,13290,13292],{"class":298,"line":5981},[296,13287,310],{"class":309},[296,13289,8579],{"class":313},[296,13291,8582],{"class":317},[296,13293,337],{"class":309},[296,13295,13296,13298],{"class":298,"line":6009},[296,13297,11980],{"class":313},[296,13299,2095],{"class":309},[296,13301,13302,13304,13306,13309,13311],{"class":298,"line":6015},[296,13303,12292],{"class":698},[296,13305,459],{"class":309},[296,13307,13308],{"class":1595}," 800",[296,13310,10473],{"class":349},[296,13312,1740],{"class":309},[296,13314,13315,13317,13319,13321,13323],{"class":298,"line":6021},[296,13316,8690],{"class":698},[296,13318,459],{"class":309},[296,13320,8695],{"class":1595},[296,13322,12312],{"class":2199},[296,13324,1740],{"class":309},[296,13326,13327,13329,13331,13333,13335],{"class":298,"line":6026},[296,13328,8702],{"class":698},[296,13330,459],{"class":309},[296,13332,10470],{"class":1595},[296,13334,8605],{"class":349},[296,13336,1740],{"class":309},[296,13338,13339],{"class":298,"line":6031},[296,13340,2986],{"class":309},[296,13342,13343,13345,13347],{"class":298,"line":6038},[296,13344,396],{"class":309},[296,13346,13179],{"class":317},[296,13348,2095],{"class":309},[296,13350,13351,13353,13355,13357,13359],{"class":298,"line":6049},[296,13352,10366],{"class":698},[296,13354,459],{"class":309},[296,13356,10470],{"class":1595},[296,13358,8605],{"class":349},[296,13360,1740],{"class":309},[296,13362,13363],{"class":298,"line":6056},[296,13364,2986],{"class":309},[296,13366,13367,13369,13371],{"class":298,"line":6068},[296,13368,563],{"class":309},[296,13370,8579],{"class":313},[296,13372,337],{"class":309},[76,13374,13376],{"id":13375},"ステップ8-開発サーバー起動","ステップ8: 開発サーバー起動",[130,13378,13380],{"className":4766,"code":13379,"language":4768,"meta":139,"style":139},"# apps/web ディレクトリで実行\npnpm dev\n\n# ブラウザで確認\n# http://localhost:3000\n# http://localhost:3000/2025-11-29/first-article\n# http://localhost:3000/blog/chart-demo\n",[137,13381,13382,13387,13394,13398,13403,13408,13413],{"__ignoreMap":139},[296,13383,13384],{"class":298,"line":299},[296,13385,13386],{"class":302},"# apps/web ディレクトリで実行\n",[296,13388,13389,13391],{"class":298,"line":306},[296,13390,4357],{"class":359},[296,13392,13393],{"class":331}," dev\n",[296,13395,13396],{"class":298,"line":340},[296,13397,445],{"emptyLinePlaceholder":444},[296,13399,13400],{"class":298,"line":346},[296,13401,13402],{"class":302},"# ブラウザで確認\n",[296,13404,13405],{"class":298,"line":366},[296,13406,13407],{"class":302},"# http://localhost:3000\n",[296,13409,13410],{"class":298,"line":441},[296,13411,13412],{"class":302},"# http://localhost:3000/2025-11-29/first-article\n",[296,13414,13415],{"class":298,"line":448},[296,13416,13417],{"class":302},"# http://localhost:3000/blog/chart-demo\n",[76,13419,13421],{"id":13420},"ステップ9-cloudflareデプロイ設定オプション","ステップ9: Cloudflareデプロイ設定（オプション）",[182,13423,13425],{"id":13424},"wranglertoml",[137,13426,13427],{},"wrangler.toml",[130,13429,13433],{"className":13430,"code":13431,"language":13432,"meta":139,"style":139},"language-toml shiki shiki-themes vitesse-light vitesse-light","name = \"my-site\"\ncompatibility_date = \"2025-11-29\"\n\n[site]\nbucket = \".output/public\"\n","toml",[137,13434,13435,13440,13445,13449,13454],{"__ignoreMap":139},[296,13436,13437],{"class":298,"line":299},[296,13438,13439],{},"name = \"my-site\"\n",[296,13441,13442],{"class":298,"line":306},[296,13443,13444],{},"compatibility_date = \"2025-11-29\"\n",[296,13446,13447],{"class":298,"line":340},[296,13448,445],{"emptyLinePlaceholder":444},[296,13450,13451],{"class":298,"line":346},[296,13452,13453],{},"[site]\n",[296,13455,13456],{"class":298,"line":366},[296,13457,13458],{},"bucket = \".output/public\"\n",[182,13460,13461],{"id":13461},"デプロイコマンド",[130,13463,13465],{"className":4766,"code":13464,"language":4768,"meta":139,"style":139},"# ビルド\npnpm build\n\n# Cloudflare Pagesにデプロイ\npnpm exec wrangler pages deploy .output/public --project-name=my-site\n",[137,13466,13467,13472,13479,13483,13488],{"__ignoreMap":139},[296,13468,13469],{"class":298,"line":299},[296,13470,13471],{"class":302},"# ビルド\n",[296,13473,13474,13476],{"class":298,"line":306},[296,13475,4357],{"class":359},[296,13477,13478],{"class":331}," build\n",[296,13480,13481],{"class":298,"line":340},[296,13482,445],{"emptyLinePlaceholder":444},[296,13484,13485],{"class":298,"line":346},[296,13486,13487],{"class":302},"# Cloudflare Pagesにデプロイ\n",[296,13489,13490,13492,13495,13498,13501,13504,13507],{"class":298,"line":366},[296,13491,4357],{"class":359},[296,13493,13494],{"class":331}," exec",[296,13496,13497],{"class":331}," wrangler",[296,13499,13500],{"class":331}," pages",[296,13502,13503],{"class":331}," deploy",[296,13505,13506],{"class":331}," .output/public",[296,13508,13509],{"class":2199}," --project-name=my-site\n",[71,13511],{},[14,13513,69],{"id":69},[76,13515,13517],{"id":13516},"cloudflare-pagesworkers-の関係2025年最新情報","Cloudflare Pages/Workers の関係（2025年最新情報）",[80,13519,13520],{},[89,13521,13522],{},"重要な変更点：",[80,13524,13525],{},"2025年現在、CloudflareはWorkersを中心とした統合プラットフォームへの移行を進めています：",[84,13527,13528,13534,13540],{},[21,13529,13530,13533],{},[89,13531,13532],{},"Cloudflare Pages",": 静的サイトのホスティングとGit統合に特化",[21,13535,13536,13539],{},[89,13537,13538],{},"Cloudflare Workers",": サーバーレス実行環境（Pages Functionsの基盤）",[21,13541,13542,13545],{},[89,13543,13544],{},"統合",": PagesからデプロイされたアプリケーションはWorkers上で実行される",[80,13547,13548],{},[89,13549,13550],{},"Nuxt + Nitroの場合：",[84,13552,13553,13559,13562],{},[21,13554,13555,13556,13558],{},"Nitro preset ",[137,13557,4743],{}," を使用",[21,13560,13561],{},"ビルド成果物は静的ファイル + Workers",[21,13563,13564],{},"デプロイ先は「Cloudflare Pages」だが、実行環境は「Workers」",[76,13566,13567],{"id":13567},"デプロイ方法の選択",[182,13569,13571],{"id":13570},"方法1-github連携推奨","方法1: GitHub連携（推奨）",[80,13573,13574],{},[89,13575,13576],{},"メリット：",[84,13578,13579,13582,13585,13588],{},[21,13580,13581],{},"GitHubにpushするだけで自動ビルド・デプロイ",[21,13583,13584],{},"プレビューデプロイ（PR単位）の自動生成",[21,13586,13587],{},"ビルド履歴の管理",[21,13589,13590],{},"セットアップが簡単",[80,13592,13593],{},[89,13594,13595],{},"デメリット：",[84,13597,13598,13601],{},[21,13599,13600],{},"Cloudflareのビルド環境に依存",[21,13602,13603],{},"ビルド時間の制限あり（無料プラン: 3,000分/月）",[182,13605,13607],{"id":13606},"方法2-github-actions-direct-upload","方法2: GitHub Actions + Direct Upload",[80,13609,13610],{},[89,13611,13576],{},[84,13613,13614,13617,13620],{},[21,13615,13616],{},"ビルドプロセスの完全制御",[21,13618,13619],{},"カスタムビルドステップの追加が容易",[21,13621,13622],{},"GitHub Actionsの無料枠を利用",[80,13624,13625],{},[89,13626,13595],{},[84,13628,13629,13632],{},[21,13630,13631],{},"初期設定がやや複雑",[21,13633,13634],{},"API tokenの管理が必要",[71,13636],{},[76,13638,13640],{"id":13639},"方法1-github連携の設定推奨最も簡単","方法1: GitHub連携の設定（推奨・最も簡単）",[182,13642,13644],{"id":13643},"ステップ1-githubリポジトリの準備","ステップ1: GitHubリポジトリの準備",[130,13646,13648],{"className":4766,"code":13647,"language":4768,"meta":139,"style":139},"# プロジェクトをGitで初期化\ncd sample-project\ngit init\ngit add .\ngit commit -m \"Initial commit\"\n\n# GitHubにリポジトリを作成してpush\ngh repo create sample-project --private --source=. --push\n\n# または手動でGitHubにリポジトリを作成してからpush\ngit remote add origin https://github.com/your-username/sample-project.git\ngit branch -M main\ngit push -u origin main\n",[137,13649,13650,13655,13661,13668,13677,13694,13698,13703,13726,13730,13735,13750,13763],{"__ignoreMap":139},[296,13651,13652],{"class":298,"line":299},[296,13653,13654],{"class":302},"# プロジェクトをGitで初期化\n",[296,13656,13657,13659],{"class":298,"line":306},[296,13658,4853],{"class":698},[296,13660,4848],{"class":331},[296,13662,13663,13666],{"class":298,"line":340},[296,13664,13665],{"class":359},"git",[296,13667,4871],{"class":331},[296,13669,13670,13672,13674],{"class":298,"line":346},[296,13671,13665],{"class":359},[296,13673,5098],{"class":331},[296,13675,13676],{"class":331}," .\n",[296,13678,13679,13681,13684,13687,13689,13692],{"class":298,"line":366},[296,13680,13665],{"class":359},[296,13682,13683],{"class":331}," commit",[296,13685,13686],{"class":2199}," -m",[296,13688,1013],{"class":327},[296,13690,13691],{"class":331},"Initial commit",[296,13693,1018],{"class":327},[296,13695,13696],{"class":298,"line":441},[296,13697,445],{"emptyLinePlaceholder":444},[296,13699,13700],{"class":298,"line":448},[296,13701,13702],{"class":302},"# GitHubにリポジトリを作成してpush\n",[296,13704,13705,13708,13711,13714,13717,13720,13723],{"class":298,"line":479},[296,13706,13707],{"class":359},"gh",[296,13709,13710],{"class":331}," repo",[296,13712,13713],{"class":331}," create",[296,13715,13716],{"class":331}," sample-project",[296,13718,13719],{"class":2199}," --private",[296,13721,13722],{"class":2199}," --source=.",[296,13724,13725],{"class":2199}," --push\n",[296,13727,13728],{"class":298,"line":504},[296,13729,445],{"emptyLinePlaceholder":444},[296,13731,13732],{"class":298,"line":526},[296,13733,13734],{"class":302},"# または手動でGitHubにリポジトリを作成してからpush\n",[296,13736,13737,13739,13742,13744,13747],{"class":298,"line":545},[296,13738,13665],{"class":359},[296,13740,13741],{"class":331}," remote",[296,13743,5098],{"class":331},[296,13745,13746],{"class":331}," origin",[296,13748,13749],{"class":331}," https://github.com/your-username/sample-project.git\n",[296,13751,13752,13754,13757,13760],{"class":298,"line":555},[296,13753,13665],{"class":359},[296,13755,13756],{"class":331}," branch",[296,13758,13759],{"class":2199}," -M",[296,13761,13762],{"class":331}," main\n",[296,13764,13765,13767,13770,13773,13775],{"class":298,"line":560},[296,13766,13665],{"class":359},[296,13768,13769],{"class":331}," push",[296,13771,13772],{"class":2199}," -u",[296,13774,13746],{"class":331},[296,13776,13762],{"class":331},[182,13778,13780],{"id":13779},"ステップ2-cloudflare-pagesでプロジェクト作成","ステップ2: Cloudflare Pagesでプロジェクト作成",[80,13782,13783],{},[89,13784,13785],{},"重要：最初の設定が肝心です。後から変更が難しい項目もあります。",[18,13787,13788,13802,13807,13823,13929,13947],{},[21,13789,13790,13793],{},[89,13791,13792],{},"Cloudflare Dashboardにログイン",[84,13794,13795],{},[21,13796,13797],{},[24,13798,13799],{"href":13799,"rel":13800},"https://dash.cloudflare.com/",[13801],"nofollow",[21,13803,13804],{},[89,13805,13806],{},"Workers & Pages > Create application > Pages > Connect to Git",[21,13808,13809,13812],{},[89,13810,13811],{},"GitHubアカウントを接続",[84,13813,13814,13817,13820],{},[21,13815,13816],{},"「Connect GitHub」をクリック",[21,13818,13819],{},"Cloudflareに必要な権限を許可",[21,13821,13822],{},"リポジトリを選択（個人 or Organization）",[21,13824,13825,13828],{},[89,13826,13827],{},"ビルド設定（重要！）",[2387,13829,13830,13842],{},[2390,13831,13832],{},[2393,13833,13834,13837,13840],{},[2396,13835,13836],{},"設定項目",[2396,13838,13839],{},"値",[2396,13841,1843],{},[2405,13843,13844,13859,13875,13888,13901,13916],{},[2393,13845,13846,13849,13853],{},[2410,13847,13848],{},"Project name",[2410,13850,13851],{},[137,13852,4297],{},[2410,13854,13855,13856],{},"デプロイ後のURL: ",[137,13857,13858],{},"sample-project.pages.dev",[2393,13860,13861,13864,13872],{},[2410,13862,13863],{},"Production branch",[2410,13865,13866,13868,13869],{},[137,13867,11980],{}," または ",[137,13870,13871],{},"master",[2410,13873,13874],{},"本番デプロイのブランチ",[2393,13876,13877,13880,13885],{},[2410,13878,13879],{},"Build command",[2410,13881,13882],{},[137,13883,13884],{},"pnpm install && pnpm build",[2410,13886,13887],{},"ビルドコマンド",[2393,13889,13890,13893,13898],{},[2410,13891,13892],{},"Build output directory",[2410,13894,13895],{},[137,13896,13897],{},".output/public",[2410,13899,13900],{},"Nitroのビルド成果物",[2393,13902,13903,13906,13911],{},[2410,13904,13905],{},"Root directory",[2410,13907,13908],{},[137,13909,13910],{},"apps/web",[2410,13912,13913],{},[89,13914,13915],{},"モノレポの場合は必須",[2393,13917,13918,13921,13926],{},[2410,13919,13920],{},"Node version",[2410,13922,13923],{},[137,13924,13925],{},"22.6.0",[2410,13927,13928],{},"環境変数で設定",[21,13930,13931,13934,13937,13940,13941],{},[89,13932,13933],{},"環境変数の設定",[13935,13936],"br",{},[89,13938,13939],{},"Environment variables"," セクションで以下を追加：",[130,13942,13945],{"className":13943,"code":13944,"language":135},[133],"NODE_VERSION = 22.6.0\nPNPM_VERSION = 10.10.0\n",[137,13946,13944],{"__ignoreMap":139},[21,13948,13949],{},[89,13950,13951],{},"Save and Deploy",[182,13953,13955],{"id":13954},"ステップ3-自動デプロイの確認","ステップ3: 自動デプロイの確認",[130,13957,13959],{"className":4766,"code":13958,"language":4768,"meta":139,"style":139},"# コードを変更してpush\ngit add .\ngit commit -m \"Update content\"\ngit push\n\n# Cloudflare Dashboardで自動ビルドが開始される\n# ビルドログ、デプロイ状況をリアルタイムで確認可能\n",[137,13960,13961,13966,13974,13989,13996,14000,14005],{"__ignoreMap":139},[296,13962,13963],{"class":298,"line":299},[296,13964,13965],{"class":302},"# コードを変更してpush\n",[296,13967,13968,13970,13972],{"class":298,"line":306},[296,13969,13665],{"class":359},[296,13971,5098],{"class":331},[296,13973,13676],{"class":331},[296,13975,13976,13978,13980,13982,13984,13987],{"class":298,"line":340},[296,13977,13665],{"class":359},[296,13979,13683],{"class":331},[296,13981,13686],{"class":2199},[296,13983,1013],{"class":327},[296,13985,13986],{"class":331},"Update content",[296,13988,1018],{"class":327},[296,13990,13991,13993],{"class":298,"line":346},[296,13992,13665],{"class":359},[296,13994,13995],{"class":331}," push\n",[296,13997,13998],{"class":298,"line":366},[296,13999,445],{"emptyLinePlaceholder":444},[296,14001,14002],{"class":298,"line":441},[296,14003,14004],{"class":302},"# Cloudflare Dashboardで自動ビルドが開始される\n",[296,14006,14007],{"class":298,"line":448},[296,14008,14009],{"class":302},"# ビルドログ、デプロイ状況をリアルタイムで確認可能\n",[182,14011,14013],{"id":14012},"プレビューデプロイpr単位","プレビューデプロイ（PR単位）",[80,14015,14016,14017,14020],{},"GitHubでPull Requestを作成すると、自動的に",[89,14018,14019],{},"プレビューURL","が生成されます：",[130,14022,14025],{"className":14023,"code":14024,"language":135},[133],"# 例: PR #5 のプレビューURL\nhttps://5.sample-project.pages.dev\n",[137,14026,14024],{"__ignoreMap":139},[80,14028,14029],{},"PR内のコメントにプレビューURLとビルドステータスが自動投稿されます。",[182,14031,14032],{"id":14032},"ブランチ制御",[80,14034,14035],{},"特定のブランチのみ自動デプロイしたい場合：",[18,14037,14038,14041],{},[21,14039,14040],{},"Cloudflare Dashboard > プロジェクト > Settings > Builds & deployments",[21,14042,14043,14046,14047],{},[89,14044,14045],{},"Branch deployments"," で設定：\n",[84,14048,14049,14056],{},[21,14050,14051,732,14053,14055],{},[89,14052,13863],{},[137,14054,11980],{}," のみ",[21,14057,14058,732,14061,13868,14064],{},[89,14059,14060],{},"Preview branches",[137,14062,14063],{},"All branches",[137,14065,14066],{},"Custom branches",[71,14068],{},[76,14070,13607],{"id":14071},"方法2-github-actions-direct-upload-1",[80,14073,14074],{},"より細かい制御が必要な場合はGitHub Actionsを使用します。",[182,14076,14078],{"id":14077},"ステップ1-cloudflare-api-tokenの取得","ステップ1: Cloudflare API Tokenの取得",[18,14080,14081,14093,14102,14110],{},[21,14082,14083,14086,14087,14086,14090],{},[89,14084,14085],{},"Cloudflare Dashboard"," > ",[89,14088,14089],{},"My Profile",[89,14091,14092],{},"API Tokens",[21,14094,14095,14086,14098,14101],{},[89,14096,14097],{},"Create Token",[89,14099,14100],{},"Edit Cloudflare Workers"," テンプレートを選択",[21,14103,14104,14105],{},"Permissions:\n",[84,14106,14107],{},[21,14108,14109],{},"Account > Cloudflare Pages > Edit",[21,14111,14112],{},"Tokenをコピー（再表示不可）",[182,14114,14116],{"id":14115},"ステップ2-github-secretsに追加","ステップ2: GitHub Secretsに追加",[130,14118,14120],{"className":4766,"code":14119,"language":4768,"meta":139,"style":139},"# GitHub CLI使用\ngh secret set CLOUDFLARE_API_TOKEN\n\n# または手動で設定\n# Settings > Secrets and variables > Actions > New repository secret\n",[137,14121,14122,14127,14140,14144,14149],{"__ignoreMap":139},[296,14123,14124],{"class":298,"line":299},[296,14125,14126],{"class":302},"# GitHub CLI使用\n",[296,14128,14129,14131,14134,14137],{"class":298,"line":306},[296,14130,13707],{"class":359},[296,14132,14133],{"class":331}," secret",[296,14135,14136],{"class":331}," set",[296,14138,14139],{"class":331}," CLOUDFLARE_API_TOKEN\n",[296,14141,14142],{"class":298,"line":340},[296,14143,445],{"emptyLinePlaceholder":444},[296,14145,14146],{"class":298,"line":346},[296,14147,14148],{"class":302},"# または手動で設定\n",[296,14150,14151],{"class":298,"line":366},[296,14152,14153],{"class":302},"# Settings > Secrets and variables > Actions > New repository secret\n",[80,14155,14156],{},"追加するシークレット：",[84,14158,14159,14165],{},[21,14160,14161,14164],{},[137,14162,14163],{},"CLOUDFLARE_API_TOKEN",": APIトークン",[21,14166,14167,14170],{},[137,14168,14169],{},"CLOUDFLARE_ACCOUNT_ID",": アカウントID（Dashboard右上に表示）",[182,14172,14174],{"id":14173},"ステップ3-github-actionsワークフロー作成","ステップ3: GitHub Actionsワークフロー作成",[80,14176,14177,459],{},[137,14178,14179],{},".github/workflows/deploy.yml",[130,14181,14184],{"className":14182,"code":14183,"language":5941,"meta":139,"style":139},"language-yaml shiki shiki-themes vitesse-light vitesse-light","name: Deploy to Cloudflare Pages\n\non:\n  push:\n    branches:\n      - main\n  pull_request:\n    branches:\n      - main\n\njobs:\n  deploy:\n    runs-on: ubuntu-latest\n    permissions:\n      contents: read\n      deployments: write\n    name: Deploy to Cloudflare Pages\n    steps:\n      - uses: actions/checkout@v4\n\n      # pnpmセットアップ\n      - uses: pnpm/action-setup@v2\n        with:\n          version: 10.10.0\n\n      # Node.jsセットアップ\n      - uses: actions/setup-node@v4\n        with:\n          node-version: '22.6.0'\n          cache: 'pnpm'\n\n      # 依存関係インストール\n      - name: Install dependencies\n        run: pnpm install\n\n      # ビルド\n      - name: Build\n        run: pnpm build\n        working-directory: apps/web\n\n      # Cloudflare Pagesにデプロイ（wrangler-action使用）\n      - name: Deploy to Cloudflare Pages\n        uses: cloudflare/wrangler-action@v3\n        with:\n          apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}\n          accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}\n          command: pages deploy apps/web/.output/public --project-name=sample-project\n",[137,14185,14186,14195,14199,14206,14213,14220,14227,14234,14240,14246,14250,14257,14264,14274,14281,14291,14301,14310,14317,14329,14333,14338,14349,14356,14366,14370,14375,14386,14392,14405,14418,14422,14427,14439,14449,14453,14458,14469,14478,14488,14492,14497,14507,14517,14523,14533,14543],{"__ignoreMap":139},[296,14187,14188,14190,14192],{"class":298,"line":299},[296,14189,5513],{"class":698},[296,14191,459],{"class":309},[296,14193,14194],{"class":331}," Deploy to Cloudflare Pages\n",[296,14196,14197],{"class":298,"line":306},[296,14198,445],{"emptyLinePlaceholder":444},[296,14200,14201,14204],{"class":298,"line":340},[296,14202,14203],{"class":313},"on",[296,14205,12538],{"class":309},[296,14207,14208,14211],{"class":298,"line":346},[296,14209,14210],{"class":698},"  push",[296,14212,12538],{"class":309},[296,14214,14215,14218],{"class":298,"line":366},[296,14216,14217],{"class":698},"    branches",[296,14219,12538],{"class":309},[296,14221,14222,14225],{"class":298,"line":441},[296,14223,14224],{"class":309},"      -",[296,14226,13762],{"class":331},[296,14228,14229,14232],{"class":298,"line":448},[296,14230,14231],{"class":698},"  pull_request",[296,14233,12538],{"class":309},[296,14235,14236,14238],{"class":298,"line":479},[296,14237,14217],{"class":698},[296,14239,12538],{"class":309},[296,14241,14242,14244],{"class":298,"line":504},[296,14243,14224],{"class":309},[296,14245,13762],{"class":331},[296,14247,14248],{"class":298,"line":526},[296,14249,445],{"emptyLinePlaceholder":444},[296,14251,14252,14255],{"class":298,"line":545},[296,14253,14254],{"class":698},"jobs",[296,14256,12538],{"class":309},[296,14258,14259,14262],{"class":298,"line":555},[296,14260,14261],{"class":698},"  deploy",[296,14263,12538],{"class":309},[296,14265,14266,14269,14271],{"class":298,"line":560},[296,14267,14268],{"class":698},"    runs-on",[296,14270,459],{"class":309},[296,14272,14273],{"class":331}," ubuntu-latest\n",[296,14275,14276,14279],{"class":298,"line":570},[296,14277,14278],{"class":698},"    permissions",[296,14280,12538],{"class":309},[296,14282,14283,14286,14288],{"class":298,"line":575},[296,14284,14285],{"class":698},"      contents",[296,14287,459],{"class":309},[296,14289,14290],{"class":331}," read\n",[296,14292,14293,14296,14298],{"class":298,"line":585},[296,14294,14295],{"class":698},"      deployments",[296,14297,459],{"class":309},[296,14299,14300],{"class":331}," write\n",[296,14302,14303,14306,14308],{"class":298,"line":620},[296,14304,14305],{"class":698},"    name",[296,14307,459],{"class":309},[296,14309,14194],{"class":331},[296,14311,14312,14315],{"class":298,"line":842},[296,14313,14314],{"class":698},"    steps",[296,14316,12538],{"class":309},[296,14318,14319,14321,14324,14326],{"class":298,"line":859},[296,14320,14224],{"class":309},[296,14322,14323],{"class":698}," uses",[296,14325,459],{"class":309},[296,14327,14328],{"class":331}," actions/checkout@v4\n",[296,14330,14331],{"class":298,"line":875},[296,14332,445],{"emptyLinePlaceholder":444},[296,14334,14335],{"class":298,"line":881},[296,14336,14337],{"class":302},"      # pnpmセットアップ\n",[296,14339,14340,14342,14344,14346],{"class":298,"line":886},[296,14341,14224],{"class":309},[296,14343,14323],{"class":698},[296,14345,459],{"class":309},[296,14347,14348],{"class":331}," pnpm/action-setup@v2\n",[296,14350,14351,14354],{"class":298,"line":891},[296,14352,14353],{"class":698},"        with",[296,14355,12538],{"class":309},[296,14357,14358,14361,14363],{"class":298,"line":899},[296,14359,14360],{"class":698},"          version",[296,14362,459],{"class":309},[296,14364,14365],{"class":1595}," 10.10.0\n",[296,14367,14368],{"class":298,"line":907},[296,14369,445],{"emptyLinePlaceholder":444},[296,14371,14372],{"class":298,"line":924},[296,14373,14374],{"class":302},"      # Node.jsセットアップ\n",[296,14376,14377,14379,14381,14383],{"class":298,"line":956},[296,14378,14224],{"class":309},[296,14380,14323],{"class":698},[296,14382,459],{"class":309},[296,14384,14385],{"class":331}," actions/setup-node@v4\n",[296,14387,14388,14390],{"class":298,"line":961},[296,14389,14353],{"class":698},[296,14391,12538],{"class":309},[296,14393,14394,14397,14399,14401,14403],{"class":298,"line":967},[296,14395,14396],{"class":698},"          node-version",[296,14398,459],{"class":309},[296,14400,1727],{"class":327},[296,14402,13925],{"class":331},[296,14404,2735],{"class":327},[296,14406,14407,14410,14412,14414,14416],{"class":298,"line":973},[296,14408,14409],{"class":698},"          cache",[296,14411,459],{"class":309},[296,14413,1727],{"class":327},[296,14415,4357],{"class":331},[296,14417,2735],{"class":327},[296,14419,14420],{"class":298,"line":5702},[296,14421,445],{"emptyLinePlaceholder":444},[296,14423,14424],{"class":298,"line":5716},[296,14425,14426],{"class":302},"      # 依存関係インストール\n",[296,14428,14429,14431,14434,14436],{"class":298,"line":5721},[296,14430,14224],{"class":309},[296,14432,14433],{"class":698}," name",[296,14435,459],{"class":309},[296,14437,14438],{"class":331}," Install dependencies\n",[296,14440,14441,14444,14446],{"class":298,"line":5726},[296,14442,14443],{"class":698},"        run",[296,14445,459],{"class":309},[296,14447,14448],{"class":331}," pnpm install\n",[296,14450,14451],{"class":298,"line":5733},[296,14452,445],{"emptyLinePlaceholder":444},[296,14454,14455],{"class":298,"line":5744},[296,14456,14457],{"class":302},"      # ビルド\n",[296,14459,14460,14462,14464,14466],{"class":298,"line":5751},[296,14461,14224],{"class":309},[296,14463,14433],{"class":698},[296,14465,459],{"class":309},[296,14467,14468],{"class":331}," Build\n",[296,14470,14471,14473,14475],{"class":298,"line":5764},[296,14472,14443],{"class":698},[296,14474,459],{"class":309},[296,14476,14477],{"class":331}," pnpm build\n",[296,14479,14480,14483,14485],{"class":298,"line":5769},[296,14481,14482],{"class":698},"        working-directory",[296,14484,459],{"class":309},[296,14486,14487],{"class":331}," apps/web\n",[296,14489,14490],{"class":298,"line":5776},[296,14491,445],{"emptyLinePlaceholder":444},[296,14493,14494],{"class":298,"line":5789},[296,14495,14496],{"class":302},"      # Cloudflare Pagesにデプロイ（wrangler-action使用）\n",[296,14498,14499,14501,14503,14505],{"class":298,"line":5794},[296,14500,14224],{"class":309},[296,14502,14433],{"class":698},[296,14504,459],{"class":309},[296,14506,14194],{"class":331},[296,14508,14509,14512,14514],{"class":298,"line":5802},[296,14510,14511],{"class":698},"        uses",[296,14513,459],{"class":309},[296,14515,14516],{"class":331}," cloudflare/wrangler-action@v3\n",[296,14518,14519,14521],{"class":298,"line":5810},[296,14520,14353],{"class":698},[296,14522,12538],{"class":309},[296,14524,14525,14528,14530],{"class":298,"line":5818},[296,14526,14527],{"class":698},"          apiToken",[296,14529,459],{"class":309},[296,14531,14532],{"class":331}," ${{ secrets.CLOUDFLARE_API_TOKEN }}\n",[296,14534,14535,14538,14540],{"class":298,"line":5826},[296,14536,14537],{"class":698},"          accountId",[296,14539,459],{"class":309},[296,14541,14542],{"class":331}," ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}\n",[296,14544,14545,14548,14550],{"class":298,"line":5843},[296,14546,14547],{"class":698},"          command",[296,14549,459],{"class":309},[296,14551,14552],{"class":331}," pages deploy apps/web/.output/public --project-name=sample-project\n",[80,14554,14555,3451,14558,283,14561,14564,14565,14568],{},[89,14556,14557],{},"重要：",[137,14559,14560],{},"cloudflare/pages-action",[89,14562,14563],{},"非推奨","です。代わりに ",[137,14566,14567],{},"cloudflare/wrangler-action@v3"," を使用してください。",[182,14570,14572],{"id":14571},"ステップ4-プッシュしてデプロイ","ステップ4: プッシュしてデプロイ",[130,14574,14576],{"className":4766,"code":14575,"language":4768,"meta":139,"style":139},"git add .\ngit commit -m \"Add GitHub Actions workflow\"\ngit push\n\n# GitHub Actionsが自動実行される\n# Actions タブで進行状況を確認\n",[137,14577,14578,14586,14601,14607,14611,14616],{"__ignoreMap":139},[296,14579,14580,14582,14584],{"class":298,"line":299},[296,14581,13665],{"class":359},[296,14583,5098],{"class":331},[296,14585,13676],{"class":331},[296,14587,14588,14590,14592,14594,14596,14599],{"class":298,"line":306},[296,14589,13665],{"class":359},[296,14591,13683],{"class":331},[296,14593,13686],{"class":2199},[296,14595,1013],{"class":327},[296,14597,14598],{"class":331},"Add GitHub Actions workflow",[296,14600,1018],{"class":327},[296,14602,14603,14605],{"class":298,"line":340},[296,14604,13665],{"class":359},[296,14606,13995],{"class":331},[296,14608,14609],{"class":298,"line":346},[296,14610,445],{"emptyLinePlaceholder":444},[296,14612,14613],{"class":298,"line":366},[296,14614,14615],{"class":302},"# GitHub Actionsが自動実行される\n",[296,14617,14618],{"class":298,"line":441},[296,14619,14620],{"class":302},"# Actions タブで進行状況を確認\n",[71,14622],{},[76,14624,14625],{"id":14625},"トラブルシューティング",[182,14627,14629],{"id":14628},"問題1-途中からgit連携できない場合","問題1: 「途中からGit連携できない」場合",[80,14631,14632,14635],{},[89,14633,14634],{},"原因："," Cloudflare Pagesプロジェクトを「Direct Upload」で作成してしまった",[80,14637,14638],{},[89,14639,14640],{},"解決策：",[18,14642,14643,14656],{},[21,14644,14645,14648],{},[89,14646,14647],{},"新しいプロジェクトを作成する（推奨）",[84,14649,14650,14653],{},[21,14651,14652],{},"Cloudflare Dashboard > 既存プロジェクトを削除",[21,14654,14655],{},"「Connect to Git」で新規作成",[21,14657,14658,14661],{},[89,14659,14660],{},"GitHub Actionsに移行する",[84,14662,14663,14666],{},[21,14664,14665],{},"上記「方法2」の手順に従う",[21,14667,14668],{},"既存プロジェクトをそのまま使用可能",[182,14670,14672],{"id":14671},"問題2-ビルドが失敗する","問題2: ビルドが失敗する",[80,14674,14675],{},[89,14676,14677],{},"よくある原因：",[84,14679,14680,14685,14692],{},[21,14681,14682,14684],{},[137,14683,13905],{}," が未設定（モノレポの場合）",[21,14686,14687,14688,14691],{},"Node.js バージョンが古い（環境変数で ",[137,14689,14690],{},"NODE_VERSION=22.6.0"," を設定）",[21,14693,14694,14695,14691],{},"pnpm が認識されない（",[137,14696,14697],{},"PNPM_VERSION=10.10.0",[80,14699,14700],{},[89,14701,14702],{},"確認方法：",[80,14704,14705],{},"Cloudflare Dashboard > プロジェクト > Deployments > ビルドログを確認",[182,14707,14709],{"id":14708},"問題3-プレビューデプロイが作成されない","問題3: プレビューデプロイが作成されない",[80,14711,14712],{},[89,14713,14714],{},"確認事項：",[84,14716,14717,14720],{},[21,14718,14719],{},"Settings > Builds & deployments > Branch deployments が有効か",[21,14721,14722],{},"GitHubアプリの権限が適切か（Cloudflare Pagesがリポジトリにアクセスできるか）",[71,14724],{},[76,14726,14728],{"id":14727},"推奨デプロイフローgit連携","推奨デプロイフロー（Git連携）",[130,14730,14733],{"className":14731,"code":14732,"language":135},[133],"1. ローカル開発\n   └─ pnpm dev で動作確認\n\n2. 機能ブランチで開発\n   └─ git checkout -b feature/new-article\n\n3. コミット & プッシュ\n   └─ git push origin feature/new-article\n\n4. Pull Request作成\n   └─ プレビューURLが自動生成（例: https://123.sample-project.pages.dev）\n\n5. レビュー & マージ\n   └─ main ブランチにマージ\n\n6. 本番デプロイ\n   └─ 自動で https://sample-project.pages.dev にデプロイ\n",[137,14734,14732],{"__ignoreMap":139},[76,14736,14737],{"id":14737},"パフォーマンス最適化",[182,14739,14741],{"id":14740},"_1-画像最適化","1. 画像最適化",[130,14743,14745],{"className":675,"code":14744,"language":677,"meta":139,"style":139},"// nuxt.config.ts\nexport default defineNuxtConfig({\n  image: {\n    provider: 'cloudflare',\n    domains: ['your-domain.pages.dev']\n  }\n})\n",[137,14746,14747,14752,14762,14769,14785,14801,14805],{"__ignoreMap":139},[296,14748,14749],{"class":298,"line":299},[296,14750,14751],{"class":302},"// nuxt.config.ts\n",[296,14753,14754,14756,14758,14760],{"class":298,"line":306},[296,14755,684],{"class":313},[296,14757,687],{"class":313},[296,14759,690],{"class":359},[296,14761,693],{"class":309},[296,14763,14764,14767],{"class":298,"line":340},[296,14765,14766],{"class":698},"  image",[296,14768,724],{"class":309},[296,14770,14771,14774,14776,14778,14781,14783],{"class":298,"line":346},[296,14772,14773],{"class":698},"    provider",[296,14775,732],{"class":309},[296,14777,416],{"class":327},[296,14779,14780],{"class":331},"cloudflare",[296,14782,416],{"class":327},[296,14784,501],{"class":309},[296,14786,14787,14790,14792,14794,14797,14799],{"class":298,"line":366},[296,14788,14789],{"class":698},"    domains",[296,14791,702],{"class":309},[296,14793,416],{"class":327},[296,14795,14796],{"class":331},"your-domain.pages.dev",[296,14798,416],{"class":327},[296,14800,2875],{"class":309},[296,14802,14803],{"class":298,"line":441},[296,14804,970],{"class":309},[296,14806,14807],{"class":298,"line":448},[296,14808,976],{"class":309},[182,14810,14812],{"id":14811},"_2-プリレンダリング","2. プリレンダリング",[130,14814,14816],{"className":675,"code":14815,"language":677,"meta":139,"style":139},"// nuxt.config.ts\nexport default defineNuxtConfig({\n  nitro: {\n    prerender: {\n      crawlLinks: true,\n      routes: ['/'],\n      ignore: ['/api/']\n    }\n  }\n})\n",[137,14817,14818,14822,14832,14838,14845,14856,14871,14887,14891,14895],{"__ignoreMap":139},[296,14819,14820],{"class":298,"line":299},[296,14821,14751],{"class":302},[296,14823,14824,14826,14828,14830],{"class":298,"line":306},[296,14825,684],{"class":313},[296,14827,687],{"class":313},[296,14829,690],{"class":359},[296,14831,693],{"class":309},[296,14833,14834,14836],{"class":298,"line":340},[296,14835,5697],{"class":698},[296,14837,724],{"class":309},[296,14839,14840,14843],{"class":298,"line":346},[296,14841,14842],{"class":698},"    prerender",[296,14844,724],{"class":309},[296,14846,14847,14850,14852,14854],{"class":298,"line":366},[296,14848,14849],{"class":698},"      crawlLinks",[296,14851,732],{"class":309},[296,14853,735],{"class":313},[296,14855,501],{"class":309},[296,14857,14858,14861,14863,14865,14867,14869],{"class":298,"line":441},[296,14859,14860],{"class":698},"      routes",[296,14862,702],{"class":309},[296,14864,416],{"class":327},[296,14866,388],{"class":331},[296,14868,416],{"class":327},[296,14870,712],{"class":309},[296,14872,14873,14876,14878,14880,14883,14885],{"class":298,"line":448},[296,14874,14875],{"class":698},"      ignore",[296,14877,702],{"class":309},[296,14879,416],{"class":327},[296,14881,14882],{"class":331},"/api/",[296,14884,416],{"class":327},[296,14886,2875],{"class":309},[296,14888,14889],{"class":298,"line":479},[296,14890,964],{"class":309},[296,14892,14893],{"class":298,"line":504},[296,14894,970],{"class":309},[296,14896,14897],{"class":298,"line":526},[296,14898,976],{"class":309},[182,14900,14902],{"id":14901},"_3-sqliteダンプの圧縮","3. SQLiteダンプの圧縮",[80,14904,14905,14906,14908],{},"Nuxt Contentが自動で ",[137,14907,241],{}," を生成しますが、さらにBrotli圧縮を適用：",[130,14910,14912],{"className":675,"code":14911,"language":677,"meta":139,"style":139},"// nuxt.config.ts\nexport default defineNuxtConfig({\n  nitro: {\n    compressPublicAssets: {\n      brotli: true,\n      gzip: true\n    }\n  }\n})\n",[137,14913,14914,14918,14928,14934,14941,14952,14961,14965,14969],{"__ignoreMap":139},[296,14915,14916],{"class":298,"line":299},[296,14917,14751],{"class":302},[296,14919,14920,14922,14924,14926],{"class":298,"line":306},[296,14921,684],{"class":313},[296,14923,687],{"class":313},[296,14925,690],{"class":359},[296,14927,693],{"class":309},[296,14929,14930,14932],{"class":298,"line":340},[296,14931,5697],{"class":698},[296,14933,724],{"class":309},[296,14935,14936,14939],{"class":298,"line":346},[296,14937,14938],{"class":698},"    compressPublicAssets",[296,14940,724],{"class":309},[296,14942,14943,14946,14948,14950],{"class":298,"line":366},[296,14944,14945],{"class":698},"      brotli",[296,14947,732],{"class":309},[296,14949,735],{"class":313},[296,14951,501],{"class":309},[296,14953,14954,14957,14959],{"class":298,"line":441},[296,14955,14956],{"class":698},"      gzip",[296,14958,732],{"class":309},[296,14960,13062],{"class":313},[296,14962,14963],{"class":298,"line":448},[296,14964,964],{"class":309},[296,14966,14967],{"class":298,"line":479},[296,14968,970],{"class":309},[296,14970,14971],{"class":298,"line":504},[296,14972,976],{"class":309},[71,14974],{},[14,14976,14977],{"id":14977},"まとめ",[76,14979,14980],{"id":14980},"このアーキテクチャの利点",[18,14982,14983,14999,15015,15031],{},[21,14984,14985,14988],{},[89,14986,14987],{},"コンテンツ管理が簡単",[84,14989,14990,14993,14996],{},[21,14991,14992],{},"MarkdownファイルをGitで管理",[21,14994,14995],{},"フロントマターでメタデータ管理",[21,14997,14998],{},"SQLiteへの自動変換",[21,15000,15001,15004],{},[89,15002,15003],{},"柔軟性が高い",[84,15005,15006,15009,15012],{},[21,15007,15008],{},"シンプルな記事: Markdown",[21,15010,15011],{},"複雑なUI: Vue",[21,15013,15014],{},"両方を自然に共存させる",[21,15016,15017,15020],{},[89,15018,15019],{},"パフォーマンス",[84,15021,15022,15025,15028],{},[21,15023,15024],{},"SQLiteクエリは高速",[21,15026,15027],{},"静的生成で配信も高速",[21,15029,15030],{},"エッジ環境での実行",[21,15032,15033,15036],{},[89,15034,15035],{},"開発体験",[84,15037,15038,15041,15043],{},[21,15039,15040],{},"HMRによるリアルタイム更新",[21,15042,4683],{},[21,15044,15045],{},"モダンなツールチェーン",[76,15047,15048],{"id":15048},"推奨される運用フロー",[130,15050,15053],{"className":15051,"code":15052,"language":135},[133],"1. 新規コンテンツ作成\n   ├─ シンプルな記事 → content/YYYY-MM-DD/article.md\n   └─ インタラクティブ → pages/blog/demo.vue\n\n2. ローカル開発\n   └─ pnpm dev → http://localhost:3000 で確認\n\n3. Git commit & push\n   ├─ 機能ブランチにpush → プレビューデプロイ自動作成\n   └─ main/masterブランチにマージ → 本番デプロイ自動実行\n\n4. 本番環境\n   └─ Cloudflare Pages/Workers で配信\n   └─ エッジネットワーク経由でグローバル配信\n",[137,15054,15052],{"__ignoreMap":139},[76,15056,15057],{"id":15057},"参考リンク",[84,15059,15060,15067,15074,15081,15088,15095],{},[21,15061,15062],{},[24,15063,15066],{"href":15064,"rel":15065},"https://content.nuxt.com",[13801],"Nuxt Content v3 Documentation",[21,15068,15069],{},[24,15070,15073],{"href":15071,"rel":15072},"https://nuxt.com/docs/guide/directory-structure/pages",[13801],"Nuxt Pages Documentation",[21,15075,15076],{},[24,15077,15080],{"href":15078,"rel":15079},"https://developers.cloudflare.com/pages",[13801],"Cloudflare Pages Documentation",[21,15082,15083],{},[24,15084,15087],{"href":15085,"rel":15086},"https://developers.cloudflare.com/workers",[13801],"Cloudflare Workers Documentation",[21,15089,15090],{},[24,15091,15094],{"href":15092,"rel":15093},"https://developers.cloudflare.com/pages/configuration/git-integration/",[13801],"GitHub Integration Guide",[21,15096,15097],{},[24,15098,15101],{"href":15099,"rel":15100},"https://nodejs.org/api/sqlite.html",[13801],"SQLite in Node.js",[71,15103],{},[80,15105,15106],{},[89,15107,15108],{},"このドキュメントを別のセッションに渡すことで、まったく同じ環境を再現できます。",[8579,15110,15111],{},"html pre.shiki code .sxvE3, html code.shiki .sxvE3{--shiki-default:#A0ADA0;--shiki-dark:#A0ADA0}html pre.shiki code .shFtX, html code.shiki .shFtX{--shiki-default:#999999;--shiki-dark:#999999}html pre.shiki code .sHkkW, html code.shiki .sHkkW{--shiki-default:#1E754F;--shiki-dark:#1E754F}html pre.shiki code .s4oTP, html code.shiki .s4oTP{--shiki-default:#B07D48;--shiki-dark:#B07D48}html pre.shiki code .sMJiu, html code.shiki .sMJiu{--shiki-default:#B5695977;--shiki-dark:#B5695977}html pre.shiki code .sdGka, html code.shiki .sdGka{--shiki-default:#B56959;--shiki-dark:#B56959}html pre.shiki code .stQ0i, html code.shiki .stQ0i{--shiki-default:#AB5959;--shiki-dark:#AB5959}html pre.shiki code .senZ8, html code.shiki .senZ8{--shiki-default:#59873A;--shiki-dark:#59873A}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);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sz8Xr, html code.shiki .sz8Xr{--shiki-default:#998418;--shiki-dark:#998418}html pre.shiki code .sG7-3, html code.shiki .sG7-3{--shiki-default:#393A34;--shiki-dark:#393A34}html pre.shiki code .sM54T, html code.shiki .sM54T{--shiki-default:#2F798A;--shiki-dark:#2F798A}html pre.shiki code .sE5Nq, html code.shiki .sE5Nq{--shiki-default:#393A3490;--shiki-default-text-decoration:underline;--shiki-dark:#393A3490;--shiki-dark-text-decoration:underline}html pre.shiki code .sSkh3, html code.shiki .sSkh3{--shiki-default:#2E8F82;--shiki-dark:#2E8F82}html pre.shiki code .svWSF, html code.shiki .svWSF{--shiki-default:#BDA437;--shiki-dark:#BDA437}html pre.shiki code .she3A, html code.shiki .she3A{--shiki-default:#5A6AA6;--shiki-dark:#5A6AA6}html pre.shiki code .sLkVR, html code.shiki .sLkVR{--shiki-default:#AB5E3F;--shiki-dark:#AB5E3F}html pre.shiki code .snbK4, html code.shiki .snbK4{--shiki-default:#A65E2B;--shiki-dark:#A65E2B}html pre.shiki code .sFA8A, html code.shiki .sFA8A{--shiki-default:#999999;--shiki-default-font-weight:bold;--shiki-dark:#999999;--shiki-dark-font-weight:bold}html pre.shiki code .syTZV, html code.shiki .syTZV{--shiki-default:#1C6B48;--shiki-default-font-weight:bold;--shiki-dark:#1C6B48;--shiki-dark-font-weight:bold}html pre.shiki code .svuG7, html code.shiki .svuG7{--shiki-default:#005CC5;--shiki-default-font-weight:bold;--shiki-dark:#005CC5;--shiki-dark-font-weight:bold}",{"title":139,"searchDepth":306,"depth":306,"links":15113},[15114,15115,15119,15123,15128,15132,15137,15145,15158,15167],{"id":16,"depth":306,"text":16},{"id":27,"depth":306,"text":27,"children":15116},[15117,15118],{"id":78,"depth":340,"text":78},{"id":123,"depth":340,"text":123},{"id":33,"depth":306,"text":33,"children":15120},[15121,15122],{"id":172,"depth":340,"text":173},{"id":253,"depth":340,"text":254},{"id":662,"depth":306,"text":39,"children":15124},[15125,15126,15127],{"id":665,"depth":340,"text":665},{"id":1413,"depth":340,"text":1414},{"id":1814,"depth":340,"text":1814},{"id":2379,"depth":306,"text":45,"children":15129},[15130,15131],{"id":2382,"depth":340,"text":2382},{"id":2598,"depth":340,"text":2599},{"id":3155,"depth":306,"text":51,"children":15133},[15134,15135,15136],{"id":3158,"depth":340,"text":3158},{"id":3276,"depth":340,"text":3277},{"id":3861,"depth":340,"text":3861},{"id":57,"depth":306,"text":57,"children":15138},[15139,15140,15141,15142,15143,15144],{"id":4292,"depth":340,"text":4292},{"id":4301,"depth":340,"text":4301},{"id":4432,"depth":340,"text":4432},{"id":4441,"depth":340,"text":4441},{"id":4641,"depth":340,"text":4641},{"id":4704,"depth":340,"text":4704},{"id":63,"depth":306,"text":63,"children":15146},[15147,15148,15149,15150,15151,15152,15153,15154,15155,15156,15157],{"id":4763,"depth":340,"text":4763},{"id":4829,"depth":340,"text":4830},{"id":4994,"depth":340,"text":4995},{"id":5080,"depth":340,"text":5081},{"id":5191,"depth":340,"text":5192},{"id":5277,"depth":340,"text":5278},{"id":7892,"depth":340,"text":7893},{"id":11191,"depth":340,"text":11192},{"id":12497,"depth":340,"text":12498},{"id":13375,"depth":340,"text":13376},{"id":13420,"depth":340,"text":13421},{"id":69,"depth":306,"text":69,"children":15159},[15160,15161,15162,15163,15164,15165,15166],{"id":13516,"depth":340,"text":13517},{"id":13567,"depth":340,"text":13567},{"id":13639,"depth":340,"text":13640},{"id":14071,"depth":340,"text":13607},{"id":14625,"depth":340,"text":14625},{"id":14727,"depth":340,"text":14728},{"id":14737,"depth":340,"text":14737},{"id":14977,"depth":306,"text":14977,"children":15168},[15169,15170,15171],{"id":14980,"depth":340,"text":14980},{"id":15048,"depth":340,"text":15048},{"id":15057,"depth":340,"text":15057},null,"Nuxt Content（Markdown + SQLite）とNuxt Pages（Vue）を組み合わせたハイブリッドCMSアーキテクチャの完全ガイド。新規プロジェクトとしてゼロから構築するための要件定義を含む","md",{},"/nuxt-hybrid-content-architecture",false,"2025-11-29T00:00:00.000Z",{"title":5,"description":15173},"2025-11/2025-11-29/nuxt-hybrid-content-architecture",[1529,945,519,15182,15183,764],"architecture","requirements","GaqkUMutCWHmLKHvUdZ88_pY3mCGzgeYQn_Qhe96dfM",[],[15187,15191,15195,15199,15203],{"title":15188,"path":15189,"publishedAt":15190},"Nuxt Content の SQLite アーキテクチャ解説","/nuxt-content-sqlite-architecture","2025-10-02T00:00:00.000Z",{"title":15192,"path":15193,"publishedAt":15194},"SQLiteから財務データを読み込む実装方針","/sqlite-financial-data-implementation","2025-12-12T00:00:00.000Z",{"title":15196,"path":15197,"publishedAt":15198},"Nuxt Content v3：D1データベースは本当に必要なのか？","/nuxt-content-d1-not-used","2025-12-05T00:00:00.000Z",{"title":15200,"path":15201,"publishedAt":15202},"Nuxt Pages と Nuxt Content の統合仕組み","/nuxt-pages-and-content-integration","2025-10-05T00:00:00.000Z",{"title":15204,"path":15205,"publishedAt":15206},"Nuxt Content: ファイル監視と自動更新の仕組み","/nuxt-content-file-watch-and-auto-update","2025-10-04T00:00:00.000Z","https://log.eurekapu.com/og/blog/nuxt-hybrid-content-architecture.png?v=2025-11-29T00%3A00%3A00.000Z&title=Nuxt%20Content%20%2B%20Pages%20%E3%83%8F%E3%82%A4%E3%83%96%E3%83%AA%E3%83%83%E3%83%89%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3%EF%BC%9A%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E8%A6%81%E4%BB%B6%E5%AE%9A%E7%BE%A9%E6%9B%B8&author=Kei%20Komatsu&sig=46321f12dfc46485",1785654952860]