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. 浏览器调用本地程序:

  1. 通过浏览器运行cmd命令、启动steam - 知乎
  2. 如何在网页上打开本地应用 - SegmentFault 思否

2. 调研代办(项目至始至终都要写):

  • 前端有没有什么办法可以处理文件
  • node执行命令提示符
  • 前端调用本地应用的方法
  • nodejs开发命令行工具
  • 快速批量输入文件到命令行中
  • 字符串流的拼接

1. 随想(未整理, 灵点子)

  • 前端制作客户端功能

4. 项目结论(用以回顾项目以学习)

5. 项目代办(项目完毕后再写)

  • 学习fs的读取目录
    • 用path模块根据文件名获取文件的实际路径
  • 命令行输入输出

6.