markdown_previewer.py 1.1 KB

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