!759 static PersistentMap urlToText; p { urlToText = new PersistentMap("urlToText"); } static synchronized S html(S uri) { uri = dropPrefix("/", uri); if (empty(uri) || eq(uri, "list")) { new L list; for (S url : keys(urlToText)) { list.add(a("/" + url, "href", pageLink(url))); } ret h3("Pages") + ul(list); } S html = urlToText.get(tlc(uri)); ret or2(html, "?"); } static sync boolean hasURL(S bla) { ret urlToText.containsKey(tlc(bla)); } static sync S getTextForURL(S bla) { ret urlToText.get(tlc(bla)); } // returns previous text if any static sync S setURL(S bla, S text) { ret urlToText.put(tlc(bla), text); }