markdown_previewer.py 922 B

12345678910111213141516171819202122232425262728
  1. from pywebio import start_server
  2. from pywebio.output import *
  3. from pywebio.pin import *
  4. from pywebio.session import set_env, download
  5. def main():
  6. """Markdown Previewer"""
  7. set_env(output_animation=False)
  8. put_markdown("""# Markdown Live Preview
  9. 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).
  10. ## Write your Markdown
  11. """)
  12. put_textarea('md_text', rows=18, code={'mode': 'markdown'})
  13. put_buttons(['Download content'], lambda _: download('saved.md', pin.md_text.encode('utf8')), small=True)
  14. put_markdown('## Preview')
  15. while True:
  16. change_detail = pin_wait_change('md_text')
  17. with use_scope('md', clear=True):
  18. put_markdown(change_detail['value'], sanitize=False)
  19. if __name__ == '__main__':
  20. start_server(main, port=8080, debug=True)