[{"data":1,"prerenderedAt":605},["ShallowReactive",2],{"content-ja-\u002Fapi\u002Fbuild":3},{"id":4,"title":5,"body":6,"description":598,"extension":599,"meta":600,"navigation":509,"path":601,"seo":602,"stem":603,"__hash__":604},"content_ja\u002Fapi\u002Fbuild.md","build",{"type":7,"value":8,"toc":588},"minimark",[9,12,16,46,50,94,97,197,311,314,377,382,385,402,408,420,423,557,560,584],[10,11,5],"h1",{"id":5},[13,14,15],"p",{},"複数の Markdown ファイルを一括でレンダリングする SSG 向け API です。",[17,18,23],"pre",{"className":19,"code":20,"language":21,"meta":22,"style":22},"language-ts shiki shiki-themes github-light github-dark","import { build } from '@b4moss\u002Fhyogen-md'\n","ts","",[24,25,26],"code",{"__ignoreMap":22},[27,28,31,35,39,42],"span",{"class":29,"line":30},"line",1,[27,32,34],{"class":33},"szBVR","import",[27,36,38],{"class":37},"sVt8B"," { build } ",[27,40,41],{"class":33},"from",[27,43,45],{"class":44},"sZZnC"," '@b4moss\u002Fhyogen-md'\n",[47,48,49],"h2",{"id":49},"シグネチャ",[17,51,53],{"className":19,"code":52,"language":21,"meta":22,"style":22},"function build(options: BuildOptions): Promise\u003CBuildResult>\n",[24,54,55],{"__ignoreMap":22},[27,56,57,60,64,67,71,74,77,80,82,85,88,91],{"class":29,"line":30},[27,58,59],{"class":33},"function",[27,61,63],{"class":62},"sScJk"," build",[27,65,66],{"class":37},"(",[27,68,70],{"class":69},"s4XuR","options",[27,72,73],{"class":33},":",[27,75,76],{"class":62}," BuildOptions",[27,78,79],{"class":37},")",[27,81,73],{"class":33},[27,83,84],{"class":62}," Promise",[27,86,87],{"class":37},"\u003C",[27,89,90],{"class":62},"BuildResult",[27,92,93],{"class":37},">\n",[47,95,96],{"id":96},"オプション",[17,98,100],{"className":19,"code":99,"language":21,"meta":22,"style":22},"type BuildOptions = RenderOptions & {\n  input: string | string[]   \u002F\u002F エントリパスまたは glob\n  outDir: string             \u002F\u002F 出力先（呼び出し側が書き込む）\n  includeUnderscoreEntries?: boolean\n  context?: HyogenContext\n  serverContext?: HyogenContext\n}\n",[24,101,102,121,145,158,170,181,191],{"__ignoreMap":22},[27,103,104,107,109,112,115,118],{"class":29,"line":30},[27,105,106],{"class":33},"type",[27,108,76],{"class":62},[27,110,111],{"class":33}," =",[27,113,114],{"class":62}," RenderOptions",[27,116,117],{"class":33}," &",[27,119,120],{"class":37}," {\n",[27,122,124,127,129,133,136,138,141],{"class":29,"line":123},2,[27,125,126],{"class":69},"  input",[27,128,73],{"class":33},[27,130,132],{"class":131},"sj4cs"," string",[27,134,135],{"class":33}," |",[27,137,132],{"class":131},[27,139,140],{"class":37},"[]   ",[27,142,144],{"class":143},"sJ8bj","\u002F\u002F エントリパスまたは glob\n",[27,146,148,151,153,155],{"class":29,"line":147},3,[27,149,150],{"class":69},"  outDir",[27,152,73],{"class":33},[27,154,132],{"class":131},[27,156,157],{"class":143},"             \u002F\u002F 出力先（呼び出し側が書き込む）\n",[27,159,161,164,167],{"class":29,"line":160},4,[27,162,163],{"class":69},"  includeUnderscoreEntries",[27,165,166],{"class":33},"?:",[27,168,169],{"class":131}," boolean\n",[27,171,173,176,178],{"class":29,"line":172},5,[27,174,175],{"class":69},"  context",[27,177,166],{"class":33},[27,179,180],{"class":62}," HyogenContext\n",[27,182,184,187,189],{"class":29,"line":183},6,[27,185,186],{"class":69},"  serverContext",[27,188,166],{"class":33},[27,190,180],{"class":62},[27,192,194],{"class":29,"line":193},7,[27,195,196],{"class":37},"}\n",[198,199,200,212],"table",{},[201,202,203],"thead",{},[204,205,206,209],"tr",{},[207,208,96],"th",{},[207,210,211],{},"説明",[213,214,215,231,245,255,265,278,291,301],"tbody",{},[204,216,217,223],{},[218,219,220],"td",{},[24,221,222],{},"input",[218,224,225,226,230],{},"ビルド対象。単一パス、配列、または ",[227,228,229],"strong",{},"glob パターン","（picomatch \u002F fast-glob 互換）",[204,232,233,238],{},[218,234,235],{},[24,236,237],{},"outDir",[218,239,240,241,244],{},"出力ディレクトリのパス（ライブラリはファイルを書き込まない。戻り値の ",[24,242,243],{},"files"," を利用）",[204,246,247,252],{},[218,248,249],{},[24,250,251],{},"context",[218,253,254],{},"全エントリに渡すテンプレート変数",[204,256,257,262],{},[218,258,259],{},[24,260,261],{},"serverContext",[218,263,264],{},"サーバー専用のテンプレート変数",[204,266,267,272],{},[218,268,269],{},[24,270,271],{},"loader",[218,273,274,275],{},"省略時は ",[24,276,277],{},"createNodeLoader()",[204,279,280,285],{},[218,281,282],{},[24,283,284],{},"includeUnderscoreEntries",[218,286,287,290],{},[24,288,289],{},"_"," 始まりの partial をエントリに含めるか",[204,292,293,298],{},[218,294,295],{},[24,296,297],{},"preserveFrontMatter",[218,299,300],{},"出力に front matter を残す",[204,302,303,308],{},[218,304,305],{},[24,306,307],{},"preserveHgComments",[218,309,310],{},"出力に hyogen コメントを残す",[47,312,313],{"id":313},"戻り値",[17,315,317],{"className":19,"code":316,"language":21,"meta":22,"style":22},"type BuildResult = {\n  files: { path: string; markdown: string }[]\n  warnings: HyogenWarning[]\n}\n",[24,318,319,330,360,373],{"__ignoreMap":22},[27,320,321,323,326,328],{"class":29,"line":30},[27,322,106],{"class":33},[27,324,325],{"class":62}," BuildResult",[27,327,111],{"class":33},[27,329,120],{"class":37},[27,331,332,335,337,340,343,345,347,350,353,355,357],{"class":29,"line":123},[27,333,334],{"class":69},"  files",[27,336,73],{"class":33},[27,338,339],{"class":37}," { ",[27,341,342],{"class":69},"path",[27,344,73],{"class":33},[27,346,132],{"class":131},[27,348,349],{"class":37},"; ",[27,351,352],{"class":69},"markdown",[27,354,73],{"class":33},[27,356,132],{"class":131},[27,358,359],{"class":37}," }[]\n",[27,361,362,365,367,370],{"class":29,"line":147},[27,363,364],{"class":69},"  warnings",[27,366,73],{"class":33},[27,368,369],{"class":62}," HyogenWarning",[27,371,372],{"class":37},"[]\n",[27,374,375],{"class":29,"line":160},[27,376,196],{"class":37},[13,378,379,381],{},[24,380,243],{}," 配列にレンダリング結果が入ります。ディスクへの書き込みは呼び出し側の責任です。",[47,383,384],{"id":384},"依存の走査",[13,386,387,388,401],{},"既定では、指定したエントリから ",[227,389,390,393,394,393,397,400],{},[24,391,392],{},"include"," \u002F ",[24,395,396],{},"component",[24,398,399],{},"extend"," の依存を辿って","関連ファイルを処理します。",[47,403,405,407],{"id":404},"_-partial-の扱い",[24,406,289],{}," partial の扱い",[13,409,410,412,413,415,416,419],{},[24,411,289],{}," で始まるファイルや ",[24,414,289],{}," ディレクトリ配下は、",[227,417,418],{},"エントリ対象外","です（Sass の partial と同様）。ただし glob で明示的に指定したパスは、除外を上書きしてエントリに含められます。",[47,421,422],{"id":422},"例",[17,424,426],{"className":19,"code":425,"language":21,"meta":22,"style":22},"const { files, warnings } = await build({\n  input: '.\u002Fsrc\u002F**\u002F*.md',\n  outDir: '.\u002Fout',\n  context: { siteName: 'My Site' },\n  serverContext: { buildTime: Date.now() },\n})\n\nfor (const file of files) {\n  await writeFile(join('.\u002Fout', file.path), file.markdown)\n}\n",[24,427,428,457,468,478,489,500,505,511,531,552],{"__ignoreMap":22},[27,429,430,433,435,437,440,443,446,449,452,454],{"class":29,"line":30},[27,431,432],{"class":33},"const",[27,434,339],{"class":37},[27,436,243],{"class":131},[27,438,439],{"class":37},", ",[27,441,442],{"class":131},"warnings",[27,444,445],{"class":37}," } ",[27,447,448],{"class":33},"=",[27,450,451],{"class":33}," await",[27,453,63],{"class":62},[27,455,456],{"class":37},"({\n",[27,458,459,462,465],{"class":29,"line":123},[27,460,461],{"class":37},"  input: ",[27,463,464],{"class":44},"'.\u002Fsrc\u002F**\u002F*.md'",[27,466,467],{"class":37},",\n",[27,469,470,473,476],{"class":29,"line":147},[27,471,472],{"class":37},"  outDir: ",[27,474,475],{"class":44},"'.\u002Fout'",[27,477,467],{"class":37},[27,479,480,483,486],{"class":29,"line":160},[27,481,482],{"class":37},"  context: { siteName: ",[27,484,485],{"class":44},"'My Site'",[27,487,488],{"class":37}," },\n",[27,490,491,494,497],{"class":29,"line":172},[27,492,493],{"class":37},"  serverContext: { buildTime: Date.",[27,495,496],{"class":62},"now",[27,498,499],{"class":37},"() },\n",[27,501,502],{"class":29,"line":183},[27,503,504],{"class":37},"})\n",[27,506,507],{"class":29,"line":193},[27,508,510],{"emptyLinePlaceholder":509},true,"\n",[27,512,514,517,520,522,525,528],{"class":29,"line":513},8,[27,515,516],{"class":33},"for",[27,518,519],{"class":37}," (",[27,521,432],{"class":33},[27,523,524],{"class":131}," file",[27,526,527],{"class":33}," of",[27,529,530],{"class":37}," files) {\n",[27,532,534,537,540,542,545,547,549],{"class":29,"line":533},9,[27,535,536],{"class":33},"  await",[27,538,539],{"class":62}," writeFile",[27,541,66],{"class":37},[27,543,544],{"class":62},"join",[27,546,66],{"class":37},[27,548,475],{"class":44},[27,550,551],{"class":37},", file.path), file.markdown)\n",[27,553,555],{"class":29,"line":554},10,[27,556,196],{"class":37},[47,558,559],{"id":559},"関連",[561,562,563,571],"ul",{},[564,565,566],"li",{},[567,568,570],"a",{"href":569},"\u002Fja\u002Fapi\u002Frender-server","renderServer",[564,572,573,577,578,580,581],{},[567,574,576],{"href":575},"\u002Fja\u002Fsyntax\u002Fpaths-and-security","パスとセキュリティ"," — ",[24,579,289],{}," partial と ",[24,582,583],{},".doc_root",[585,586,587],"style",{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}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 .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":22,"searchDepth":123,"depth":123,"links":589},[590,591,592,593,594,596,597],{"id":49,"depth":123,"text":49},{"id":96,"depth":123,"text":96},{"id":313,"depth":123,"text":313},{"id":384,"depth":123,"text":384},{"id":404,"depth":123,"text":595},"_ partial の扱い",{"id":422,"depth":123,"text":422},{"id":559,"depth":123,"text":559},"複数 Markdown ファイルの一括レンダリング（SSG）","md",{},"\u002Fapi\u002Fbuild",{"title":5,"description":598},"api\u002Fbuild","vGUjx64VmbqXvLcZliLw4W-LJHVkS191goTquRBgFtc",1787223114247]