nitweb: add a low-level `api/light` with highlight
authorJean Privat <jean@pryen.org>
Thu, 27 Apr 2017 13:02:37 +0000 (09:02 -0400)
committerJean Privat <jean@pryen.org>
Tue, 9 May 2017 18:29:14 +0000 (14:29 -0400)
Signed-off-by: Jean Privat <jean@pryen.org>

src/web/api_light.nit [new file with mode: 0644]
src/web/web.nit

diff --git a/src/web/api_light.nit b/src/web/api_light.nit
new file mode 100644 (file)
index 0000000..784d683
--- /dev/null
@@ -0,0 +1,37 @@
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Highlight and collect messages from a piece of code
+module api_light
+
+import web_base
+import highlight
+
+redef class APIRouter
+       redef init do
+               super
+               use("/light/", new APILight(config))
+       end
+end
+
+# Highlight handler accept source code as POST data and render it as HTML with nitpick messages
+class APILight
+       super APIHandler
+
+       redef fun post(req, res) do
+               var hl = new HighlightVisitor
+               var hlcode = hightlightcode(hl, req.body)
+               res.json(hlcode)
+       end
+end
index 36d7e98..2bbd690 100644 (file)
@@ -22,6 +22,7 @@ import api_graph
 import api_docdown
 import api_metrics
 import api_feedback
+import api_light
 
 redef class APIRouter
        redef init do