1. 多级需求和方案设想及其结论(项目根本)
1. 得到所有大代码块的位置
1.1. 得到整个文档
1.2. 用正则匹配每一个记号, 把这记号正序放在一个数组中
2. 得到所有中代码块的位置
2.1. 得到整个文档
2.2. 用正则匹配每一对中代码记号
2.3. 判断每一对代码记号是否在大代码块中
1. 用起始记号作为索引, 传入对应代码判断api中
2.4. 把多对代码记号解构后放在一个数组中
3. 得到所有小代码块的位置
3.1. 得到整个文档
3.2. 用正则匹配每一对小代码记号
3.3. 判断每一对代码记号是否在大代码块中
用起始记号作为索引, 传入大代码判断api中
3.4. 叠加判断每一对代码记号是否在中代码块中
用起始记号作为索引, 传入中代码判断api中
3.5. 把多对代码记号解构后放在一个数组中
4. 上层api, 传入大代码块位置, 和一个索引, 判断其是否在大代码块中
4.1. 将传入的大代码块位置转换为一个数组, 数组正序存储着每个记号的索引
4.2. 用折半查找找到某一个索引插入到在这些记号中的位置
优化折半查找
因为每次传入的索引都是正序的, 所以可以根据上一次的索引限制查找的左区间
4.3. 如果插入的左边有偶数个记号, 则不在代码块中
因为数组索引从0开始, 所以左边有偶数个⇒ 左边的序号为奇数
4.4. 奇数则在代码块中
同理, 相反⇒左边的序号为偶数
5. 上层api, 传入中代码块位置, 和一个索引, 判断其是否在中代码块中
5.1. 剩下的和大代码块的判断一致
6. 上层api, 传入小代码块位置, 和一个索引, 判断其是否在小代码块中
6.1. 剩下的和大代码块的判断一致
2. 调研材料及结论(项目动力)
1. 调研代办(项目至始至终都要写):
3. 随想(未整理, 灵点子)
4. 项目结论(用以回顾项目以学习)
- child::正则表达式解析markdown文档
5. 项目代办(项目完毕后再写)
6.