[{"data":1,"prerenderedAt":531},["ShallowReactive",2],{"content-en-\u002Fapi\u002Frender-server":3},{"id":4,"title":5,"body":6,"description":524,"extension":525,"meta":526,"navigation":56,"path":527,"seo":528,"stem":529,"__hash__":530},"content_en\u002Fapi\u002Frender-server.md","renderServer",{"type":7,"value":8,"toc":516},"minimark",[9,13,22,149,154,219,222,229,271,283,287,302,306,418,422,470,486,490,512],[10,11,5],"h1",{"id":12},"renderserver",[14,15,16,17,21],"p",{},"Renders a hyogen.md source string or file on the server. Use this for SSR, one-off server renders, and as the engine behind ",[18,19,20],"code",{},"build",".",[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\nfunction renderServer(\n  input: string | { path: string },\n  context?: HyogenContext,\n  options?: ServerRenderOptions,\n): Promise\u003CRenderResult>\n","ts","",[18,30,31,51,58,71,101,116,129],{"__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",[32,52,54],{"class":34,"line":53},2,[32,55,57],{"emptyLinePlaceholder":56},true,"\n",[32,59,61,64,68],{"class":34,"line":60},3,[32,62,63],{"class":38},"function",[32,65,67],{"class":66},"sScJk"," renderServer",[32,69,70],{"class":42},"(\n",[32,72,74,78,81,85,88,91,94,96,98],{"class":34,"line":73},4,[32,75,77],{"class":76},"s4XuR","  input",[32,79,80],{"class":38},":",[32,82,84],{"class":83},"sj4cs"," string",[32,86,87],{"class":38}," |",[32,89,90],{"class":42}," { ",[32,92,93],{"class":76},"path",[32,95,80],{"class":38},[32,97,84],{"class":83},[32,99,100],{"class":42}," },\n",[32,102,104,107,110,113],{"class":34,"line":103},5,[32,105,106],{"class":76},"  context",[32,108,109],{"class":38},"?:",[32,111,112],{"class":66}," HyogenContext",[32,114,115],{"class":42},",\n",[32,117,119,122,124,127],{"class":34,"line":118},6,[32,120,121],{"class":76},"  options",[32,123,109],{"class":38},[32,125,126],{"class":66}," ServerRenderOptions",[32,128,115],{"class":42},[32,130,132,135,137,140,143,146],{"class":34,"line":131},7,[32,133,134],{"class":42},")",[32,136,80],{"class":38},[32,138,139],{"class":66}," Promise",[32,141,142],{"class":42},"\u003C",[32,144,145],{"class":66},"RenderResult",[32,147,148],{"class":42},">\n",[150,151,153],"h2",{"id":152},"arguments","Arguments",[155,156,157,170],"table",{},[158,159,160],"thead",{},[161,162,163,167],"tr",{},[164,165,166],"th",{},"Argument",[164,168,169],{},"Description",[171,172,173,188,206],"tbody",{},[161,174,175,181],{},[176,177,178],"td",{},[18,179,180],{},"input",[176,182,183,184,187],{},"Source string, or ",[18,185,186],{},"{ path }"," to load via the loader",[161,189,190,195],{},[176,191,192],{},[18,193,194],{},"context",[176,196,197,198,201,202,205],{},"Template variables available in ",[18,199,200],{},"&#123;&#123; &#125;&#125;"," and ",[18,203,204],{},"@hg"," blocks",[161,207,208,213],{},[176,209,210],{},[18,211,212],{},"options",[176,214,215,216],{},"Loader, root, output preservation, and ",[18,217,218],{},"serverContext",[150,220,218],{"id":221},"servercontext",[14,223,224,225,228],{},"Pass server-only data through ",[18,226,227],{},"options.serverContext",". It is merged into the render context but is kept separate at the API level so you do not accidentally expose secrets to client bundles.",[23,230,232],{"className":25,"code":231,"language":27,"meta":28,"style":28},"await renderServer('.\u002Fpage.md', { title: 'Docs' }, {\n  serverContext: { secretToken: process.env.TOKEN },\n})\n",[18,233,234,256,266],{"__ignoreMap":28},[32,235,236,239,241,244,247,250,253],{"class":34,"line":35},[32,237,238],{"class":38},"await",[32,240,67],{"class":66},[32,242,243],{"class":42},"(",[32,245,246],{"class":49},"'.\u002Fpage.md'",[32,248,249],{"class":42},", { title: ",[32,251,252],{"class":49},"'Docs'",[32,254,255],{"class":42}," }, {\n",[32,257,258,261,264],{"class":34,"line":53},[32,259,260],{"class":42},"  serverContext: { secretToken: process.env.",[32,262,263],{"class":83},"TOKEN",[32,265,100],{"class":42},[32,267,268],{"class":34,"line":60},[32,269,270],{"class":42},"})\n",[14,272,273,276,277,279,280,21],{},[18,274,275],{},"renderClient"," rejects ",[18,278,218],{}," with error ",[18,281,282],{},"server_context_on_client",[150,284,286],{"id":285},"default-loader","Default loader",[14,288,289,290,293,294,297,298,301],{},"When ",[18,291,292],{},"options.loader"," is omitted, ",[18,295,296],{},"createNodeLoader()"," is used — local file reads plus remote ",[18,299,300],{},"https:\u002F\u002F"," URLs on Node.",[150,303,305],{"id":304},"example","Example",[23,307,309],{"className":25,"code":308,"language":27,"meta":28,"style":28},"const source = `\n---\ntitle: Hello\n---\n\n# {{ title }} {{ name }}\n`\n\nconst { markdown, warnings } = await renderServer(source, { name: 'world' })\n\n\u002F\u002F warnings is an array of non-fatal HyogenWarning objects\nconsole.log(markdown)\n",[18,310,311,325,330,335,339,343,348,353,358,394,399,406],{"__ignoreMap":28},[32,312,313,316,319,322],{"class":34,"line":35},[32,314,315],{"class":38},"const",[32,317,318],{"class":83}," source",[32,320,321],{"class":38}," =",[32,323,324],{"class":49}," `\n",[32,326,327],{"class":34,"line":53},[32,328,329],{"class":49},"---\n",[32,331,332],{"class":34,"line":60},[32,333,334],{"class":49},"title: Hello\n",[32,336,337],{"class":34,"line":73},[32,338,329],{"class":49},[32,340,341],{"class":34,"line":103},[32,342,57],{"emptyLinePlaceholder":56},[32,344,345],{"class":34,"line":118},[32,346,347],{"class":49},"# {{ title }} {{ name }}\n",[32,349,350],{"class":34,"line":131},[32,351,352],{"class":49},"`\n",[32,354,356],{"class":34,"line":355},8,[32,357,57],{"emptyLinePlaceholder":56},[32,359,361,363,365,368,371,374,377,380,383,385,388,391],{"class":34,"line":360},9,[32,362,315],{"class":38},[32,364,90],{"class":42},[32,366,367],{"class":83},"markdown",[32,369,370],{"class":42},", ",[32,372,373],{"class":83},"warnings",[32,375,376],{"class":42}," } ",[32,378,379],{"class":38},"=",[32,381,382],{"class":38}," await",[32,384,67],{"class":66},[32,386,387],{"class":42},"(source, { name: ",[32,389,390],{"class":49},"'world'",[32,392,393],{"class":42}," })\n",[32,395,397],{"class":34,"line":396},10,[32,398,57],{"emptyLinePlaceholder":56},[32,400,402],{"class":34,"line":401},11,[32,403,405],{"class":404},"sJ8bj","\u002F\u002F warnings is an array of non-fatal HyogenWarning objects\n",[32,407,409,412,415],{"class":34,"line":408},12,[32,410,411],{"class":42},"console.",[32,413,414],{"class":66},"log",[32,416,417],{"class":42},"(markdown)\n",[150,419,421],{"id":420},"return-value","Return value",[23,423,425],{"className":25,"code":424,"language":27,"meta":28,"style":28},"type RenderResult = {\n  markdown: string   \u002F\u002F rendered Markdown\n  warnings: HyogenWarning[]\n}\n",[18,426,427,440,452,465],{"__ignoreMap":28},[32,428,429,432,435,437],{"class":34,"line":35},[32,430,431],{"class":38},"type",[32,433,434],{"class":66}," RenderResult",[32,436,321],{"class":38},[32,438,439],{"class":42}," {\n",[32,441,442,445,447,449],{"class":34,"line":53},[32,443,444],{"class":76},"  markdown",[32,446,80],{"class":38},[32,448,84],{"class":83},[32,450,451],{"class":404},"   \u002F\u002F rendered Markdown\n",[32,453,454,457,459,462],{"class":34,"line":60},[32,455,456],{"class":76},"  warnings",[32,458,80],{"class":38},[32,460,461],{"class":66}," HyogenWarning",[32,463,464],{"class":42},"[]\n",[32,466,467],{"class":34,"line":73},[32,468,469],{"class":42},"}\n",[14,471,472,473,476,477,201,482,21],{},"Fatal problems throw a ",[18,474,475],{},"HyogenError"," instead of returning. See ",[478,479,481],"a",{"href":480},"\u002Fen\u002Fapi\u002Fdiagnostics","Diagnostics",[478,483,485],{"href":484},"\u002Fen\u002Fapi\u002Ferror-codes","Error codes",[150,487,489],{"id":488},"related","Related",[491,492,493,500,506],"ul",{},[494,495,496,499],"li",{},[478,497,275],{"href":498},"\u002Fen\u002Fapi\u002Frender-client"," — browser entry",[494,501,502],{},[478,503,505],{"href":504},"\u002Fen\u002Fapi\u002Ftypes-and-options","Types and options",[494,507,508],{},[478,509,511],{"href":510},"\u002Fen\u002Fapi\u002Floader","Loader",[513,514,515],"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 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 .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 .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":28,"searchDepth":53,"depth":53,"links":517},[518,519,520,521,522,523],{"id":152,"depth":53,"text":153},{"id":221,"depth":53,"text":218},{"id":285,"depth":53,"text":286},{"id":304,"depth":53,"text":305},{"id":420,"depth":53,"text":421},{"id":488,"depth":53,"text":489},"Server-side rendering entry for SSR and SSG.","md",{},"\u002Fapi\u002Frender-server",{"title":5,"description":524},"api\u002Frender-server","yn1R_oQ3ZiRDiCMgXQ4lYBJnec9cU6c7UJuClIzEkDE",1787223114245]