Miki Tebeka avatar Miki Tebeka committed c2579c1

minimal server

Comments (0)

Files changed (1)

+#!/usr/bin/env python
+
+from cherrypy import expose, quickstart
+from pygments import highlight
+from pygments.lexers import get_lexer_by_name, guess_lexer
+from pygments.formatters import HtmlFormatter
+
+
+class Highlighter:
+    @expose
+    def index(self):
+        return "TBD"
+
+    @expose
+    def highlight(self, **kw):
+        code = kw.get("code", "")
+        if not code:
+            return ""
+
+        lang = kw.get("lang", "")
+        if not lang:
+            lexer = guess_lexer(code)
+        else:
+            lexer = get_lexer_by_name(lang)
+
+        linenos = kw.get("linenos", 0)
+
+        formatter = HtmlFormatter(linenos=linenos, cssclass="source")
+        return highlight(code, lexer, formatter)
+
+if __name__ == "__main__":
+    quickstart(Highlighter())
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.