[{"data":1,"prerenderedAt":716},["ShallowReactive",2],{"content-en-\u002Fapi\u002Fdiagnostics":3},{"id":4,"title":5,"body":6,"description":709,"extension":710,"meta":711,"navigation":188,"path":712,"seo":713,"stem":714,"__hash__":715},"content_en\u002Fapi\u002Fdiagnostics.md","Diagnostics",{"type":7,"value":8,"toc":701},"minimark",[9,13,27,32,87,221,225,310,314,446,449,460,557,560,568,571,608,612,615,683,687,697],[10,11,5],"h1",{"id":12},"diagnostics",[14,15,16,17,21,22,26],"p",{},"hyogen-md reports problems as structured diagnostics. The library ",[18,19,20],"strong",{},"does not"," write to ",[23,24,25],"code",{},"console"," automatically — you decide how to log or display them.",[28,29,31],"h2",{"id":30},"warnings-vs-errors","Warnings vs errors",[33,34,35,54],"table",{},[36,37,38],"thead",{},[39,40,41,45,48],"tr",{},[42,43,44],"th",{},"Kind",[42,46,47],{},"Behavior",[42,49,50,51],{},"Returned in ",[23,52,53],{},"warnings",[55,56,57,71],"tbody",{},[39,58,59,65,68],{},[60,61,62],"td",{},[18,63,64],{},"Warning",[60,66,67],{},"Render continues; affected feature is skipped or degraded",[60,69,70],{},"Yes",[39,72,73,78,84],{},[60,74,75],{},[18,76,77],{},"Error",[60,79,80,81],{},"Render aborts; thrown as ",[23,82,83],{},"HyogenError",[60,85,86],{},"No",[88,89,94],"pre",{"className":90,"code":91,"language":92,"meta":93,"style":93},"language-ts shiki shiki-themes github-light github-dark","type HyogenDiagnostic = {\n  code: string\n  message: string\n  path?: string\n  details?: Record\u003Cstring, unknown>\n}\n\ntype HyogenWarning = HyogenDiagnostic\ntype HyogenError = Error & HyogenDiagnostic\n","ts","",[23,95,96,116,130,140,151,177,183,190,203],{"__ignoreMap":93},[97,98,101,105,109,112],"span",{"class":99,"line":100},"line",1,[97,102,104],{"class":103},"szBVR","type",[97,106,108],{"class":107},"sScJk"," HyogenDiagnostic",[97,110,111],{"class":103}," =",[97,113,115],{"class":114},"sVt8B"," {\n",[97,117,119,123,126],{"class":99,"line":118},2,[97,120,122],{"class":121},"s4XuR","  code",[97,124,125],{"class":103},":",[97,127,129],{"class":128},"sj4cs"," string\n",[97,131,133,136,138],{"class":99,"line":132},3,[97,134,135],{"class":121},"  message",[97,137,125],{"class":103},[97,139,129],{"class":128},[97,141,143,146,149],{"class":99,"line":142},4,[97,144,145],{"class":121},"  path",[97,147,148],{"class":103},"?:",[97,150,129],{"class":128},[97,152,154,157,159,162,165,168,171,174],{"class":99,"line":153},5,[97,155,156],{"class":121},"  details",[97,158,148],{"class":103},[97,160,161],{"class":107}," Record",[97,163,164],{"class":114},"\u003C",[97,166,167],{"class":128},"string",[97,169,170],{"class":114},", ",[97,172,173],{"class":128},"unknown",[97,175,176],{"class":114},">\n",[97,178,180],{"class":99,"line":179},6,[97,181,182],{"class":114},"}\n",[97,184,186],{"class":99,"line":185},7,[97,187,189],{"emptyLinePlaceholder":188},true,"\n",[97,191,193,195,198,200],{"class":99,"line":192},8,[97,194,104],{"class":103},[97,196,197],{"class":107}," HyogenWarning",[97,199,111],{"class":103},[97,201,202],{"class":107}," HyogenDiagnostic\n",[97,204,206,208,211,213,216,219],{"class":99,"line":205},9,[97,207,104],{"class":103},[97,209,210],{"class":107}," HyogenError",[97,212,111],{"class":103},[97,214,215],{"class":107}," Error",[97,217,218],{"class":103}," &",[97,220,202],{"class":107},[28,222,224],{"id":223},"handling-warnings","Handling warnings",[88,226,228],{"className":90,"code":227,"language":92,"meta":93,"style":93},"const { markdown, warnings } = await renderServer(source, context)\n\nfor (const w of warnings) {\n  console.warn(formatDiagnosticLog('warning', w))\n}\n",[23,229,230,260,264,283,306],{"__ignoreMap":93},[97,231,232,235,238,241,243,245,248,251,254,257],{"class":99,"line":100},[97,233,234],{"class":103},"const",[97,236,237],{"class":114}," { ",[97,239,240],{"class":128},"markdown",[97,242,170],{"class":114},[97,244,53],{"class":128},[97,246,247],{"class":114}," } ",[97,249,250],{"class":103},"=",[97,252,253],{"class":103}," await",[97,255,256],{"class":107}," renderServer",[97,258,259],{"class":114},"(source, context)\n",[97,261,262],{"class":99,"line":118},[97,263,189],{"emptyLinePlaceholder":188},[97,265,266,269,272,274,277,280],{"class":99,"line":132},[97,267,268],{"class":103},"for",[97,270,271],{"class":114}," (",[97,273,234],{"class":103},[97,275,276],{"class":128}," w",[97,278,279],{"class":103}," of",[97,281,282],{"class":114}," warnings) {\n",[97,284,285,288,291,294,297,299,303],{"class":99,"line":142},[97,286,287],{"class":114},"  console.",[97,289,290],{"class":107},"warn",[97,292,293],{"class":114},"(",[97,295,296],{"class":107},"formatDiagnosticLog",[97,298,293],{"class":114},[97,300,302],{"class":301},"sZZnC","'warning'",[97,304,305],{"class":114},", w))\n",[97,307,308],{"class":99,"line":153},[97,309,182],{"class":114},[28,311,313],{"id":312},"handling-errors","Handling errors",[88,315,317],{"className":90,"code":316,"language":92,"meta":93,"style":93},"import { formatDiagnosticLog } from '@b4moss\u002Fhyogen-md'\n\ntry {\n  await renderServer(source)\n} catch (err) {\n  if (err && typeof err === 'object' && 'code' in err) {\n    console.error(formatDiagnosticLog('error', err as HyogenError))\n  }\n  throw err\n}\n",[23,318,319,333,337,344,354,365,400,428,433,441],{"__ignoreMap":93},[97,320,321,324,327,330],{"class":99,"line":100},[97,322,323],{"class":103},"import",[97,325,326],{"class":114}," { formatDiagnosticLog } ",[97,328,329],{"class":103},"from",[97,331,332],{"class":301}," '@b4moss\u002Fhyogen-md'\n",[97,334,335],{"class":99,"line":118},[97,336,189],{"emptyLinePlaceholder":188},[97,338,339,342],{"class":99,"line":132},[97,340,341],{"class":103},"try",[97,343,115],{"class":114},[97,345,346,349,351],{"class":99,"line":142},[97,347,348],{"class":103},"  await",[97,350,256],{"class":107},[97,352,353],{"class":114},"(source)\n",[97,355,356,359,362],{"class":99,"line":153},[97,357,358],{"class":114},"} ",[97,360,361],{"class":103},"catch",[97,363,364],{"class":114}," (err) {\n",[97,366,367,370,373,376,379,382,385,388,391,394,397],{"class":99,"line":179},[97,368,369],{"class":103},"  if",[97,371,372],{"class":114}," (err ",[97,374,375],{"class":103},"&&",[97,377,378],{"class":103}," typeof",[97,380,381],{"class":114}," err ",[97,383,384],{"class":103},"===",[97,386,387],{"class":301}," 'object'",[97,389,390],{"class":103}," &&",[97,392,393],{"class":301}," 'code'",[97,395,396],{"class":103}," in",[97,398,399],{"class":114}," err) {\n",[97,401,402,405,408,410,412,414,417,420,423,425],{"class":99,"line":185},[97,403,404],{"class":114},"    console.",[97,406,407],{"class":107},"error",[97,409,293],{"class":114},[97,411,296],{"class":107},[97,413,293],{"class":114},[97,415,416],{"class":301},"'error'",[97,418,419],{"class":114},", err ",[97,421,422],{"class":103},"as",[97,424,210],{"class":107},[97,426,427],{"class":114},"))\n",[97,429,430],{"class":99,"line":192},[97,431,432],{"class":114},"  }\n",[97,434,435,438],{"class":99,"line":205},[97,436,437],{"class":103},"  throw",[97,439,440],{"class":114}," err\n",[97,442,444],{"class":99,"line":443},10,[97,445,182],{"class":114},[28,447,296],{"id":448},"formatdiagnosticlog",[14,450,451,452,455,456,459],{},"Formats a diagnostic as multi-line text. Exported from both ",[23,453,454],{},"@b4moss\u002Fhyogen-md"," and ",[23,457,458],{},"@b4moss\u002Fhyogen-md\u002Fclient",".",[88,461,463],{"className":90,"code":462,"language":92,"meta":93,"style":93},"import { formatDiagnosticLog } from '@b4moss\u002Fhyogen-md'\n\nformatDiagnosticLog('error', {\n  code: 'file_not_found',\n  message: 'File not found: .\u002Fmissing.md',\n  details: {\n    path: '.\u002Fmissing.md',\n    from: '.\u002Fpage.md',\n    via: 'include',\n  },\n})\n",[23,464,465,475,479,490,501,511,516,526,536,546,551],{"__ignoreMap":93},[97,466,467,469,471,473],{"class":99,"line":100},[97,468,323],{"class":103},[97,470,326],{"class":114},[97,472,329],{"class":103},[97,474,332],{"class":301},[97,476,477],{"class":99,"line":118},[97,478,189],{"emptyLinePlaceholder":188},[97,480,481,483,485,487],{"class":99,"line":132},[97,482,296],{"class":107},[97,484,293],{"class":114},[97,486,416],{"class":301},[97,488,489],{"class":114},", {\n",[97,491,492,495,498],{"class":99,"line":142},[97,493,494],{"class":114},"  code: ",[97,496,497],{"class":301},"'file_not_found'",[97,499,500],{"class":114},",\n",[97,502,503,506,509],{"class":99,"line":153},[97,504,505],{"class":114},"  message: ",[97,507,508],{"class":301},"'File not found: .\u002Fmissing.md'",[97,510,500],{"class":114},[97,512,513],{"class":99,"line":179},[97,514,515],{"class":114},"  details: {\n",[97,517,518,521,524],{"class":99,"line":185},[97,519,520],{"class":114},"    path: ",[97,522,523],{"class":301},"'.\u002Fmissing.md'",[97,525,500],{"class":114},[97,527,528,531,534],{"class":99,"line":192},[97,529,530],{"class":114},"    from: ",[97,532,533],{"class":301},"'.\u002Fpage.md'",[97,535,500],{"class":114},[97,537,538,541,544],{"class":99,"line":205},[97,539,540],{"class":114},"    via: ",[97,542,543],{"class":301},"'include'",[97,545,500],{"class":114},[97,547,548],{"class":99,"line":443},[97,549,550],{"class":114},"  },\n",[97,552,554],{"class":99,"line":553},11,[97,555,556],{"class":114},"})\n",[14,558,559],{},"Output:",[88,561,566],{"className":562,"code":564,"language":565,"meta":93},[563],"language-text","[hyogen:error] file_not_found\n  path: .\u002Fmissing.md\n  from: .\u002Fpage.md\n  via: include\n","text",[23,567,564],{"__ignoreMap":93},[14,569,570],{},"Format rules:",[572,573,574,581,592,601],"ul",{},[575,576,577,578],"li",{},"Line 1: ",[23,579,580],{},"[hyogen:{kind}] {code}",[575,582,583,584,587,588,591],{},"Following lines: ",[23,585,586],{},"details"," keys as ",[23,589,590],{},"  {key}: {value}"," (2-space indent)",[575,593,594,597,598],{},[23,595,596],{},"details.path"," takes priority over top-level ",[23,599,600],{},"path",[575,602,603,604,607],{},"Keys with ",[23,605,606],{},"undefined"," values are omitted",[28,609,611],{"id":610},"formatmessage","formatMessage",[14,613,614],{},"Resolve a code to the English message template (from the built-in catalog):",[88,616,618],{"className":90,"code":617,"language":92,"meta":93,"style":93},"import { formatMessage } from '@b4moss\u002Fhyogen-md'\n\nformatMessage('file_not_found', {\n  path: '.\u002Fx.md',\n  from: '.\u002Fpage.md',\n  via: 'include',\n})\n\u002F\u002F \"File not found: .\u002Fx.md (referenced from .\u002Fpage.md via include)\"\n",[23,619,620,631,635,645,655,664,673,677],{"__ignoreMap":93},[97,621,622,624,627,629],{"class":99,"line":100},[97,623,323],{"class":103},[97,625,626],{"class":114}," { formatMessage } ",[97,628,329],{"class":103},[97,630,332],{"class":301},[97,632,633],{"class":99,"line":118},[97,634,189],{"emptyLinePlaceholder":188},[97,636,637,639,641,643],{"class":99,"line":132},[97,638,611],{"class":107},[97,640,293],{"class":114},[97,642,497],{"class":301},[97,644,489],{"class":114},[97,646,647,650,653],{"class":99,"line":142},[97,648,649],{"class":114},"  path: ",[97,651,652],{"class":301},"'.\u002Fx.md'",[97,654,500],{"class":114},[97,656,657,660,662],{"class":99,"line":153},[97,658,659],{"class":114},"  from: ",[97,661,533],{"class":301},[97,663,500],{"class":114},[97,665,666,669,671],{"class":99,"line":179},[97,667,668],{"class":114},"  via: ",[97,670,543],{"class":301},[97,672,500],{"class":114},[97,674,675],{"class":99,"line":185},[97,676,556],{"class":114},[97,678,679],{"class":99,"line":192},[97,680,682],{"class":681},"sJ8bj","\u002F\u002F \"File not found: .\u002Fx.md (referenced from .\u002Fpage.md via include)\"\n",[28,684,686],{"id":685},"related","Related",[572,688,689],{},[575,690,691,696],{},[692,693,695],"a",{"href":694},"\u002Fen\u002Fapi\u002Ferror-codes","Error and warning codes"," — full code table",[698,699,700],"style",{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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 .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":93,"searchDepth":118,"depth":118,"links":702},[703,704,705,706,707,708],{"id":30,"depth":118,"text":31},{"id":223,"depth":118,"text":224},{"id":312,"depth":118,"text":313},{"id":448,"depth":118,"text":296},{"id":610,"depth":118,"text":611},{"id":685,"depth":118,"text":686},"Warnings, errors, and formatDiagnosticLog for hyogen-md.","md",{},"\u002Fapi\u002Fdiagnostics",{"title":5,"description":709},"api\u002Fdiagnostics","z_GmXoc3fB1bJIhKY4mJl-5IXLtXEv6PWRCA-PmMUsE",1787223114702]