!7 cmodule GazelleWebServer > DynPrintLogAndEnabled { transient MyHTTPD server; void start() ctex { super.start(); if (!enabled) ret; server = new MyHTTPD(80); server.serveFunction = func(S uri, SS parms) { serve(uri, parms) }; server.start(); print("HTTP server started on port " + server.getPort()); } void cleanMeUp { server.stop(); server = null; } O serve(S uri, SS parms) { if (!eq(uri, "/")) ret serve404(); ret hhtml_head_title_body("Gazelle!", p("Hello! Here are my rules:") + htmlTable(map(dm_allRulesFromRulesModuleWithCommentsAndIDs(), func(T3 t) -> SS { litorderedmap("Rule ID" := t.a, "Rule Text" := t.b, "Comments" := t.c) }), true, true)); } }