# v2.9.7 (2024.05.19~Now)

- 笔记管理
    - [x] 新增笔记日历
    - [x] 修复若干个Bug
- 待办&随手记
    - [x] 优化文本内容解析
- 插件
    - [] 增加插件tag标识
- 文件管理
    - [x] 优化侧边栏模式
- 系统功能
    - [x] 优化数据同步,增加文件校验码校验

# v2.9.6 (2023.10.28~2024.05.18)

- 笔记管理
    - [x] 支持在查看页面编辑csv表格
    - [x] P1-草稿管理，支持单独查看和删除草稿
    - [x] 关联到日历的功能（关联到月度计划）
- 笔记本
    - [x] 支持时间线的视图
- 插件
    - [x] 支持通过pip模块的方式开发和安装插件
    - [x] 支持表格组件
- 文件管理
    - [x] 优化侧边栏模式
- UI优化&菜单
- 系统功能
    - [x] 混合数据库(SQL索引+KV存储)
    - [x] 支持translate.js，可以通过 `ui_show_translate_js` 配置开启
    - [x] P2-开发一套插件打包发布的流程。可以在本地开发测试，然后发布到远程服务器。
    - [x] 支持在线升级的功能 (需要基于git)


# v2.9.5 (2023.07.01~2023.10.27)

- 待办&随手记
    - [x] 随手记的备注功能（类似于评论的回复）
    - [x] 隔离随手记和待办任务
    - [x] 支持文字强调标记
- 笔记管理
    - [x] 支持代码高亮
    - [x] Fix标签关联的笔记列表排序
    - [x] Fix笔记本搜索
- 文件管理
    - [x] 优化侧边栏模式
- 系统功能
    - [x] 支持作为模块(xnote-web)发布到pip
    - [x] 插件支持 plugin_id 唯一标识，支持本地开发远程部署
    - [x] 支持sql数据库的binlog同步
    - [x] 笔记、评论、随手记拆分成sql存储索引，kv存储主数据
    - [x] 移动tornado模板库到`xutils`模块
    - [x] kv数据库添加`ssdb`的驱动
    - [x] P1-上传文件要更新binlog
    - [x] SQL数据库支持只读状态


# v2.9.4 (2023.03.05~2023.06.30)

- 笔记管理
    - [x] 标签上批量添加笔记
    - [x] 点击标签，筛选出全部包含标签的笔记（而不是当前笔记本的）
- 随手记
    - [x] 支持文字高亮
- 文件管理
    - [x] 优化了代码编辑器的交互，使用ajax来更新数据
- UI优化&菜单
    - [x] 未登录状态下展示应用列表链接
    - [x] 支持侧边栏的样式，提高屏幕的空间使用率
- 系统功能
    - [x] 增强作为web框架的功能
    - [x] 数据库支持联合索引
    - [x] 数据库支持where条件查询
    - [x] 优化关系型数据库接口
    - [x] 账号安全性提升
    - [x] Fix若干个漏洞

# v2.9.3 (2022.11.28~2023.03.04)

- 待办&随手记
    - [x] 优化标签选择功能
- 笔记管理
    - [x] 使用单独的表记录笔记更新历史列表
    - [x] 优化相册ui
    - [x] 笔记复制的功能
    - [x] 支持月度计划
    - [x] 支持系统标签（可以跨越笔记本全局可用）
    - [x] 发送笔记到待办任务，通过系统标签的方式支持
- 笔记本
    - [x] 增加排序的选项
- UI优化
    - [x] PC页面更多的使用左右分栏，提升效率
- 系统功能
    - [x] 修复了前端资源缓存的问题
    - [x] 优化缩略图生成逻辑

# v2.9.2 (2022.07.31~2022.11.27)

- 笔记管理
    - [x] 支持笔记编辑页目录跳转
    - 笔记标签管理
        - [x] 创建时绑定标签
        - [x] 单个笔记绑定标签
        - [x] 批量绑定标签
    - [x] 优化移动端编辑器的插入图片操作，直接插入到光标后面
- 笔记本
    - [x] 新增按钮下可以创建标签或者子章节，通过标签的功能实现了
    - [x] 笔记本标签
