Merge: annotations: introduce `example` annotation
[nit.git] / src / examples / nitlight_as_a_service.nit
index 934bded..da179be 100644 (file)
 # This is an example of a client of the frontend without command-line processing.
 #
 # It offers a simple nitcorn web server that offers a textarea and nitpick and nitlignt it.
-module nitlight_as_a_service
+module nitlight_as_a_service is example
 
 import frontend
-import highlight
+import htmlight
 import nitcorn
 import nitcorn::log
 import template
+import json::serialization_write
 
-# Nitcorn service to hightlight code
+# Nitcorn service to highlight code
 #
 # It's a single stand-alone page that has to form to itself.
 class HighlightAction
@@ -31,13 +32,20 @@ class HighlightAction
 
        redef fun answer(http_request, turi)
        do
-               var hl = new HighlightVisitor
+               var hl = new HtmlightVisitor
                var page = new Template
 
                # There is code? Process it
                var code = http_request.post_args.get_or_null("code")
                var hlcode = null
-               if code != null then hlcode = hightlightcode(hl, code)
+               if code != null then hlcode = hl.highlightcode(code)
+
+               if http_request.post_args.get_or_null("json") == "true" and hlcode != null then
+                       var response = new HttpResponse(200)
+                       response.header["Content-Type"] = "text/json"
+                       response.body = hlcode.to_json
+                       return response
+               end
 
                if http_request.post_args.get_or_null("ajax") == "true" and hlcode != null then
                        page.add hlcode.code_mirror_update