markdown_previewer.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. """
  2. Markdown Live Preview
  3. ^^^^^^^^^^^^^^^^^^^^^^^^^^
  4. :demo_host:`Demo </markdown_previewer>`, `Source code <https://github.com/wang0618/PyWebIO/blob/dev/demos/markdown_previewer.py>`_
  5. """
  6. from pywebio import start_server
  7. from pywebio.output import *
  8. from pywebio.pin import *
  9. from pywebio.session import set_env, download
  10. def main():
  11. """Markdown Previewer"""
  12. set_env(output_animation=False)
  13. put_markdown("""# Markdown Live Preview
  14. The online markdown editor with live preview. The source code of this application is [here](https://github.com/wang0618/PyWebIO/blob/dev/demos/markdown_previewer.py).
  15. ## Write your Markdown
  16. """, lstrip=True)
  17. put_textarea('md_text', rows=18, code=True)
  18. put_buttons(['Download content'], lambda _: download('saved.md', pin.md_text.encode('utf8')), small=True)
  19. put_markdown('## Preview', sanitize=False)
  20. while True:
  21. change_detail = pin_wait_change('md_text')
  22. with use_scope('md', clear=True):
  23. put_markdown(change_detail['value'])
  24. if __name__ == '__main__':
  25. start_server(main, port=8080, debug=True, cdn=False)