box_:{:[x~`;,," ";emp x;,,_ci 254;4=t:4:x;,$x;~t;,5:^x;5=t;dic x;,$t]} L[`v`r`tr`bl`b`t`l`h`i`br`tl]:_ci,/179 191 217+!:'2 7 2 LL[`v`b`t`i]:_ci 186 208 210 215 sep:{,'/|@[|L.v,''x;0;{x,'L.v}]} edg:{(,1!L[x],1_-1_ L[`h,y][L.v=*z]),z} top:edg[`tr`tl;`t] mid:edg[`r`l;`i] bot:|edg[`br`bl;`b]@|: two:{:[(#*x)=i:(+\L.t=*x)?2;x;.[x;(;i);LL[]L[!LL]?]]} box:two top 1_ bot@,/(mid sep@)' pad:{{y,((x-#y),#*y)#""}[|/#:'x]'x} emp:_in[;(;.())] nul:{:[&/emp'x[;2];2#'x;x]} hor:pad@box_' ver:+:'pad@+:' dic:box@+ver'+hor'nul@.: box:`0:,/"\n",'box_@ \ box .k / render line drawing characters as ascii +-----------+ ¦emp ¦7 ¦ +----+------¦ ¦dic ¦7 ¦ +----+------¦ ¦box_¦7 ¦ +----+------¦ ¦L ¦+----+¦ ¦ ¦¦v ¦3¦¦ ¦ ¦+--+-¦¦ ¦ ¦¦r ¦3¦¦ ¦ ¦+--+-¦¦ ¦ ¦¦tr¦3¦¦ ¦ ¦+--+-¦¦ ¦ ¦¦bl¦3¦¦ ¦ ¦+--+-¦¦ ¦ ¦¦b ¦3¦¦ ¦ ¦+--+-¦¦ ¦ ¦¦t ¦3¦¦ ¦ ¦+--+-¦¦ ¦ ¦¦l ¦3¦¦ ¦ ¦+--+-¦¦ ¦ ¦¦h ¦3¦¦ ¦ ¦+--+-¦¦ ¦ ¦¦i ¦3¦¦ ¦ ¦+--+-¦¦ ¦ ¦¦br¦3¦¦ ¦ ¦+--+-¦¦ ¦ ¦¦tl¦3¦¦ ¦ ¦+----+¦ +----+------¦ ¦LL ¦+---+ ¦ ¦ ¦¦v¦3¦ ¦ ¦ ¦+-+-¦ ¦ ¦ ¦¦b¦3¦ ¦ ¦ ¦+-+-¦ ¦ ¦ ¦¦t¦3¦ ¦ ¦ ¦+-+-¦ ¦ ¦ ¦¦i¦3¦ ¦ ¦ ¦+---+ ¦ +----+------¦ ¦sep ¦7 ¦ +----+------¦ ¦edg ¦7 ¦ +----+------¦ ¦top ¦7 ¦ +----+------¦ ¦mid ¦7 ¦ +----+------¦ ¦bot ¦7 ¦ +----+------¦ ¦two ¦7 ¦ +----+------¦ ¦box ¦7 ¦ +----+------¦ ¦pad ¦7 ¦ +----+------¦ ¦nul ¦7 ¦ +----+------¦ ¦hor ¦7 ¦ +----+------¦ ¦ver ¦7 ¦ +-----------+