"""A Tornado UI module for a terminal backed by terminado. See the Tornado docs for information on UI modules: http://www.tornadoweb.org/en/stable/guide/templates.html#ui-modules """ # Copyright (c) Jupyter Development Team # Copyright (c) 2014, Ramalingam Saravanan <sarava@sarava.net> # Distributed under the terms of the Simplified BSD License. import os.path import tornado.web class Terminal(tornado.web.UIModule): def render(self, ws_url, cols=80, rows=25): return ('<div class="terminado-container" ' 'data-ws-url="{ws_url}" ' 'data-rows="{rows}" data-cols="{cols}"/>').format( ws_url=ws_url, rows=rows, cols=cols) def javascript_files(self): # TODO: Can we calculate these dynamically? return ['/xstatic/termjs/term.js', '/static/terminado.js'] def embedded_javascript(self): file = os.path.join(os.path.dirname(__file__), 'uimod_embed.js') with open(file) as f: return f.read()