def show( markdown_file: Path, host: str = 'localhost', port: int = 8123, no_warmup: bool = False, ): """ Visualize your presentation (default). """ markdown_file = Path(markdown_file) config = load_config() # Initial generation generate(markdown_file, no_warmup=no_warmup) observer = Observer() url = 'http://{host}:{port}'.format(host=host, port=port) reload_url = url + '/forcereload' ignore_regexes = [r'.*/\.[^/]*'] handler = Handler(regexes=['.*'], ignore_regexes=ignore_regexes, ignore_directories=True) handler.configure(markdown_file, reload_url) observer.schedule(handler, '.', recursive=True) observer.start() server = Server() server.root = str(config['output_path']) server.application(port, host, liveport=None, debug=True, live_css=True) threading.Thread(target=webbrowser.open, args=(url, )).start() add_reload_hook(lambda: IOLoop.instance().close(all_fds=True)) IOLoop.instance().start()