Skip to content

进度计划

核子加农炮 edited this page Oct 25, 2024 · 1 revision

任务分解

可以将任务分解为编辑器方向,UI方向,文件方向,组装,后续开发五个部分

编辑器方向

设计并实现基于Qt的、使用块的机制的富文本编辑器,包括编辑器窗口和大纲窗口,并定义简单的块,最终实现为一个相对独立的编辑器原型

  1. 块的机制原理验证
  2. 开发不同的Block块
    1. 文本(需要考虑对超链接的支持,使得用户在点击文本块的超链接时可以发送对应的Qt信号)
    2. 各级标题(需要设计大纲,并在大纲中显示各级别的标题)
    3. 图片(需要与文件方向协商如何处理图片等二进制附件)
    4. 无序列表(需要考虑多级缩进)
    5. 有序列表(需要考虑多级缩进和自动编号)
    6. 代码(需要考虑如何允许用户输入代码语言并根据语言实现代码高亮)
    7. 公式(需要考虑如何调用TeX格式公式的编译器,最终显示编译后的结果而非公式源代码)
  3. 实现编辑器原型机

UI与逻辑方向

确定设计哪些窗口,每个窗口有哪些控件(除编辑器之外,编辑器窗口由编辑器方向来实现),各个控件的作用,各窗口和控件的位置等,并在Qt中实现。另外,还要设计用于接收跳转信号的信号槽。

  1. 设计选择库文件打开等文件相关的UI和逻辑
  2. 设计打开库文件后窗口的UI布局(包括编辑器的位置,锚点窗口的位置,大纲窗口的位置,工具栏内容和功能,标签页等)
  3. 设计新建、删除词条的UI和逻辑
  4. 设计新建、删除标签的UI和逻辑
  5. 设计修改标签内容和颜色的UI和逻辑
  6. 设计在词条中加入、删除标签的UI和逻辑
  7. 设计按标签搜索的UI和逻辑
  8. 设计按标题搜索的UI和逻辑
  9. 设计多库搜索的UI和路径
  10. 设计合库的UI和路径
  11. 设计分库的UI和路径

文件方向

定义库文件格式、及其与UML类图的各C++类之间的对应关系

  1. 定义库文件格式
    • 需要考虑如何管理插入的图片的问题
    • 需要考虑如何处理词条内容在库文件中有语法含义导致无法正确解析库文件的问题
  2. 实现将库文件解析为库对象的功能
  3. 实现将库对象保存为库文件的功能
  4. 实现自动记录曾经打开过和在多库查找中导入过的库文件的路径的功能
  5. 实现将词条导出为Markdown的功能(可以容忍一些格式的丢失)
  6. 实现从Markdown中导入词条内容的功能

组装

  1. 统一各个类的实现
  2. 微调各个部分,确保各个功能能够实现

后续开发(可选)

  1. 开发更多的块(最好实现为dll)
  2. 设计并实现高级搜索、基于搜索的批量处理等高级功能

任务分配

黄羲成:编辑器方向

罗阳,王铭洋:UI与逻辑方向

李嘉伟:文件方向

甘特图

甘特图

组装和后续开发需要在上面的三个部分都完成了才能继续,先不进行任务分配,也不画在甘特图中