What's new in PyWebIO 1.0
==========================

2021 1/17
----------

经过快一年的开发，PyWebIO 1.0 终于完成了。与上一版本 v0.3 相比有非常多的变化：

Highlights
^^^^^^^^^^^
* ``start_server`` 对多任务函数的支持，PyWebIO应用可以包含多个任务函数，并提供了 `go_app() <pywebio.session.go_app>` 用于任务函数之间的跳转
* 不再使用基于锚点的输出控制模型，改用基于Scope的模型
* 添加布局支持（ `put_grid() <pywebio.output.put_grid>` , `put_row() <pywebio.output.put_row>` , `put_column() <pywebio.output.put_column>` ）和自定义样式支持（ `style() <pywebio.output.style>` ）
* 添加新的输出函数: `toast() <pywebio.output.toast>` , `popup() <pywebio.output.popup>` , `put_widget() <pywebio.output.put_widget>` ,
  `put_collapse() <pywebio.output.put_collapse>` , `put_link() <pywebio.output.put_link>` , `put_scrollable() <pywebio.output.put_scrollable>` ,
  `put_loading() <pywebio.output.put_loading>` , `put_processbar() <pywebio.output.put_processbar>`
* 添加 `span() <pywebio.output.span>` , `output() <pywebio.output.output>` 输出控制函数
* 添加JS执行函数: `run_js() <pywebio.session.run_js>` , `eval_js() <pywebio.session.eval_js>`
* 更新UI: 显示输入时，使用浮动式输入框；发生未捕获异常时，前端使用console日志记录异常

Backwards-incompatible changes
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
* 不再使用基于锚点的输出控制模型
* 不支持固定高度的输出区，移除 `pywebio.output.set_output_fixed_height()`
* 移除 `pywebio.output.set_title()` , `pywebio.output.set_auto_scroll_bottom()`，改用 `pywebio.session.set_env()` 进行控制
* 移除 `pywebio.output.table_cell_buttons()` ，使用 `pywebio.output.put_buttons()` 替代

Detailed changes by module
^^^^^^^^^^^^^^^^^^^^^^^^^^^
* `input() <pywebio.input.input>` 支持 ``action`` 参数动态设置输入项的值
* `file_upload() <pywebio.input.file_upload>` 支持多文件上传，支持限制上传文件大小，添加上传进度显示
* `put_buttons() <pywebio.output.put_buttons>` 支持指定按钮颜色
* `put_widget() <pywebio.output.put_widget>` 、 `popup() <pywebio.output.popup>` 、 `put_table() <pywebio.output.put_table>` 将字符串内容不再视作Html，而是作为纯文本
* `put_text() <pywebio.output.put_text>` 支持输出多个对象
* `put_image() <pywebio.output.put_image>` 支持使用Url指定图片