- 搜索功能
    - [x] 搜索历史展示5个热门关键字，其余按照最近搜索展示
- 系统功能
    - [x] 外部资源缓存功能，防止导入的资料中临时链接失效导致图片无法访问
    - [x] 数据库自增ID优化
    - [x] 统计请求服务端耗时
    - [x] 数据库管理工具增加用户筛选条件,优化搜索功能
    - [x] 文件变更记录到binlog
    - [x] 查看图片支持旋转
    - [x] 数据库支持mysql，并且做了针对性的缓存优化+批量查询优化(不然性能太差了。。。)
- BugFix
    - [x] Windows平台 Python3.7 环境下的 urlopen 函数有内存泄漏风险，安装 requests 可以解决这个问题

# v2.9.1 (2022.02.21~2022.07.17)

- 随手记
    - [x] 侧边栏展示常用的标签
- 笔记管理
    - [x] 不允许admin修改其他账号的笔记
    - [x] 并发编辑保护。
        - 编辑过程中自动保存草稿。打开编辑的时候自动加载草稿，并且编辑器上予以提示，提交修改后自动删除草稿内容
        - 编辑的时候需要申请编辑锁。如果没有成功获取锁，不允许编辑
    - [x] 优化了表格编辑功能：可以自己调整表格宽度，支持中文菜单
    - [x] 侧边栏可以支持查看同级别的其他笔记 04/23
- 评论
    - [x] 笔记详情设置是否允许编辑评论
    - [x] 支持自定义设置Markdown预览的默认状态
- 笔记本
    - [x] 笔记本列表排序功能（2022/03/06）
    - [x] 支持笔记本类目属性
    - [x] 支持笔记本层级
- 搜索功能
    - [x] 支持搜索相关词，可以通过后台配置相关词
- 系统功能
    - [x] 支持词库配置
    - [x] 守护进程和工作进程分离，支持远程重启
    - [x] 启动参数支持配置leveldb的缓存大小
    - [x] 优化内存的使用,调整了缓存大小和打开的文件数量参数
    - [x] 数据库备份导入导出功能
    - [x] 数据库支持多驱动(leveldb/leveldbpy/sqlite/lmdb)
    - [x] 数据库索引管理
    - [x] 实现双端队列
- BUG修复
    - [x] 笔记本删除的功能入口没了
    - [x] 评论里面的编辑页面上传文件有BUG，功能错位到了主输入框

# v2.8 (2021.06.28~2022.02.20)

- 菜单导航和布局
    - [x] 【优化】导航配置化
    - [x] 【优化】优化移动端布局适配
- Markdown编辑器
    - [x] 【优化】移动版编辑器优化
    - [x] 【新增】支持插入笔记内链(2022/02/07)
    - [x] 【优化】支持待办项状态切换
- 清单列表编辑器
    - [x] 【新增】支持内容编辑
- 插件功能
    - [x] 【新增】支持@header注解的方式配置（类似于GM脚本）
    - [x] 【新增】支持按热度和最近访问进行排序
    - [x] 【新增】新增表单模板
- 系统功能
    - [x] 【新增】用户操作日志
    - [x] 【修复】修复Cookie的有效期
    - [x] 【新增】主从同步初版(基于文件)
    - [x] 【新增】LdbTable功能开发，支持索引

# v2.7 (2020.11.13~2021.06.27)
- 【新增】支持首页内容配置，链接保持不变
- 【修复】`urlsafe_b64`格式的编解码
- 【优化】随手记功能优化
    - 新增书籍、电话、人物(@)的识别
    - 选择标签功能优化
    - 标签支持按照访问量排序
    - 支持按天查看随手记
- 【优化】搜索功能优化，笔记、词典的搜索统一到综合搜索里面
- 【优化】优化笔记的时间视图，增加年报、月报功能
- 【优化】支持webdav功能（当前仅限admin用户）
- 【优化】代码编辑器的搜索功能
- 【优化】优化卡片布局


