给文本块添加了许多标签后,发现汇总同一标签的文本块排序很混乱,一直没研究明白它的汇总输出排序方式是什么。
遇到的问题
仔细叙述你的问题。最好附上自己使用的 Obsidian 版本及环境。
预期的效果
你认为没有问题时应该是怎样的。这里最好描述你的本质需求,而非解决方案。比如渴了是需求,但研究出一杯饮料来解渴并不是需求。
已尝试的解决方案
尝试了怎样的解决方法,为什么行不通等等。
给文本块添加了许多标签后,发现汇总同一标签的文本块排序很混乱,一直没研究明白它的汇总输出排序方式是什么。
仔细叙述你的问题。最好附上自己使用的 Obsidian 版本及环境。
你认为没有问题时应该是怎样的。这里最好描述你的本质需求,而非解决方案。比如渴了是需求,但研究出一杯饮料来解渴并不是需求。
尝试了怎样的解决方法,为什么行不通等等。
简单情况下, 觉得它应该是两重排序:
复杂的没太实验
如果想改变排序, 可以从上述方法入手调整, 比如改造成按照更新时间排序等
我一直以为是先按文件夹顺序排序,再按文件名排序。没想到是按全路径名排序。请问一下大佬,如何去改变它的排序方式呢?对修改插件参数完全不懂
一直以为是先按文件夹顺序排序,再按文件名排序
我也不太熟悉这插件, 但是感觉它就是上面的意思啊
这里逻辑是
// 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 简单, 也挺好的)
已经实现了自己的需要,感谢大佬~~