笔记管理软件 Version 2

笔记管理软件第一版 使用的问题

  1. 界面太丑
  2. 作为一个辅助工具 经常被遗忘
  3. 太散 更换环境后 需要自己配置 hexo 环境 github环境等 不像一个整体

需求

  1. 制作一个 完整的 软件 安装后不需要自己配置其他环境
  2. 除了编辑 md文件,其他的操作均可以在 该软件实现 包括但是不限于
    • 增加、删除、移动md文件
    • 建立所有 md之间的关联性: md: tag 文件夹类别 、笔记之间的引用
    • 全局搜索功能
    • 将数据库和源文件自动同步到云端
    • 一键生成博客

文件管理器

  • 以文件树的形式展现文件列表
  • 文件的移动,重命名,删除,新建
  • 文件夹监视通知
  • 全局搜索功能
  • 切文件时 弹出未保存文件的对话窗

标签功能

  • 文档修改头后 需要更新标签区域的内容,重新扫描全局标签
  • 根据标签检索功能

笔记链接

  • 打开链接时新建窗口打开,实现多窗口浏览
  • 修改文件名字时自动更改文件间的引用

建立笔记副本

如果要引用一个文件,可以将被引用的文件在某个公共文件夹下建立一个备份,去引用备份文件,监视笔记文件夹

  • 某个文件夹重命名或者移动,或者某个文件移动重命名

    • 什么都不用做,因为文件本身没有变换
    • 将原始文件路径的键删掉,将新路径的键增加
  • 某个文件内容被修改了

    • 如果它被引用了,就更新一下副本的本地备份
    • 将被修改的文件标记为 dirty表明这个文件信息要更新
  • 某个文件、文件夹被删除了

    • 遍历要删除的所有文件,查看它有没有被引用关系,如果有,弹出提示框。
    • 将被删除的文件标记为 dirty表明文件信息要更新

基础markdown编辑

文件的打开和保存

quill 的 delta 格式笔记和markdown的互相读取转换

  • 三级标题,列表,引用,链接
  • yaml头
  • latex公式
  • 图片
  • 图片自定义缩放 用 < > 格式的图片存储
  • 表格
  • check box
  • 导入导出时不要删除多余的空行

增加 quill 支持的渲染和编辑的格式

  • yaml头
  • 四级五级标题
  • latex公式
  • 图片查看
  • < > 格式的图片显示 用于缩放显示
  • 行内图片
  • 表格
  • 文本高亮
  • 代码段高亮

增加 quill 编辑时 markdown 语法快捷输入

  • 四级五级标题
  • latex公式
  • 按照 md 格式输入图片地址
  • 按照md方式输入引用

存在的BUG

  • 有序下嵌套无序列表 delta 导出 markdown 没有缩进
  • 无序下嵌套有序列表 markdown 导入 delta 后有序列表变成了无序列表
  • 第二段有序列表编号从2开始 而不自动从1开始
  • 相邻行的 引用 / 正文 / 代码块 之间如果在 quill 中没有空行, 导出为 markdown时会自动合并两个块儿

设置页面

插件

  • refined_markdown:可扩展的解析markdown的插件
  • markdown 5.0.0:官方维护的markdown解析工具
  • flutter_markdown:将markdown文本直接渲染成widget
  • file_manager:文件管理器 不支持windows
  • zefyr

正则匹配

正则匹配可视化工具

image-20220510220402898

image-20220510220511000

引入事件机制

有这样的需求,文件修改后:

  1. 标签功能根据修改重新构建标签关系
  2. 自动引用功能需要重建引用关系

如果文件管理模块都依次向依赖它的模块发送更新数据的请求,必然是复杂的,高耦合的。因此通过事件机制将共同依赖的事件交由事件总线管理。事件生产方只需要发送时间通知,不需要考虑产生的事件会对哪些模块产生影响,由依赖这个事件的模块自行处理事件发生后的数据更新逻辑。

对于模块内部 使用 Provider ;例如标签模块依赖