!7 p { S text = loadSnippet(#1008407); for (S line : toLinesFullTrim(text)) { if (line.startsWith("#")) continue; //print(line); printWithRisingIndent(split3(line)); } serveHttpOpenBrowser(4000); } static NanoHTTPD.Response serve(S uri, NanoHTTPD.Method method, Map header, Map parms, Map files) { new L data; data.add(litorderedmap("Field", "value", "Field 2", "value 2")); data.add(litorderedmap("Field", "valuex", "Field 2", "value y")); ret serveHTML(hhtml( hhead(htitle("Yay")) + hbody(h3("Yay") + hform(htable_noEncode(data) + p(hsubmit()))))); } static L split1(S s) { int i = 0; new L l; while (i <= l(s)) { int j = smartIndexOf(s, ".", i)+1; addIfNempty(l, trim(substring(s, i, j))); i = j; } ret l; } static L split2x(L s) { int i = 0; new L l; while (i <= l(s)) { int j = smartIndexOf(s, ".", i)+1; addIfNempty(l, trim(join(subList(s, i, j)))); i = j; } ret l; } static L split3(S s) { ret split2x(nlTok3(s)); }