//通用代码块 //原理: https://mp.weixin.qq.com/s/BhFTemG3D3i6Ttvzag25XQ import win.ui; /*DSG{{*/ var winform = win.form(text="HTML 代码块生成工具 - 本工具使用 aardio 语言编写";right=1055;bottom=674;bgcolor=16777215) winform.add( button={cls="button";text="复制高亮代码块";left=633;top=609;right=1000;bottom=665;bgcolor=0xFFFFFF;color=14120960;db=1;dr=1;font=LOGFONT(h=-14);note="可在网页编辑器直接粘贴";z=4}; cmbLangs={cls="combobox";left=262;top=625;right=446;bottom=651;db=1;dl=1;edge=1;items={"javascript"};mode="dropdown";vscroll=1;z=2}; editCode={cls="edit";left=1;top=4;right=1052;bottom=599;db=1;dl=1;dr=1;dt=1;edge=1;hscroll=1;multiline=1;vscroll=1;z=5}; static={cls="static";text="请选择语言:";left=70;top=629;right=248;bottom=649;align="right";db=1;dl=1;transparent=1;z=3}; webCtrl={cls="custom";text="自定义控件";left=8;top=10;right=1048;bottom=604;db=1;dl=1;dr=1;dt=1;hide=1;z=1} ) /*}}*/ import web.view; var wb = web.view(winform.webCtrl); import win.clip.html; wb.export({ onHighlight = function(html,background,foreground){ html = `
`
            + html + `
`; html,count = string.replace(html,'\n',"
"); if(!count){ html = string.replace(html,`\\$`,`
`); } var cb = win.clip.html(); cb.write(html); winform.setTimeout( function(){ winform.editCode.show(true); winform.webCtrl.show(false); winform.text = "HTML 代码块生成工具 - 已复制高亮代码块到剪贴板,可在网页直接粘贴"; },1000); }; setLanguages = function(langs){ winform.languages = langs; } }) winform.cmbLangs.onEditChange = function(){ var text = string.lower(winform.cmbLangs.text); var items = table.filter( winform.languages : {}, lambda(v) string.startsWith(v,text) ); winform.cmbLangs.autoComplete(items); } winform.cmbLangs.editBox.disableInputMethod(); import web.prism; import wsock.tcp.asynHttpServer; var httpServer = wsock.tcp.asynHttpServer(); httpServer.run(web.prism,{ ["/index.html"] = /*****
*****/ }); wb.go( httpServer.getUrl("/index.html")); winform.button.oncommand = function(id,event){ var text = string.lower(winform.cmbLangs.text); if(text=="c#") text = "csharp"; elseif(text=="c++") text = "cpp"; if(!table.find(winform.languages,text)){ return win.msgboxErr("请指定正确的语言名称",2); } winform.text = "HTML 代码块生成工具"; winform.editCode.show(false); winform.webCtrl.show(true); wb.xcall("highlight",winform.editCode.text,text); } winform.show(); win.loopMessage();