[{"data":1,"prerenderedAt":579},["ShallowReactive",2],{"content-ja-\u002Fapi\u002Frender-server":3},{"id":4,"title":5,"body":6,"description":571,"extension":572,"meta":573,"navigation":574,"path":575,"seo":576,"stem":577,"__hash__":578},"content_ja\u002Fapi\u002Frender-server.md","renderServer",{"type":7,"value":8,"toc":557},"minimark",[9,13,22,51,55,150,153,159,162,185,190,201,206,323,326,376,387,390,393,437,441,517,526,529,553],[10,11,5],"h1",{"id":12},"renderserver",[14,15,16,17,21],"p",{},"SSR や Node 上でのレンダリングに使う API です。",[18,19,20],"code",{},"serverContext"," でサーバー専用のデータを渡せます。",[23,24,29],"pre",{"className":25,"code":26,"language":27,"meta":28,"style":28},"language-ts shiki shiki-themes github-light github-dark","import { renderServer } from '@b4moss\u002Fhyogen-md'\n","ts","",[18,30,31],{"__ignoreMap":28},[32,33,36,40,44,47],"span",{"class":34,"line":35},"line",1,[32,37,39],{"class":38},"szBVR","import",[32,41,43],{"class":42},"sVt8B"," { renderServer } ",[32,45,46],{"class":38},"from",[32,48,50],{"class":49},"sZZnC"," '@b4moss\u002Fhyogen-md'\n",[52,53,54],"h2",{"id":54},"シグネチャ",[23,56,58],{"className":25,"code":57,"language":27,"meta":28,"style":28},"function renderServer(\n  source: string | { path: string },\n  context?: HyogenContext,\n  options?: ServerRenderOptions,\n): Promise\u003CRenderResult>\n",[18,59,60,72,102,117,130],{"__ignoreMap":28},[32,61,62,65,69],{"class":34,"line":35},[32,63,64],{"class":38},"function",[32,66,68],{"class":67},"sScJk"," renderServer",[32,70,71],{"class":42},"(\n",[32,73,75,79,82,86,89,92,95,97,99],{"class":34,"line":74},2,[32,76,78],{"class":77},"s4XuR","  source",[32,80,81],{"class":38},":",[32,83,85],{"class":84},"sj4cs"," string",[32,87,88],{"class":38}," |",[32,90,91],{"class":42}," { ",[32,93,94],{"class":77},"path",[32,96,81],{"class":38},[32,98,85],{"class":84},[32,100,101],{"class":42}," },\n",[32,103,105,108,111,114],{"class":34,"line":104},3,[32,106,107],{"class":77},"  context",[32,109,110],{"class":38},"?:",[32,112,113],{"class":67}," HyogenContext",[32,115,116],{"class":42},",\n",[32,118,120,123,125,128],{"class":34,"line":119},4,[32,121,122],{"class":77},"  options",[32,124,110],{"class":38},[32,126,127],{"class":67}," ServerRenderOptions",[32,129,116],{"class":42},[32,131,133,136,138,141,144,147],{"class":34,"line":132},5,[32,134,135],{"class":42},")",[32,137,81],{"class":38},[32,139,140],{"class":67}," Promise",[32,142,143],{"class":42},"\u003C",[32,145,146],{"class":67},"RenderResult",[32,148,149],{"class":42},">\n",[52,151,152],{"id":152},"引数",[154,155,157],"h3",{"id":156},"source",[18,158,156],{},[14,160,161],{},"レンダリング対象です。",[163,164,165,173],"ul",{},[166,167,168,172],"li",{},[169,170,171],"strong",{},"文字列"," — Markdown ソースを直接渡す",[166,174,175,180,181,184],{},[169,176,177],{},[18,178,179],{},"{ path: string }"," — ファイルパスを指定（",[18,182,183],{},"loader"," で読み込む）",[154,186,188],{"id":187},"context",[18,189,187],{},[14,191,192,193,196,197,200],{},"テンプレート変数として使うオブジェクトです。",[18,194,195],{},"&#123;&#123; name &#125;&#125;"," などが参照します。front matter や component の props と合成され、",[169,198,199],{},"後から来た値が同名を上書き","します。",[154,202,204],{"id":203},"options",[18,205,203],{},[207,208,209,228],"table",{},[210,211,212],"thead",{},[213,214,215,219,222,225],"tr",{},[216,217,218],"th",{},"オプション",[216,220,221],{},"型",[216,223,224],{},"デフォルト",[216,226,227],{},"説明",[229,230,231,249,268,285,305],"tbody",{},[213,232,233,238,243,246],{},[234,235,236],"td",{},[18,237,20],{},[234,239,240],{},[18,241,242],{},"HyogenContext",[234,244,245],{},"—",[234,247,248],{},"サーバー専用の変数。テンプレートから参照可能",[213,250,251,255,260,265],{},[234,252,253],{},[18,254,183],{},[234,256,257],{},[18,258,259],{},"Loader",[234,261,262],{},[18,263,264],{},"createNodeLoader()",[234,266,267],{},"ファイル読み込み関数",[213,269,270,275,280,282],{},[234,271,272],{},[18,273,274],{},"root",[234,276,277],{},[18,278,279],{},"string",[234,281,245],{},[234,283,284],{},"ドキュメントルートの上書き",[213,286,287,292,297,302],{},[234,288,289],{},[18,290,291],{},"preserveFrontMatter",[234,293,294],{},[18,295,296],{},"boolean",[234,298,299],{},[18,300,301],{},"false",[234,303,304],{},"出力に front matter を残す",[213,306,307,312,316,320],{},[234,308,309],{},[18,310,311],{},"preserveHgComments",[234,313,314],{},[18,315,296],{},[234,317,318],{},[18,319,301],{},[234,321,322],{},"出力に hyogen コメントを残す",[52,324,325],{"id":325},"戻り値",[23,327,329],{"className":25,"code":328,"language":27,"meta":28,"style":28},"type RenderResult = {\n  markdown: string    \u002F\u002F レンダリング後の Markdown\n  warnings: HyogenWarning[]\n}\n",[18,330,331,345,358,371],{"__ignoreMap":28},[32,332,333,336,339,342],{"class":34,"line":35},[32,334,335],{"class":38},"type",[32,337,338],{"class":67}," RenderResult",[32,340,341],{"class":38}," =",[32,343,344],{"class":42}," {\n",[32,346,347,350,352,354],{"class":34,"line":74},[32,348,349],{"class":77},"  markdown",[32,351,81],{"class":38},[32,353,85],{"class":84},[32,355,357],{"class":356},"sJ8bj","    \u002F\u002F レンダリング後の Markdown\n",[32,359,360,363,365,368],{"class":34,"line":104},[32,361,362],{"class":77},"  warnings",[32,364,81],{"class":38},[32,366,367],{"class":67}," HyogenWarning",[32,369,370],{"class":42},"[]\n",[32,372,373],{"class":34,"line":119},[32,374,375],{"class":42},"}\n",[14,377,378,379,382,383,386],{},"エラーが発生した場合は ",[169,380,381],{},"例外を投げ","、レンダリングを中断します。警告のみの場合は ",[18,384,385],{},"warnings"," に入り、処理は続行します。",[52,388,389],{"id":389},"例",[154,391,392],{"id":392},"インラインソース",[23,394,396],{"className":25,"code":395,"language":27,"meta":28,"style":28},"const result = await renderServer(\n  '# {{ title }}',\n  { title: 'Hello' },\n)\n",[18,397,398,415,422,432],{"__ignoreMap":28},[32,399,400,403,406,408,411,413],{"class":34,"line":35},[32,401,402],{"class":38},"const",[32,404,405],{"class":84}," result",[32,407,341],{"class":38},[32,409,410],{"class":38}," await",[32,412,68],{"class":67},[32,414,71],{"class":42},[32,416,417,420],{"class":34,"line":74},[32,418,419],{"class":49},"  '# {{ title }}'",[32,421,116],{"class":42},[32,423,424,427,430],{"class":34,"line":104},[32,425,426],{"class":42},"  { title: ",[32,428,429],{"class":49},"'Hello'",[32,431,101],{"class":42},[32,433,434],{"class":34,"line":119},[32,435,436],{"class":42},")\n",[154,438,440],{"id":439},"ファイル-servercontext","ファイル + serverContext",[23,442,444],{"className":25,"code":443,"language":27,"meta":28,"style":28},"const result = await renderServer(\n  { path: '.\u002Fpages\u002Findex.md' },\n  { title: '公開データ' },\n  {\n    serverContext: { apiKey: 'secret' },\n    loader: createNodeLoader(),\n  },\n)\n",[18,445,446,460,470,479,484,494,506,512],{"__ignoreMap":28},[32,447,448,450,452,454,456,458],{"class":34,"line":35},[32,449,402],{"class":38},[32,451,405],{"class":84},[32,453,341],{"class":38},[32,455,410],{"class":38},[32,457,68],{"class":67},[32,459,71],{"class":42},[32,461,462,465,468],{"class":34,"line":74},[32,463,464],{"class":42},"  { path: ",[32,466,467],{"class":49},"'.\u002Fpages\u002Findex.md'",[32,469,101],{"class":42},[32,471,472,474,477],{"class":34,"line":104},[32,473,426],{"class":42},[32,475,476],{"class":49},"'公開データ'",[32,478,101],{"class":42},[32,480,481],{"class":34,"line":119},[32,482,483],{"class":42},"  {\n",[32,485,486,489,492],{"class":34,"line":132},[32,487,488],{"class":42},"    serverContext: { apiKey: ",[32,490,491],{"class":49},"'secret'",[32,493,101],{"class":42},[32,495,497,500,503],{"class":34,"line":496},6,[32,498,499],{"class":42},"    loader: ",[32,501,502],{"class":67},"createNodeLoader",[32,504,505],{"class":42},"(),\n",[32,507,509],{"class":34,"line":508},7,[32,510,511],{"class":42},"  },\n",[32,513,515],{"class":34,"line":514},8,[32,516,436],{"class":42},[14,518,519,521,522,525],{},[18,520,20],{}," の値もテンプレート変数として参照できます。クライアントに漏らしたくない秘密情報は、こちらに入れて ",[18,523,524],{},"renderClient"," では渡さない運用を推奨します。",[52,527,528],{"id":528},"関連",[163,530,531,541,547],{},[166,532,533,537,538,540],{},[534,535,524],"a",{"href":536},"\u002Fja\u002Fapi\u002Frender-client"," — ブラウザ向け（",[18,539,20],{}," 不可）",[166,542,543,546],{},[534,544,183],{"href":545},"\u002Fja\u002Fapi\u002Floader"," — カスタム loader の書き方",[166,548,549],{},[534,550,552],{"href":551},"\u002Fja\u002Fapi\u002Ftypes-and-options","型とオプション",[554,555,556],"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":28,"searchDepth":74,"depth":74,"links":558},[559,560,565,566,570],{"id":54,"depth":74,"text":54},{"id":152,"depth":74,"text":152,"children":561},[562,563,564],{"id":156,"depth":104,"text":156},{"id":187,"depth":104,"text":187},{"id":203,"depth":104,"text":203},{"id":325,"depth":74,"text":325},{"id":389,"depth":74,"text":389,"children":567},[568,569],{"id":392,"depth":104,"text":392},{"id":439,"depth":104,"text":440},{"id":528,"depth":74,"text":528},"SSR \u002F SSG 向けの Markdown レンダリング API","md",{},true,"\u002Fapi\u002Frender-server",{"title":5,"description":571},"api\u002Frender-server","V1yl9tyIcgKAB1KfjJYhH2-OK9Q8IaQPGQarmgVRDL8",1787223114244]