# v2.6 (2020.05.23~2020.11.12)
- 【优化】markdown编辑页面上传文件的时候加loading蒙版，防止误操作
- 【优化】统一整个交互页面，优化前进返回的交互
- 【优化】公共笔记右侧加一个按钮【分享】，可以通过搜索分享我的笔记。
- 【优化】最近常用优化成相对的统计
- 【修复】创建笔记的项目列表排序是乱序的 2020.07.11
- 【优化】“最近”板块优化成“动态”，把所有动态聚合在一起，添加筛选条件
- 【优化】行内代码的高亮
- 【优化】文件上传校验
- 【优化】插件的代码逻辑优化，界面优化
- 【优化】dbutil新增`register_table`方法，写入数据前要注册数据表的信息
- 【优化】分页组件样式
- 【优化】文件管理器的样式
- 【优化】目录的样式

# v2.5 (2019.12.01~2020.05.22)
- 【新增】链接分享功能，在笔记详情页，更多可以开启。
- 【新增】新增笔记类型：日志，系统生成默认标题，不进行标题的唯一性检验。
- 【新增】笔记的DAO层增加一个`list_by_func`方法
- 【新增】批量管理项目功能
- 【新增】更新和查看笔记的操作日志
- 【优化】支持Python3.8
- 【优化】大范围的重构，消除冗余代码，提高测试的覆盖率
- 【优化】笔记本改造成项目，项目列表和项目里的笔记列表都以时间轴视图呈现。
- 【优化】项目内批量移动功能，移动笔记时支持搜索项目
- 【优化】按月查看的日期格式优化(2020/01/11)
- 【优化】优化相册文件上传的体验，上传完成后自动刷新
- 【优化】笔记索引更新的性能问题
- 【优化】设置功能的交互优化
- 【优化】编辑器适配移动端
- 【修复】搜索历史的字符转义问题
- 【修复】字典搜索翻页问题。
- 【更新】字典功能设置成默认关闭的

# v2.4 (2019.08.05~2019.11.30)
- 优化Markdown文档目录
- 文件浏览模式优化（操作选项组织到一个下拉列表中）
- 支持Python 3.7
- 支持Windows的64位版本
- 新增评论功能
- 笔记的详情页在PC上面分三栏展示，分别是菜单、目录、正文
- 采用font-awesome，大幅优化交互体验
- 相册的路径优化，放在`files/<userName>`目录下，以id作为文件夹名称，归档到`files/<userName>/gallery/<id后两位>/<id>`
- CSS模块化
- 归档笔记的功能，归档之后的笔记本放入统一的大类【已归档】，就是不活跃的笔记，多用于工作记录之类的。
- 批量移动笔记功能
- 待办功能的优化: 1. 增加更多的tab页; 2. 显示各个分类的数量 3. 增加话题模式
- 插件支持二级目录

# v2.3 (2019.04.01~2019.08.04)
- [x] 数据库更新为leveldb，主要考虑到以下几点
    - sqlite在SAE上面运行缓慢（可能是共享存储的seek性能较差，替换成leveldb之后性能大幅提升）
    - 没有关系型数据的模式限制，更加灵活
    - KV存储的替代方案非常多，只需要支持Get/Put/Scan/Delete四种操作即可，自己实现一个都可以
    - 支持大规模数据，做水平扩展方便
    - 性能调优也比较方便，通过冗余设计即可，相比于关系型数据库的复杂程度，KV数据库简直不要太简单。
- [x] 上传文件管理功能
    - 普通用户可以使用
    - 支持上传、重命名、删除、搜索
- [x] 笔记修改记录
- [x] 笔记按月归档
- [x] 笔记置顶功能
- [x] 导航调整，【更多】改成【系统】，专注于设置和系统管理。
- [x] 导航调整，【插件】改成【工具】
- [x] 提醒记录IP信息
- [x] 删除自定义菜单导航功能
- [x] 支持相册类型的笔记
- [x] 界面优化

# v2.2 (2018.12.16~2019.03.31)
- [x] Add 导航菜单配置化
- [x] Add 电子表格功能，基于jexcel
- [x] Add 词典编辑功能，仅管理员可用
- [x] Add 笔记的历史版本记录（界面功能暂未完成）
- [x] Improve 首页信息聚合，使操作更加快捷
- [x] Improve 文件管理器，支持批量删除、批量粘贴
- [x] Improve 代码编辑器，支持自动补全
- [x] Refactor 缓存目录从`etc`改为`storage`
- [x] 定义插件分类，在不同的场景展示响应分类的插件作为扩展功能。
    - 文件管理器选项增加更多的文件处理方式。插件需要显示列表让用户选择一个。
