目录生成相关插件

想问一下,有没有可以将笔记A和笔记B的标题生成目录并可以复制到笔记C中的插件

这其实等价于 “怎么生成笔记的各级小标题列表 TOC” 然后搁到别处

有不少办法, 比如参考 DataviewJS 的提取与汇总 - 经验分享 并稍微修改

```dataviewjs
const dFiles = dv.pages(`"仓库子目录下的/某个文件夹或具体笔记"`)
const startHeadingLevel = 2   // 只输出 level >= N 的小标题
dFiles.map(async dFile=> {
  const file = app.vault.getAbstractFileByPath(dFile.file.path)
  const { headings } = app.metadataCache.getFileCache(file)
  const lists = headings.filter(p=> p.level>=startHeadingLevel).map(p=>
    `${' '.repeat(Math.max(0, (p.level - startHeadingLevel) * 2))}- [[${file.basename}#${p.heading}|${p.heading}]]`
  )
  dv.header(6, dFile.file.link)
  dv.paragraph(lists.join('\n'))
})
```

原理就是拿到全文, 然后拼接一些 [[note_name#heading|heading]] 出来


不用 Dataview 的话, 也有好多生成小标题列表的插件, iLiftALot/insta-tocjohansatge/obsidian-automatic-table-of-contents 这俩是在当前笔记以代码块自动展示 TOC, 而代码块可以被嵌入到别的笔记 (通过 ^block-ref)

还有 hipstersmoothie/obsidian-plugin-toc 比较早, 生成静态小标题文本, 目录变了就重做一次, 也挺好的, 抄到别的笔记里用, 得自己添上笔记文件名

1 个赞