1. 多级需求和方案设想及其结论(项目根本)

1. 获取父级链

1.1. 根据当前文件, 获取入链父级文件

1.2. 获取入链文件的路径

通过app.metadataCache.getBacklinksForFile(file)获取反链对象
反链对象.data的键名就是入链文件的路径

1.3. 根据入链路径得到入链文件

app.metadataCache.getFirstLinkpathDest(path, path)可以根据path路径获取文件

判断入链文件是否是父级文件

1.2. 直到没有父级文件为止

2. 获取相邻两级文件的标题层级

2.1. 获取低级文件的入链索引位置

获取入链对象

从对象中获取

child::^fa7e7b

2.2. 根据入链位置, 获取其在高级文件中的标题层级

2.1. 通过已有api

3. 确定触发时机

3.1. 有新的入链时

2. 调研材料及2结论(项目动力)

1. 链接一个笔记的可能情况

  1. 在文中为某个名词若干个词链接一个笔记, 则可能仅仅是这个名词或句子属于链接笔记中的部分
    1. 而所属的标题

1.1. 链接作为笔记的子集的情况:

  1. 一个标题下, 有一行独立的链接

2. 笔记中与子集链接笔记紧密相关的内容

  1. 子集链接所属的标题层级以及文件名

3. 入链对象

3.1. data属性:

  1. 键名为有入链的笔记
  2. 键值为数组
  3. 数组元素为对象
  4. 对象中的displayText为显示文本
  5. 对象中的link为链接
  6. 对象中的position属性为对象
  7. 对象中的end和start属性为位置对象
  8. 位置对象的有col, line, offset

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

  • 打印反链对象
  • 将获取所属标题封装成api
  • 思考入链笔记的什么地方还与入链内容紧密相关
  • 改进所属标题api, 使其可以适用于任意指定文件
    • 怎么从一个文件获取其Editor

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

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

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

6.