[已解决] dataview可以从书签中查询吗?

比如:

```dataview
list
from 书签
sort file.ctime desc
limit 100
```

尝试了 from 书签from bookmarkfrom #书签from #bookmarkfrom #bookmarkedfrom #stared,均不行。

坐等大佬出现 :kangaroo:

我只知道 DataviewJS 的先例:

1 个赞

文档里有写,用file.starred属性

1 个赞

感谢两位大佬!

已完美解决,如下:

```dataview
list
from ""
where file.starred
sort file.ctime desc
limit 100
```

或 去掉from

```dataview
list
where file.starred
sort file.ctime desc
limit 100
```

有没有办法分组显示,就是书签是可以添加到分组的,能不能把书签按照所属的分组显示。

2楼的方法 app.internalPlugins.getEnabledPluginById("bookmarks").getBookmarks() 可以实现,就是不知道还有没有更牛的奇淫技巧。

有没有示例代码,我看了原贴,没有找到显示书签分组的方法。

我根据2楼提供的思路实现了下,应该还有更好的方法,如下:

```dataviewjs
//获取所有书签,包含分组
const bookmarks = app.internalPlugins.getEnabledPluginById("bookmarks").getBookmarks();
// 格式化书签为{"分组名":["children"]}
const bookmarkGroups = bookmarks.reduce((accumulator, currentItem) => {
    if (currentItem.type === 'group') {
        accumulator[currentItem.title] = currentItem.items.map(item => item.path);
    }
    return accumulator;
}, {});
// 定义所有已分组的文件列表
let groupItems = [];
// 遍历已格式化的书签分组数据
for (const groupTitle in bookmarkGroups) {
    dv.header(3, groupTitle);
    // 存储所有已分组的文件列表
    groupItems = [...groupItems, ...bookmarkGroups[groupTitle]];
    // 输出已分组的文件列表
    const groupLinks = bookmarkGroups[groupTitle].map(item => dv.fileLink(item))
    dv.list(groupLinks)
}
// 格式化未分组的书签列表
const unGroupedFiles = bookmarks.filter(item => item.type === 'file' && !groupItems.includes(item.path)).map(item => dv.fileLink(item.path));
// 输出未分组的书签列表
dv.header(3, '未分组');
dv.list(unGroupedFiles)
```

效果:

牛 就是想要的效果