- [x] 规范文件上传生成的文件名，`类型@用户@文件名@时间.后缀名`


# v2.1 (2018.09.16~2018.12.15)
- [x] Fix 清空剪切板功能
- [x] 文件管理器预览模式
- [x] 卡片式布局、切换主题
- [x] 插件的优化，应用启动时初始化，生产环境执行代码缓存
- [x] 文本阅读器的优化，支持快捷键
- [x] 系统设置集中化、支持在系统状态中切换调试状态、主题、语言等等
- [x] 插件默认使用admin权限拦截
- [x] 系统日志功能，实现了内存版的系统日志，还需要考虑持久化的问题
- [x] 持久化搜索历史
- [x] 增强cache的能力，使用json格式，增强通用性
- [x] 多语言支持
- [x] 笔记推荐系统接口
- [x] 提醒支持hashtag
- [x] 引入分词器

# v2.0功能 (2018.07.04 - 2018.09.15)
v2.0版本主要目标是增强扩展能力。

- [x] 从模板创建插件，使用插件完成
- [x] 插件的基类BasePlugin
- [x] 最近使用的5个插件
- [x] 缓存的持久化
- [x] 首页性能提升
- [x] file表做垂直拆分，内容移动到```note_content```表
- [x] code/view\_source 限制文件大小(500K)，超过默认大小只展示部分内容，不允许修改
- [x] 自定义CSS和JS脚本
- [x] 修改文档的默认排序
- [x] 编辑器TODO样式的优化
- [x] 分页的优化
- [x] 优化侧边栏
- [x] 登录失败重试的限制
- [x] 通过标签实现文档收藏的功能
- [x] 文件管理的剪切粘贴功能



# xnote v1.5 (2018.05.01 - 2018.07.03)

- 新增
    - [x] 扩展命令confirmed参数，input输入参数
    - [x] 扩展命令不再显示按钮
    - [x] 扩展命令支持html格式
    - [x] 扩展命令的别名alias
    - [x] 页面扩展scripts/pages
    - [x] 借助iframe实现分屏功能，不需要在开多个窗口切换
    - [x] 文件浏览器分栏模式
    - [x] 文件自动分类，先按日期自动整理，通过插件完成
    - [x] 笔记的数据报表-整体情况，环比，同比
    - [x] 监听文档的新增、重命名事件，实时更新name的缓存
    - [x] 搜索不强制要求登录，可以搜索公开的笔记
    - [x] 浏览器标签页显示文档标题
    - [x] 记录最近的访问记录，统计最近最常访问
    - ~~Markdown的代码高亮，先做一个关键字的高亮，工作量不小而且要一直更新，放弃~~
    - ~~支持流程图绘制，非核心功能，不做了，利用现有的工具~~
    - ~~支持jsonview，非核心功能，放弃~~
    - ~~TODO的快捷按钮，必要性不大，放弃~~

- 更新
    - [x] 主界面优化，增加侧边栏统计数据
    - [x] 用户管理优化，左右分栏模式
    - [x] 优化删除线按钮，已经加上删除线的再点击取消删除线

- 修复
    - [x] 若干API的错误
    - [x] 扩展命令的编辑超链接
    - [x] /fs\_shell链接异常, ```xutils.get_real_path``` 没有判断参数为None

- 删除
    - ```api/monitor_task```，似乎一直没有用过
    - ```system/app_admin``` 使用文件管理即可
    - ```code/code_format``` 没怎么用过
    - ```tools/httpd``` 没什么用处
    - ```tools/http_proxy``` 没什么用
    - ```note/table.html``` 废弃

- 命令
    - [x] 事件监听器管理

# xnote v1.4 (2018.02.09 - 2018.04.30)

- 新增
    - 新的网格首页和导航样式
    - 添加自定义的工具链接，自定义存储 /system/storage?key=tools
    - markdown编辑器【格式化表格】
    - URL编解码工具
    - 操作行为历史记录，限制200条

