${escape(title)}
${escape(intro)}
${escape(page === 'mcp' ? `${base}/mcp` : base)}${actions}${escape(part.slice(1,-1))}` :
@@ -7,7 +8,7 @@ const inline = (value:string) => value.split(/(`[^`]+`)/).map(part => part.lengt
const listItem = /^(\s*)(?:[-*]|\d+\.)\s+(?:\[[ x]\]\s+)?(.*)$/;
const formatCode = (lang:string, code:string) => { if(lang!=='json')return code; try { return JSON.stringify(JSON.parse(code),null,2); } catch { return code; } };
/** Small, escaped renderer for the documented subset: headings, paragraphs, lists, tables and fences. */
-export function renderDocs(markdown:string, language = 'en', idPrefix = 'section') {
+export function renderDocs(markdown:string, language: Locale = 'en', idPrefix = 'section') {
const lines=markdown.split('\n'); const nav:{id:string;title:string}[]=[];const html:string[]=[];
let section=false;
for(let i=0;i${escape(formatCode(lang,code.join('\n')))}`);continue;
+ html.push(`${escape(formatCode(lang,code.join('\n')))}This guide is currently available in Chinese.
' : ''; - return `${escape(intro)}
${escape(page === 'mcp' ? `${base}/mcp` : base)}${actions}This guide is currently available in Chinese.
' : ''; + return `${escape(intro)}
${escape(page === 'mcp' ? `${base}/mcp` : base)}${actions}