1. 提取标题, 高亮, 加粗, 链接文本中的词语作为提取关键字的材料

1. 得到”标题, 高亮, 加粗, 链接说明, 路径”的txt

1.1. 通过正则表达式匹配高亮和加粗

高亮正则:

/(==)(\*{0,3})(?<str>.+?)(\*{0,3})(==)/g

指向原始笔记的链接

加粗正则:

/(\*\*)(.+?)(\*\*)/g

指向原始笔记的链接

1.2. 经过代码块过滤

>代码块判断

1.3. 通过cache.headings获得标题内容

是一个数组, 每个元素为一个对象, 其中的heading属性保存有内容字符串

按顺序过滤api不支持的格式

  1. 过滤小中代码块的md格式
    1. 正则:/(?<!\\)`+/g
  2. 过滤链接的md格式
    1. 正则:/\!?(?<!\\)\[[?<!\\)\[?|(?<!\\)\](?<!\\|(?<!\\)\[?|(?<!\\)\]]\]?/g
  3. 过滤高亮的md格式
    1. child::

      /(?<!\\)=+/g

      指向原始笔记的链接
  4. 过滤加粗的md格式
    1. child::

      /(?<!\\)\*+/g

      指向原始笔记的链接

1.4. 通过cache.links获得链接内容

1.5. 通过Tfile.path得到带后缀的路径

是一个数组, 每个元素为一个对象, 其中的link属性保存有内容字符串

2. 得到入链文本

2.1. 通过入链对象

child::^2f8514

1.2. 组织这些文本, 发送给自然语言处理api

3. 直接用句号分隔

4. 发送https请求

4.1. child::nodejs的http或https模块

5. api的选择

5.1. 使用讯飞的提取关键字

6. 按照api的长度限制拆分数组, 分段发送

6.1. 用封装好的api去拆分

7. 分段收集

child::分段请求

8. 把全局数组中的data合并

8.1. 把data.ke中所有的[word]都提取出来

8.2. 传入到Set集合去重