1. 多级需求和方案设想及其结论(项目根本)
1. 在关键字的前面注释其使用场景
如果没有注释, 则默认是通用意义
1.1. 使用其他标签作为注释
2. 用中文括号()包围注释标签, 放在前面
作为注释的标签也能够被批量重命名
1.2. 重命名的时候再遍历库中所有的标签, 找到注释标签, 然后重命名
用正则表达式/(?<=()注释标签(?=))/g尝试匹配每一个标签
用新标签替换匹配项, 得到更新标签
用更新标签替换掉旧标签
- 用rename方法
2. 合并的时候判断关键字交集需要用注释标签去解释关键字
2.1. 提取标签代表的时候, 先对标签按/分级
child::标签分级(完毕)
2.2. 拆分关键字的时候, 关键字和前面(解释)一起出现
child::把同义词标签分割为多个关键字(完毕)
3. 3. 根据关键字导入库中的标签时, 把本文其他关键字作为场景
3.1. 遍历每一个场景关键字
3.2. 对于每一个场景关键字, 生成这样一段正则表达式片段:(?<=(|\/|#|^|-)场景关键字(?=-)|(?<=-)场景关键字(?=)|$|-|\/)
3.3. 用|把若干个场景关键字的正则片段拼接起来
4. 如果一个关键字同时有广义和符合本文的特殊意义, 则用特殊意义代替广义(根据一组关键字从库中找到相关同义词标签)
4.1. 遍历一个库中的每一个标签✔
4.2. (放弃)之一:
4.3. 对一个关键字, 先匹配本文意义下的关键字
4.4. 如果该关键字已经匹配有本文意义的标签了, 则就不用尝试匹配广义的关键字了
4.3. 之一:同时匹配本文意义和广义✔
child::用一组关键字尝试匹配一个同义词标签(完毕)
4.4. 对于当前同义词标签, 记录下其对应哪个关键字, 是广义还是特殊意义
4.5. 用一个Map对象, 关键字为键名, 键值为一个对象, 对象中有两个键值对, 键名分别是specialMeaning和generalized, 值都是对应的同义词标签
4.5. 遍历完所有标签之后, 收集每个关键字所匹配到的标签(完毕)
收集的时候, 如果有本文意义的标签, 则只取本文意义的标签, 而舍弃广义下的标签
如果specialMeaning不为空,则舍弃generalized
4.6. 对收集完的标签去重✔
5. 手动重命名一个标签的时候, 同时也重命名注释中的该标签✔
5.1. 获取用户输入的新标签
监听用户点击确认按钮或回车键的事件
直接获取输入框中的内容
6. 注释标签中可以使用分级标签✔
child::分级标签也可作为注释标签(完毕)