- 更新
    - 调整主界面的宽度，调整导航栏，突出搜索框
    - 表格样式的统一优化
    - 分页支持跳转到最后一页
    - 公告的API支持wday
    - handlers/file重命名为handlers/note
    - 搜索优化，图书搜索移出默认操作，加快搜索速度
    - markdown的图片居中

- 修复
    - utils.js的getUrlParams方法进行urldecode

- 删除
    - 脚本的搜索功能，没有必要，交互上也比较混乱，后续考虑全部复用公共搜索框


# xnote v1.3.1 (2018.01.20 - 2018.02.08)

- 新增功能
    - 支持token的方式校验权限
    - markdown编辑器上传图片压缩

- BugFix
    - Fix urlencode模式删除中文文件失败
    - Fix 重命名权限
    - Fix csv中文名预览

# xnote v1.3 （2017.12.01 - 2018.01.19）

缓存，搜索升级，性能优化，系统通知，代码规范


- 新增功能
    - [x] 指定启动脚本参数
    - [x] 公告提醒，通过脚本配置
    - [x] 系统配置项，使用启动脚本配置，不依赖数据库
    - [x] 缓存支持
    - [x] 统一规则定义

- 优化更新
    - [x] markdown编辑器体验优化，加粗、删除线等
    - [x] 文章的重命名、删除移到浏览页面，编辑页面只保留内容修改
    - [x] 优化搜索内部实现
    - [x] 主页搜索加入文件系统搜索结果
    - [x] 知识库列表优化，简化信息展示
    - [x] 短消息中的资源文件放入files目录
    - [x] 文件管理器优化，支持csv文件预览，txt文件阅读器，新增文件功能
    - [x] 文件管理器urlencode不默认开启，通过启动参数来指定
    - [x] 数据库搜索的性能优化

# xnote v1.2 (2017.10.04-2017.11.30) 

UI升级，分组，任务清单，系统升级

1.2版本主要新增任务清单功能以及大量优化工作，主要如下

- 新的功能——清单列表
    - 由原来的留言板改造而来，复用message表
    - 清单在用户之间是隔离的
    - 清单有两个状态，进行中和完成
    - 支持清单的添加、编辑和状态变更

- 功能优化
    - 使用侧边栏响应式，支持快捷访问，减少操作复杂度
    - 交互上使用ajax提高体验，知识库保持静态化
    - 增加分组类型
    - 优化MD编辑器的样式
    - ~~自动保存功能~~，考虑之后放弃
    - 增加富文本编辑器
    - 搜索优化，默认只搜索标题，减少无用信息
    - 文件管理器优化，隐藏不常用功能按钮
    - 支持无sqlite启动（主要为了支持jython），作为文件夹管理工具
    - 定时任务优化，使用线程池而不是新开线程

- 数据升级与兼容
    - 本次升级可能会引起部分不兼容情况,README里说明了升级方案

# xnote v1.1 (2017.07.20-2017.10.03) 

**兼容，支持Python2、Jython**，这个版本主要是一些bugfix和对原有功能的优化

- 系统增强
    - [x] 警告定义跨目录的url-pattern，避免覆盖
    - [x] 脚本管理支持添加自定义Python脚本，支持输出到web页面
    - [x] 定时任务支持自定义脚本`script://{script_name}`
    - [x] UI交互优化，原来的系统页面从简单的列表优化成分类块
 
- Python2 兼容
    - [x] markdown编辑器
    - [x] 搜索
    - [x] 其他工具
 
- 编辑器优化
    - [x] 保存按钮优化
 
- 文件浏览器升级
    - [x] 预览图片
    - [x] 文件搜索
    - [x] 新建文件夹
 
- 工具
    - [x] 留言板功能
    - [x] 图片合并工具
    - [x] 图片分离工具

# xnote v1.0 (2016.12.04~2017.07.19)
- [x] 资料查看、编辑、搜索
- [x] 文件浏览器
- [x] 定时任务
- [x] 日历关联创建的资料
- [x] 日历显示当月添加的资料，按照时间倒序排列
- [x] 记录访问日志
- [x] 备份功能优化，包括导入导出，按月份导入导出（集成在文件管理的压缩功能）
- [x] WebUploader
- [x] 语音提醒，静音功能
- [x] 时光轴