Skip to content

Instantly share code, notes, and snippets.

@mkhl
Forked from FND/README.md
Last active November 2, 2017 10:42
Show Gist options
  • Select an option

  • Save mkhl/5ffc09e7ed1b454104890ab30dada8d3 to your computer and use it in GitHub Desktop.

Select an option

Save mkhl/5ffc09e7ed1b454104890ab30dada8d3 to your computer and use it in GitHub Desktop.

Revisions

  1. mkhl revised this gist Nov 2, 2017. 1 changed file with 6 additions and 9 deletions.
    15 changes: 6 additions & 9 deletions app.py
    Original file line number Diff line number Diff line change
    @@ -2,14 +2,11 @@


    class BufferedStream:
    def __init__(self):
    self._buffer = []
    def __init__(self, callback):
    self._callback = callback

    def write(self, msg):
    self._buffer.append(msg.encode("utf-8"))

    def __iter__(self):
    return iter(self._buffer)
    self._callback(msg.encode("utf-8"))


    def transpile(filepath):
    @@ -21,8 +18,8 @@ def transpile(filepath):


    def app(environ, start_response):
    start_response("200 OK", [("Content-Type", "text/html")])
    write = start_response("200 OK", [("Content-Type", "text/html")])

    stream = BufferedStream()
    stream = BufferedStream(write)
    view = render(stream)
    return stream
    return ""
  2. @FND FND created this gist Oct 28, 2017.
    8 changes: 8 additions & 0 deletions README.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,8 @@
    $ python3 -m venv venv
    $ . venv/bin/activate

    $ pip install js2py gunicorn

    $ gunicorn app:app

    http://localhost:8000
    28 changes: 28 additions & 0 deletions app.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,28 @@
    import js2py


    class BufferedStream:
    def __init__(self):
    self._buffer = []

    def write(self, msg):
    self._buffer.append(msg.encode("utf-8"))

    def __iter__(self):
    return iter(self._buffer)


    def transpile(filepath):
    with open(filepath) as fh:
    return js2py.eval_js(fh.read())


    render = transpile("./views.js")


    def app(environ, start_response):
    start_response("200 OK", [("Content-Type", "text/html")])

    stream = BufferedStream()
    view = render(stream)
    return stream
    8 changes: 8 additions & 0 deletions views.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,8 @@
    var render = (function() {

    return function render(stream) {
    stream.write("<h1>Hello World</h1>");
    stream.write("<p>lorem ipsum dolor sit amet</p>");
    };

    }());