【已解决】tag summary 汇总标签能否改变排序方式

给文本块添加了许多标签后,发现汇总同一标签的文本块排序很混乱,一直没研究明白它的汇总输出排序方式是什么。


遇到的问题

仔细叙述你的问题。最好附上自己使用的 Obsidian 版本及环境。

预期的效果

你认为没有问题时应该是怎样的。这里最好描述你的本质需求,而非解决方案。比如渴了是需求,但研究出一杯饮料来解渴并不是需求。

已尝试的解决方案

尝试了怎样的解决方法,为什么行不通等等。

简单情况下, 觉得它应该是两重排序:

  1. 先按照笔记的路径名排序
    • 它是用笔记的 “全路径名”, 不是文件名 ref
  2. 如果同一个笔记里多次命中tag, 按照文档中段落先后顺序排序, 这个是很自然的

复杂的没太实验

如果想改变排序, 可以从上述方法入手调整, 比如改造成按照更新时间排序等

我一直以为是先按文件夹顺序排序,再按文件名排序。没想到是按全路径名排序。请问一下大佬,如何去改变它的排序方式呢?对修改插件参数完全不懂 :sweat_smile:

一直以为是先按文件夹顺序排序,再按文件名排序

我也不太熟悉这插件, 但是感觉它就是上面的意思啊

这里逻辑是

// main.js 约 245 行
      listFiles = listFiles.sort((file1, file2) => {
        if (file1.path < file2.path) {
          return -1;
        } else if (file1.path > file2.path) {
          return 1;
        } else {
          return 0;
        }
      });

其中 file1.path 是以仓库根目录为起点的相对路径, 这其实就是 “先按文件夹顺序排序,再按文件名排序”

楼主可以在 main.js 里, 直接把这个逻辑改了试试, 比如

// main.js 约 245 行
      listFiles = listFiles.sort((file1, file2) => {
        if (file1.path < file2.path) {
          return -1;
        } else if (file1.path > file2.path) {
          return 1;
        } else {
          return 0;
        }
      });

      // 按照笔记名排序 (纯笔记名, 不带目录路径, 不带后缀)
      listFiles.sort((file1, file2) => (file1.basename > file2.basename) - (file1.basename < file2.basename));
      // 按照笔记创建时间排序 (改 mtime 就是修改时间)
      listFiles.sort((file1, file2) => (file1.stat.ctime > file2.stat.ctime) - (file1.stat.ctime < file2.stat.ctime));

完后要关掉重打开插件


更复杂的场景, 也可以考虑 dataview (但是感觉这个 Tag Summary 简单, 也挺好的)

已经实现了自己的需要,感谢大佬~~