1. 多级需求和方案设想及其结论(项目根本)
1. 学到的东西有利于职业方向
1.1. 全程采用nodejs
2. 丰富的第三方库
2.1. 全程采用nodejs
3. 获取用户选择的文件✔
3.1. 用nodejs执行CMD命令
3.2. 二:
3.2. 用浏览器选择,然后通过浏览器调用本地程序
3.3. 三:✔
使用命令行运行nodejs脚本✔
child::inquirer模块
拖拽多个文件或目录进入终端✔
区分输入的是多个文件还是目录✔
child::^93e90a
处理多个文件输入✔
处理一个目录的输入✔
实现深度读取目录✔
采用递归
4. 打开这些文件
5. 用之前的api来获取标签格式(没有就自动创建)的文本
6. 在标签格式中插入多个标签
6.1. 遍历每一个标签
6.2. 先判断是否已经存在目标标签
获取YAML中的所有标签
用正则捕获所有标签行
使用正则表达式/((?<=\n|^)tags: *\n)((((?<=\n)- {1,}((.*?) {1,})*((.*?) *)(\n|$))|((?<=\n)#(?<annota>.*?)\n))*)/g
第三个捕获组为tags: 后面的所有内容
删除里面的所有注释: 用正则表达式:/((?<=^)#(?<annota>.*?)\n)/gm
用正则: /(^|\n)- /g作为行之间的分隔符, 用split分割成单独的行
解析每一标签行的层级标签
用空格替换所有的\
用空格作为分隔符分割每一标签行
6.3. 在原有标签集中查找是否已经有目标标签
6.3. 如果有就把其抽离出目标标签集合
6.4. 标签格式的最后追加一行标签
用`${declare}- ${YAMLtag.join(' ')}\n`替换正则匹配项: /$/
7. 实现api: 在任意地方插入文本
8. 实现api: 用指定内容替换原来不等长度的内容(用偏移量定位)
8.1. 获取选区之后的所有文本, 拼接在用于替换的文本后面
8.2. 二:(放弃)
先把指定内容写入流中
在把选区之后的所有文本写入流中
先转为读取流, 然后流入写入流
9. 实现api: 读取目标文件的任意Range
1. 调研材料及结论(项目动力)
1. 浏览器调用本地程序:
2. 调研代办(项目至始至终都要写):
- 前端有没有什么办法可以处理文件
- node执行命令提示符
- 前端调用本地应用的方法
- nodejs开发命令行工具
- 快速批量输入文件到命令行中
- 字符串流的拼接
1. 随想(未整理, 灵点子)
- 前端制作客户端功能
4. 项目结论(用以回顾项目以学习)
5. 项目代办(项目完毕后再写)
- 学习fs的读取目录
- 用path模块根据文件名获取文件的实际路径
- 命令行输入输出