From 4bc4cfa6302e2e28d1ea7685bc11d408ebe8c9d7 Mon Sep 17 00:00:00 2001 From: Yejun Su Date: Thu, 19 Mar 2026 13:29:14 +0800 Subject: [PATCH] feat(html): add markdown table rendering to inline renderer --- extensions/pi-remote-control/html.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/extensions/pi-remote-control/html.ts b/extensions/pi-remote-control/html.ts index 2ee1d6b..8a54a89 100644 --- a/extensions/pi-remote-control/html.ts +++ b/extensions/pi-remote-control/html.ts @@ -414,9 +414,18 @@ return /* html */ ` s = s.replace(/\\x00(\\d+)/g,function(_,i){return ph[+i];}); return s; } - var lines=src.split("\\n"),out="",para=[],fence=false,fl=[],inL=false,ltag=""; + var lines=src.split("\\n"),out="",para=[],fence=false,fl=[],inL=false,ltag="",tbl=[]; function fp(){if(!para.length)return;out+="

"+para.map(inl).join("
")+"

";para=[];} function fL(){if(!inL)return;out+="";inL=false;ltag="";} + function fT(){ + if(!tbl.length)return; + if(tbl.length<2||!/^[|\\s:\\-]+$/.test(tbl[1])){tbl.forEach(function(r){para.push(r);});tbl=[];return;} + var hdr=tbl[0].replace(/^\\|/,"").replace(/\\|$/,"").split("|"); + out+="";hdr.forEach(function(c){out+="";}); + out+=""; + for(var j=2;j";cells.forEach(function(c){out+="";});out+="";} + out+="
"+inl(c.trim())+"
"+inl(c.trim())+"
";tbl=[]; + } for(var i=0;i continue; } if(fence){fl.push(ln);continue;} + if(ln.charAt(0)==="|"){fp();fL();tbl.push(ln);continue;} + if(tbl.length){fT();} var hm=ln.match(/^(#{1,6}) (.*)/); if(hm){fp();fL();var hl=hm[1].length;out+=""+inl(hm[2])+"";continue;} if(/^---+\\s*$/.test(ln)){fp();fL();out+="
";continue;} @@ -436,7 +447,7 @@ return /* html */ ` if(!ln.trim()){fp();fL();continue;} fL();para.push(ln); } - fp();fL(); + fp();fL();fT(); if(fence)out+="
"+escH(fl.join("\\n"))+"
"; return out; }