import random import string from time import sleep from flask import Flask app = Flask(__name__) @app.route('/js') def js(): with open('line-numbers.js') as f: js = f.read() return app.response_class(js, mimetype='text/javascript') @app.route('/css') def css(): text = """ pre #line-numbers { color:black; display:block; } pre #line-numbers { float:left; margin:0 1em 0 -1em; border-right:1px solid; text-align:right; } pre #line-numbers span { display:block; padding:0 .5em 0 1em; } pre #line-numbers .highlight { background: lightgrey; } """ return app.response_class(text, mimetype='text/css') @app.route('/stream') def stream(): def generate(): yield "<!DOCTYPE html><html>" yield f"<link href='/css' rel='stylesheet'>" yield f"<script src='/js'></script>" yield "<pre>" for _ in range(1000): text = ''.join(random.choice(string.ascii_letters + ' \n' * 4) for _ in range(1000)) yield f"{text}\n" sleep(random.random() * 0.5) yield "</pre></html>" return app.response_class(generate(), mimetype='text/html')